{
  "schema": "leumas.docs.page/1",
  "id": "pkg:@leumas/mcp",
  "slug": "engines/mcp",
  "kind": "capabilities",
  "bucket": "package",
  "title": "@leumas/mcp",
  "name": "@leumas/mcp",
  "eyebrow": null,
  "chip": null,
  "summary": "The MCP runtime — auto-loads mcp-servers/, lists tools (GET /mcp), and executes them (POST /tool). Mounted by leumas-api; the distribution surface for Studio.",
  "keywords": [
    "mcp",
    "mcp-servers",
    "auto-loads",
    "executes",
    "leumas-api",
    "mcp api",
    "leumas mcp",
    "lists"
  ],
  "audience": "both",
  "funnel": {
    "product": null,
    "cta": null
  },
  "body": "# @leumas/mcp\n\nThe MCP runtime: auto-loads `mcp-servers/`, lists tools (`GET /mcp`), executes them (`POST /tool`).\nMounted by `leumas-api`; the surface Studio uses to browse/price/distribute MCP servers.\n\n**Absorbs (DRY-consolidated from):** `opensource/mcp-server-library` (loader + executeTool + gateway) +\n`leumas-cursor-agent-mvp` MCP library.\n\n## Usage (in leumas-api)\n\n```js\nimport { loadServers, createMcpRouter } from '@leumas/mcp';\nimport { requirePassNode } from '@leumas/auth';\n\nconst servers = await loadServers(new URL('./mcp-servers', import.meta.url).pathname);\napp.use('/mcp', createMcpRouter({ servers, gate: requirePassNode() })); // gate = price/meter\n```\n\n`mcp-servers/<name>/server.json` + `tools/<tool>.js` (default export = `run(args)`). Author or compile\nservers with `@leumas/mcp-kit`. Each tool can carry a `price`; the `gate` middleware meters it.\n",
  "source": {
    "path": "shared/engines/mcp/README.md",
    "blobSha": "",
    "commit": "",
    "committedAt": "",
    "provenance": "no-git",
    "bytes": 1035,
    "hash": "f8d8a4eb4688b29de8e78bc16b3d5f0a7486912a"
  },
  "urls": {
    "html": "/p/engines/mcp",
    "json": "/docs/engines/mcp.json",
    "md": "/docs/engines/mcp.md"
  },
  "links": {
    "composes": [
      "pkg:@leumas/config-registry",
      "pkg:@leumas/db",
      "pkg:@leumas/index-service",
      "pkg:@leumas/schemas"
    ],
    "usedBy": [],
    "product": [],
    "howTo": [],
    "skills": []
  },
  "exports": null
}
