Manthan MCP server
Exposes the Manthan substrate as an MCP (Model Context Protocol) tool surface.
External AI agents — *Claude Desktop, Cursor, Codex CLI, Copilot's MCP
client, the maestro-platform foundry* — can read and write Manthan
artefacts through the same standard tool-call protocol.
Tools (9)
| Name | Read/Write | Purpose |
|---|---|---|
manthan_artefact_create | W | Create idea / critique / synthesis / prototype / opportunity / message; lineage parent + relation optional. Auto-tagged via-mcp + source:<client>. |
manthan_artefact_recent | R | Most-recent artefacts; filter by kind, capped at 200. |
manthan_artefact_get | R | One artefact by UUID. |
manthan_agent_list | R | Personas registered in the substrate. |
manthan_herald_status | R | Live status of all 3 HERALD nodes (sigil, uptime, peer/session, canary period, tree size). One call. |
manthan_herald_canary | R | Specific node's signed canary. Re-signed every call. |
manthan_herald_charter | R | Specific node's signed Charter (operator legal posture). |
manthan_herald_entries | R | Recent CT-log entries, minimum profile. |
manthan_readyz | R | Single-call stack health. |
Run
stdio (Claude Desktop, Cursor, Codex CLI)
cd manthan/mcp-server
npm install --no-audit --no-fund
npm run start:stdiohttp/SSE (headless agents, maestro-platform foundry, automation)
MANTHAN_MCP_TRANSPORT=http MANTHAN_MCP_PORT=47100 npm run start:http
# then: GET local-service/sseClient config
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or the equivalent on your platform:
{
"mcpServers": {
"manthan": {
"command": "node",
"args": [
"--experimental-strip-types",
"--no-warnings",
"manthan/mcp-server/src/index.ts"
],
"env": {
"MANTHAN_API_URL": "local-service",
"MANTHAN_SUBSTRATE_URL": "local-service"
}
}
}
}Restart Claude Desktop. The 9 tools appear under the 🔌 menu and Claude can
read + write Manthan during conversations.
Cursor
Cursor uses MCP via its config UI (Settings → Features → MCP). Same shape
as Claude Desktop — point it at this server's stdio entrypoint with the
two env vars.
Codex CLI
Codex's MCP support is via the mcp block in its workspace config. Same
stdio command + env.
Copilot
GitHub Copilot's MCP integration is rolling out (late 2025/early 2026).
When you wire it, point at the http/SSE transport rather than stdio:MANTHAN_MCP_TRANSPORT=http, then SSE URL http://manthan-host:47100/sse.
maestro-platform foundry
Run the http/SSE variant inside the same network as the foundry. The
swarm agents (Codex / Gemini / DeepSeek / Qwen) connect via their MCP
client wrappers and use the same 9 tools. Promoted artefacts (per a
Patina threshold or operator marker) are exported from Manthan back into
maestro by P-106 — separate ticket, not in this server.
Provenance
Every artefact created via MCP is auto-tagged:
via-mcp(always)source:<value>(from thesourcearg the client passes; absent →source:unknown)
Plus a metadata blob: { via: "mcp", source, submitted_at }. So the
viewer can distinguish "this came from a human's Claude session" from
"this came from a long-running maestro agent" from "this came from the
internal runtime baseline."
Smoke test (against a live Manthan stack)
# Stack must be up — see infra/compose/README.md and the root docker-compose.yml.
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.0.1"}}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"manthan_readyz","arguments":{}}}' \
| MANTHAN_API_URL=local-service \
node --experimental-strip-types --no-warnings src/index.tsYou should see ready: true and all four downstreams report ok.
What's not here yet
- Authentication / per-client identity. Today, anyone who can reach the
stdio process or the http port can call any tool. For local-only stdio
this is fine; for the http variant in production, put a reverse proxy
with auth in front, or run inside a Tailscale ACL'd network.
- Substrate write attribution.
author_agent_idis optional; if the
client doesn't pass one, the artefact is unattributed. Future work:
per-client substrate agent so MCP writes land under e.g. "claude-desktop"
or "maestro-codex" identities.
- Direct HERALD envelope sending. Today MCP writes go to the Postgres
substrate (idea-layer). Writing into the HERALD CT log (verifiable
layer) requires the agent SDK with a sigil + key — separate
scope, P-103.5 / P-104 territory.
- Patina-aware filtering on reads. P-104 lands a per-sigil reputation
score; once it does, manthan_artefact_recent should grow a
min_patina filter so consumers can ask for "only the high-trust
recent artefacts."