How ereminmaksim/mcp-by-doca-mayao works
Purpose and Interfaces
This is a read-only Model Context Protocol (MCP) server exposing MAYAO component documentation and onboarding guidance from bundled JSON data. It supports both networked MCP over HTTP and local MCP over stdio. Main entry points are src/server.ts (HTTP) and src/stdio.ts (stdio transport).
Transport and Session Boundary
The HTTP adapter serves health, metrics, and MCP endpoints; MCP clients initialize a JSON-RPC session, then pass mcp-session-id on subsequent requests. The stdio adapter exposes the same tool capability without HTTP/session-origin concerns.
• src/http.ts
• src/server.ts
• src/stdio.ts
MCP Tool Surface
Tool modules define the public read-only operations: list, retrieve, search, recommend, and compare components, plus retrieve/search onboarding content. These are the protocol-facing orchestration layer that validates inputs and delegates to services.
• src/tools/listComponents.ts
• src/tools/compareComponents.ts
• src/tools/searchDocs.ts
Domain Services and Search Flow
Services implement domain queries over the static catalog: component lookup/listing, onboarding lookup, and cross-document search. Recommendation and comparison tools compose this service-level data rather than calling an external documentation system.
• src/services/components.ts
• src/services/onboarding.ts
• src/services/search.ts
Source-of-Truth Data and Transformation
The repository embeds its documentation catalog as JSON. Transform modules convert raw data records into the shapes expected by services and MCP tool responses, creating a boundary between stored content and protocol/domain models.
• src/data/componentsData.json
• src/data/onboardingData.json
• src/transforms/componentTransform.ts
• src/transforms/onboardingTransform.ts
Schema and Validation Boundary
Shared and domain-specific schemas constrain component and onboarding request/data structures before tool or service processing. This keeps malformed MCP arguments from reaching data-query logic.
• src/schemas/common.ts
• src/schemas/component.ts
• src/schemas/onboarding.ts
Security, Operations, and Deployment
The HTTP runtime applies request-size limits, IP rate limiting, origin allow-listing, session TTL cleanup, concurrency/timeout/circuit-breaker controls, audit logging, and rolling metrics. Runtime configuration is environment-driven; Railway/Nixpacks deployment files indicate a Node/TypeScript service deployment with no database or external content API.
• src/security.ts
• src/config.ts
• railway.json
• nixpacks.toml
Main entry points: listComponents.ts Read-only tools · server.ts HTTP server · components.ts Component service · search.ts Cross-document search
Components 21
Transports
- MCP clients
- HTTP server · Serves health, metrics, and session-bound MCP requests.
src/server.ts - HTTP adapter · Manages JSON-RPC session requests via mcp-session-id.
src/http.ts - stdio adapter · Exposes MCP tools locally without HTTP session handling.
src/stdio.ts
MCP API
- Read-only tools · Validates and orchestrates component and onboarding operations.
src/tools/listComponents.ts - Compare components
src/tools/compareComponents.ts - Search documentation
src/tools/searchDocs.ts - Shared schemas
src/schemas/common.ts - Component schemas
src/schemas/component.ts - Onboarding schemas
src/schemas/onboarding.ts
Domain and Content
- Component service · Lists and retrieves catalog content for recommendation and comparison.
src/services/components.ts - Onboarding service
src/services/onboarding.ts - Cross-document search
src/services/search.ts - Component transform · Maps raw component records to domain and tool response shapes.
src/transforms/componentTransform.ts - Onboarding transform · Maps raw onboarding records to domain and tool response shapes.
src/transforms/onboardingTransform.ts - Component catalog · Embedded source-of-truth component documentation.
src/data/componentsData.json - Onboarding catalog · Embedded source-of-truth onboarding content.
src/data/onboardingData.json
Operations
- Security controls · Applies origin, rate, size, timeout, concurrency, and session protections.
src/security.ts - Runtime configuration
src/config.ts - Railway deployment · Node/TypeScript deployment definition.
railway.json - Nixpacks build
nixpacks.toml
Connections 22
- MCP clients → HTTP server: HTTP MCP
- HTTP server → Security controls: protects requests
- HTTP server → HTTP adapter: routes MCP
- HTTP adapter → Read-only tools: dispatches tools
- stdio adapter → Read-only tools: dispatches tools
- Read-only tools → Shared schemas: validates
- Read-only tools → Component schemas: validates
- Read-only tools → Onboarding schemas: validates
- Read-only tools → Component service: queries
- Read-only tools → Onboarding service: queries
- Compare components → Component service: composes
- Search documentation → Cross-document search: queries
- Component service → Component transform: uses
- Onboarding service → Onboarding transform: uses
- Cross-document search → Component service: searches components
- Cross-document search → Onboarding service: searches onboarding
- Component transform → Component catalog: transforms
- Onboarding transform → Onboarding catalog: transforms
- HTTP server → Runtime configuration: reads
- Security controls → Runtime configuration: reads limits
- Railway deployment → HTTP server: deploys
- Nixpacks build → HTTP server: builds