Status: frozen, and what I'd change today
I wrote BMCPS v3.0 in 2025, while building a family of blockchain MCP servers, because I wanted every one of them to expose the same tools under the same names. As of October 2026 it is frozen: kept online as a reference, no longer actively developed.
What it isโ
- A specification. 25 mandatory tools,
{prefix}_{action}_{resource}naming, one tool per file, and Bronze / Silver / Gold compliance tiers. tools-schema.json. The 25 tools described once, independent of any protocol.bmcps-generator.js. Emits MCP, OpenAI function, REST API and JSON Schema output from that one file. Its 238 automated tests pass.
Honest limitsโ
- The MCP output is a skeleton, and as shipped it does not compile. Handlers are stubs, and a quoting bug in one generated tool breaks the TypeScript build.
- The "JSON Schema" output is not valid JSON Schema for tools that take parameters. It lists them in BMCPS's own format rather than as
properties. - The 238 tests check the shape of the generated files, not that they build or run. That gap is how the two bugs above shipped.
- The generator knows 17 chain identifiers. That is a target list, not 17 working integrations.
- 24 or 25. The servers I built against this standard implement 24 of the 25 tools: each is pinned to one network, so
set_networkdoes not apply. The specification text still says 25. - It targets MCP as it stood in 2025. The protocol has moved on since; the current revision is 2026-07-28.
What I'd change todayโ
- Make "it runs" the first test. In CI, generate a server, build it, start it, and call
tools/list. Shape checks come second. - One canonical tool contract in a single machine-readable file that the spec, generators and validators all read, so counts and names cannot drift apart.
- Use what MCP has added since: tool annotations (read-only vs destructive),
outputSchemawith structured results, andisErrorfor tool failures instead of protocol errors. - Gate anything that moves funds.
send_transaction,transfer_tokenandapprove_tokenshould require explicit approval by default. - Target the current MCP revision and drop the patterns it has deprecated.
- Keep one copy of the docs. The repository and this site each carry their own, and they drifted.