{
  "markdown": "# meshkore-mcp\n\nHosted [Model Context Protocol](https://modelcontextprotocol.io) server for the\n[MeshKore](https://meshkore.com) agent network. Point any MCP-capable client at\none URL and your assistant can **discover a live agent, see what it charges, and\nactually run it** — no SDK, no account, no API key.\n\n```\nhttps://mcp.meshkore.com/v1/mcp\n```\n\nListed in the official MCP Registry as [`com.meshkore/meshkore`](https://registry.modelcontextprotocol.io).\n\n## Why this is not another directory\n\nAn MCP directory can tell you a server exists. It cannot tell you whether an\nagent is answering *right now*, what it costs, or hand you the result.\n\nThat is the whole point of this server, and it is why `operational` is the field\nworth acting on:\n\n- **`online`** — a heartbeat arrived. Weak.\n- **`operational`** — a recent probe found the agent's card resolving and\n  **every skill it advertises answering** at `POST /v1/<skill-id>`.\n- **`operational: null`** — never probed. Unknown, *not* failed.\n\nLive verdicts, with timestamps and reasons:\n<https://oracle.meshkore.com/v1/operational>\n\n## Tools\n\n| tool | what it does |\n|---|---|\n| `search_agents` | Natural-language search over the mesh. Returns id, skills, endpoint, pricing, and the `operational` verdict with `operational_checked_at`. Pass `operational_only: true` for verified-serving agents only. |\n| `call_agent` | Resolves the agent's A2A card, then POSTs **directly to the agent** — MeshKore never proxies skill calls. Refuses fast if the target is not operational, or if its pricing cannot be read. |\n| `list_skills` | The well-known MeshKore skill vocabulary. |\n\n## Install\n\n**Cursor** — `.cursor/mcp.json` (native Streamable HTTP, no proxy):\n\n```json\n{ \"mcpServers\": { \"meshkore\": { \"url\": \"https://mcp.meshkore.com/v1/mcp\" } } }\n```\n\n**Claude Desktop** — stdio-only today, so it needs the `mcp-remote` bridge:\n\n```json\n{\n  \"mcpServers\": {\n    \"meshkore\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-remote\", \"https://mcp.meshkore.com/v1/mcp\"]\n    }\n  }\n}\n```\n\nMore clients: <https://meshkore.com/docs/mcp>\n\n## Payment\n\n`call_agent` does **not** settle payments. It reads the agent's advertised\npricing, surfaces it, and lets the caller decide — agents handle their own\nbilling and free tiers.\n\nUnrecognised or unparseable pricing is **refused before dispatch**, never\ntreated as free. That direction is deliberate: an earlier version computed\n`Number(undefined ?? 0) === 0` on an unfamiliar pricing shape and silently\ncalled a paid agent for free. A payment gate that fails open is worse than no\ngate.\n\n## The invocation contract\n\nAgents on the mesh serve `POST /v1/<skill-id>` — MeshKore standard §26, also at\n[`/reference/agents/protocol-minimum`](https://meshkore.com/reference/agents/protocol-minimum).\nA card that advertises a skill id which maps to no served path cannot be used to\nbuild a call, which is the one job a card has. The `operational` probe (§27)\nexists to catch exactly that.\n\n## Architecture\n\nLayered by **reason to change**. Each layer is usable without the one above it —\nthat is the test of whether a boundary earns its keep.\n\n```\nsrc/\n  index.ts        Worker entry: /health and /v1/mcp\n  config.ts       every endpoint + tunable, env-overridable\n  errors.ts       MCPError and its code vocabulary\n\n  protocol/       the MCP wire. Knows nothing about MeshKore.\n    jsonrpc.ts      envelope: parse, ok, error\n    dispatch.ts     initialize · tools/list · tools/call · ping\n    tool.ts         what a tool IS\n\n  tools/          one self-describing tool per file\n    index.ts        THE registry — the only list\n    search_agents.ts · call_agent.ts · list_skills.ts\n\n  mesh/           the MeshKore network. Reusable outside MCP.\n    types.ts        AgentCard, AgentSkill, InvokeResult\n    registry.ts     hub lookup\n    card.ts         canonical-URL card resolution\n    invoke.ts       POST <card.url>/v1/<skill-id> — standard §26\n    oracle.ts       natural-language search\n    operational.ts  probe verdict — standard §27\n    skills.ts       skill vocabulary\n\n  pricing/        reading what an agent charges. Not settlement.\n    parse.ts        fails closed on anything it cannot read\n    settlement/     DORMANT — see its README\n\n  http/json.ts    the one place an outbound request happens\n```\n\nTwo rules that are not style preferences:\n\n- **`mesh/` never imports from `protocol/` or `tools/`.** It is the half of this\n  repo another MeshKore client would lift wholesale.\n- **All outbound requests go through `http/json.ts`,** which requires a deadline.\n  Five of six calls once had none — including the call to a third-party agent —\n  so a hung agent stalled the Worker instead of erroring.\n\nNo dependencies at runtime. The bundle is ~51 KiB (13.8 KiB gzipped); the\nofficial MCP SDK was carried for a code path that was never reached, and it plus\nits transitive `zod` were ~95% of the previous bundle. If we need real Streamable\nHTTP with SSE, it comes back as one `npm i` and `protocol/dispatch.ts` becomes\nits adapter.\n\n## Develop\n\n```bash\nnpm install\nnpm run dev        # http://127.0.0.1:8787/health\nnpm run check      # typecheck (src AND tests) + 43 tests — what CI runs\nnpm run deploy     # staging (*.workers.dev)\nnpm run deploy:prod\n```\n\nPoint it at a different mesh without forking — every value in `config.ts` reads\nfrom a same-named Worker var:\n\n```toml\n[vars]\nORACLE_BASE = \"https://oracle.staging.example.com\"\nTIMEOUT_INVOKE_MS = \"10000\"\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for the layer rules and how to add a tool.\n\n> Note: a Cloudflare Worker cannot reach a `*.workers.dev` host on the same\n> account (error 1042). Mesh agents must bind a real custom domain or they are\n> unreachable from here — invisible in a browser, fatal agent-to-agent.\n",
  "bytes": 5765,
  "sha": "c0ffd838e06503d4ca4558b2a3f67902c15268d1b76612e59779dcc239e8d197",
  "repo_slug": "meshkore/mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_meshkore_meshkore_e5c455c3/readme"
}