AI Agents SDE Task Viewer
      • Pr description
  1. Home
  2. AgentSDE
  3. agent-core
  4. gh-615
  5. changes
  6. pr_description.md
pr_description.md(2.0 KB)· Apr 24, 2026· 2 min read
  • Title
  • Problem
  • Task / Link
  • Changes
  • Notes
  • Testing

Title#

feat(sm-1a): scaffold MCP platform server module with stdio transport

Problem#

Skills invoke gh CLI directly (84 call sites across 14 skills), breaking when the task originates from a non-GitHub platform (Bitbucket/Jira). SM-1A lays the foundation for replacing those calls with a platform-agnostic MCP server.

Task / Link#

Closes #615 — SM-1A: MCP module + server scaffold + stdio transport Part of EPIC #610 — Skills → MCP Platform Tools Plan: agent-core-artefacts/docs/planning/skills-mcp-platform/plan.md

Changes#

  • Added src/mcp/mcp.module.ts — NestJS module exporting ToolRegistry and McpPlatformServer
  • Added src/mcp/server.ts — McpPlatformServer service booting @modelcontextprotocol/sdk stdio transport; pre-registers all 21 tools as no-ops; wired via McpModule
  • Added src/mcp/tool-registry.ts — injectable in-memory tool registry with register/has/get/call/list/size
  • Added src/mcp/tool-names.ts — canonical list of 21 v1.* tool names derived from the plan's tool surface
  • Added src/mcp/errors.ts — McpError, NotImplementedError, ToolNotFoundError error classes with stable string codes
  • Added bin/mcp-platform.ts — subprocess entrypoint: NestFactory.createApplicationContext(McpModule), resolves McpPlatformServer, starts stdio transport; handles SIGINT/SIGTERM
  • Added @modelcontextprotocol/sdk and zod dependencies

Notes#

  • All 21 tools are registered as no-ops throwing NotImplementedError; SM-1B..1F will replace handlers with real dispatchers
  • McpModule does not auto-start the server — it is started by bin/mcp-platform.ts to keep the HTTP server unaffected
  • PR targets rc/skills-mcp-platform, not master (per EPIC RC branch strategy)

Testing#

  • npm run lint — clean (zero warnings)
  • npm run test — 1014 tests, 65 suites, all pass including new server.spec.ts, tool-registry.spec.ts, errors.spec.ts
  • Smoke test in test/mcp-smoke.e2e-spec.ts: tools/list over stdio returns all 21 tool names
  • tools/call <any> throws NotImplementedError
Ai-done