Blockchain MCP Standard (BMCPS) v3.0
The Complete Unified Standard for Blockchain MCP Serversโ
Version: 3.0
Date: January 2025
Author: Myron Koch - AI Director & Protocol Architect
Status: ACTIVE UNIFIED STANDARD
Supersedes: tool requirements (v2.1) and architecture standard (v1.0)
Executive Summaryโ
The Blockchain MCP Standard (BMCPS) v3.0 unifies architecture and tool requirements into a single comprehensive standard for all blockchain MCP servers. This standard ensures consistency, scalability, and production readiness across the entire blockchain MCP ecosystem.
Table of Contentsโ
- Core Principles
- Part 1: Architecture Requirements
- Part 2: Tool Requirements
- Part 3: Implementation Guide
- Part 4: Compliance Verification
- Part 5: Reference Implementations
Core Principlesโ
Unified Standard Benefitsโ
- Single Source of Truth: One standard for both architecture and functionality
- Clear Compliance Path: One checklist covering all requirements
- Scalability: Support from 25 to 500+ tools per blockchain
- Maintainability: Modular architecture with clear organization
- Consistency: Same patterns across all blockchain servers
Key Requirements Summaryโ
- Architecture: Modular file structure with standardized categories
- Tools: 25 mandatory core tools with specific functionality
- Naming:
\{prefix\}_\{action\}_\{resource\}convention - Testing: All tools must be functional via MCP Inspector
- Documentation: Comprehensive README and inline documentation
Part 1: Architecture Requirementsโ
Mandatory Directory Structureโ
\{blockchain\}-\{network\}-mcp-server/
โโโ src/
โ โโโ index.ts # Main entry point (<300 lines)
โ โโโ tool-definitions.ts # Tool registry and schemas
โ โโโ client.ts # Blockchain client wrapper (optional)
โ โโโ constants.ts # ABIs, addresses, configs (optional)
โ โโโ logger.ts # Logging configuration (optional)
โ โโโ types.ts # TypeScript definitions (optional)
โ โโโ tools/ # Tool implementations (REQUIRED)
โ โโโ core/ # Blockchain fundamentals (REQUIRED)
โ โโโ wallet/ # Wallet operations (REQUIRED)
โ โโโ network/ # Network management (REQUIRED)
โ โโโ tokens/ # Token operations (REQUIRED)
โ โโโ help/ # Help system (REQUIRED)
โ โโโ account/ # Account management
โ โโโ nft/ # NFT operations
โ โโโ defi/ # DeFi protocols
โ โโโ staking/ # Staking operations
โ โโโ governance/ # Governance operations
โ โโโ contracts/ # Smart contract operations
โ โโโ bridge/ # Cross-chain bridging
โ โโโ analytics/ # Analytics and monitoring
โ โโโ security/ # Security and audit tools
โ โโโ events/ # Event logs and monitoring
โ โโโ advanced/ # Advanced/specialized tools
โโโ dist/ # Compiled output
โโโ tests/ # Test suites
โ โโโ smoke.test.ts # Basic functionality
โ โโโ integration/ # Integration tests
โ โโโ unit/ # Unit tests
โโโ scripts/ # Utility scripts
โโโ docs/ # Documentation
โโโ package.json
โโโ tsconfig.json
โโโ jest.config.js # Test configuration
โโโ README.md
Category Definitionsโ
Required Categories (MUST have)โ
core/- Blockchain fundamentals (get_balance, get_transaction, etc.)wallet/- Wallet creation and managementnetwork/- Network information and switchingtokens/- Token operations and querieshelp/- Help system tools
Optional Categories (as needed)โ
account/- Extended account operationsnft/- Non-fungible token operationsdefi/- DeFi protocol interactionsstaking/- Validator and staking operationsgovernance/- Proposal and voting operationscontracts/- Smart contract interactionsbridge/- Cross-chain bridging operationsanalytics/- Analytics and monitoring toolssecurity/- Security and audit operationsevents/- Event logs and monitoringadvanced/- Chain-specific advanced features
File Naming Conventionโ
src/tools/\{category\}/\{prefix\}-\{action\}_\{resource\}.ts
Examples:
src/tools/core/xrp-get_balance.ts
src/tools/tokens/xrp-transfer_token.ts
src/tools/nft/xrp-mint_nft.ts
Tool Implementation Templateโ
import \{ z \} from 'zod';
import \{ Client \} from 'xrpl'; // or appropriate client
import \{ McpError, ErrorCode \} from '@modelcontextprotocol/sdk/types.js';
// Input validation schema
const schema = z.object(\{
address: z.string().describe('Wallet address'),
// ... other parameters
\});
// Tool handler function
export async function handle\{Action\}\{Resource\}(
args: any,
client?: Client // optional client parameter
): Promise<\{ content: Array<\{ type: string; text: string \}> \}> \{
try \{
// Validate inputs
const parsed = schema.parse(args);
// Perform operation
const result = await performOperation(parsed);
// Return formatted response
return \{
content: [\{
type: 'text',
text: JSON.stringify(result, null, 2)
\}]
\};
\} catch (error) \{
if (error instanceof z.ZodError) \{
throw new McpError(
ErrorCode.InvalidParams,
`Invalid parameters: $\{error.errors.map(e => e.message).join(', ')\}`
);
\}
throw new McpError(
ErrorCode.InternalError,
`Operation failed: $\{error instanceof Error ? error.message : 'Unknown error'\}`
);
\}
\}
Part 2: Tool Requirementsโ
25 Mandatory Core Toolsโ
Every blockchain MCP server MUST implement these exact 25 tools:
Blockchain Operations (5 tools)โ
\{prefix\}_get_chain_info- Comprehensive blockchain information\{prefix\}_get_balance- Native token balance for address\{prefix\}_get_transaction- Transaction details by hash\{prefix\}_get_block- Block information by number/hash\{prefix\}_validate_address- Address format validation
Transaction Operations (2 tools)โ
\{prefix\}_get_transaction_history- Recent transactions for address\{prefix\}_send_transaction- Send native tokens
Wallet Management (3 tools)โ
\{prefix\}_create_wallet- Generate new wallet\{prefix\}_import_wallet- Import from private key/mnemonic\{prefix\}_generate_address- Generate new address formats
Network Management (3 tools)โ
\{prefix\}_get_network_info- Network status and config\{prefix\}_set_network- Switch between networks\{prefix\}_get_gas_price- Current gas/fee pricing
Fee Management (2 tools)โ
\{prefix\}_estimate_fees- Fee estimation for transactions\{prefix\}_get_mempool_info- Mempool statistics
Account Information (2 tools)โ
\{prefix\}_get_wallet_info- Comprehensive wallet details\{prefix\}_get_account_info- Account metadata and status
Token Operations (5 tools)โ
\{prefix\}_get_token_balance- Token balance queries\{prefix\}_get_token_info- Token metadata\{prefix\}_transfer_token- Send tokens\{prefix\}_approve_token- Approve token spending\{prefix\}_get_token_allowance- Check spending allowances
Help System (3 tools)โ
\{prefix\}_help- Interactive help and guidance\{prefix\}_search_tools- Search tools by keyword\{prefix\}_list_tools_by_category- Browse organized catalog
Tool Naming Conventionโ
\{prefix\}_\{action\}_\{resource\}
Where:
- prefix: Blockchain identifier (eth, btc, sol, xrp, etc.)
- action: Operation verb (get, send, create, validate, etc.)
- resource: Target object (balance, transaction, wallet, etc.)
Examples:
โ
eth_get_balance
โ
btc_create_wallet
โ
sol_send_transaction
โ getBalance (wrong format)
โ ETH_GET_BALANCE (wrong case)
Extended Tools (Optional)โ
Servers may implement additional tools based on blockchain capabilities:
DeFi Operationsโ
\{prefix\}_swap_tokens\{prefix\}_add_liquidity\{prefix\}_remove_liquidity\{prefix\}_get_pool_info
NFT Operationsโ
\{prefix\}_mint_nft\{prefix\}_transfer_nft\{prefix\}_get_nft_metadata\{prefix\}_create_nft_collection
Staking Operationsโ
\{prefix\}_stake_tokens\{prefix\}_unstake_tokens\{prefix\}_get_staking_rewards\{prefix\}_get_validators
Cross-Chain Bridge Operationsโ
\{prefix\}_bridge_tokens- Bridge tokens to another chain\{prefix\}_get_bridge_info- Bridge status and supported chains\{prefix\}_estimate_bridge_fees- Bridge fee estimation\{prefix\}_get_bridge_history- Bridge transaction history
Analytics & Monitoringโ
\{prefix\}_get_analytics- Network and account analytics\{prefix\}_get_performance_metrics- Performance statistics\{prefix\}_monitor_transaction- Transaction monitoring\{prefix\}_get_usage_stats- Usage statistics and patterns
Security & Auditโ
\{prefix\}_audit_transaction- Transaction security audit\{prefix\}_validate_security- Security validation checks\{prefix\}_get_security_status- Security status and alerts\{prefix\}_check_compliance- Regulatory compliance checks
Events & Logsโ
\{prefix\}_get_events- Blockchain event logs\{prefix\}_subscribe_events- Event subscription\{prefix\}_get_logs- Transaction and contract logs\{prefix\}_search_logs- Log search and filtering
Part 3: Implementation Guideโ
Step 1: Initialize Projectโ
# Create project structure
mkdir \{blockchain\}-\{network\}-mcp-server
cd \{blockchain\}-\{network\}-mcp-server
npm init -y
# Install dependencies
npm install @modelcontextprotocol/sdk zod
npm install -D typescript @types/node jest @types/jest ts-jest
# Create directory structure
mkdir -p src/tools/\{core,wallet,network,tokens,help,account,nft,defi,staking,governance,contracts,bridge,analytics,security,events,advanced\}
mkdir -p tests/\{unit,integration\} scripts docs
Step 2: Configure TypeScriptโ
// tsconfig.json
\{
"compilerOptions": \{
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"declaration": true,
"declarationMap": true
\},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist", "tests"]
\}
Step 3: Create Main Index Fileโ
// src/index.ts
#!/usr/bin/env node
import \{ Server \} from '@modelcontextprotocol/sdk/server/index.js';
import \{ StdioServerTransport \} from '@modelcontextprotocol/sdk/server/stdio.js';
import \{
CallToolRequestSchema,
ListToolsRequestSchema,
McpError,
ErrorCode
\} from '@modelcontextprotocol/sdk/types.js';
// Import tool definitions
import \{ TOOL_DEFINITIONS \} from './tool-definitions.js';
// Import tool handlers (organized by category)
// Core tools
import \{ handleGetChainInfo \} from './tools/core/\{prefix\}-get_chain_info.js';
import \{ handleGetBalance \} from './tools/core/\{prefix\}-get_balance.js';
// ... import all 25+ tools
// Initialize server
const server = new Server(
\{
name: '\{blockchain\}-\{network\}-mcp-server',
version: '3.0.0', // Blockchain MCP Standard v3.0 (BMCPS v3.0) compliant
\},
\{
capabilities: \{ tools: \{\} \},
\}
);
// Register tool definitions
server.setRequestHandler(ListToolsRequestSchema, async () => \{
return \{ tools: TOOL_DEFINITIONS \};
\});
// Route tool calls
server.setRequestHandler(CallToolRequestSchema, async (request) => \{
const \{ name, arguments: args \} = request.params;
try \{
switch (name) \{
// Core tools
case '\{prefix\}_get_chain_info':
return await handleGetChainInfo(args);
case '\{prefix\}_get_balance':
return await handleGetBalance(args);
// ... handle all tools
default:
throw new McpError(
ErrorCode.MethodNotFound,
`Unknown tool: $\{name\}`
);
\}
\} catch (error) \{
if (error instanceof McpError) throw error;
throw new McpError(
ErrorCode.InternalError,
`Tool execution failed: $\{error\}`
);
\}
\});
// Start server
async function main() \{
const transport = new StdioServerTransport();
await server.connect(transport);
console.error('[Blockchain MCP Standard v3.0 (BMCPS v3.0)] \{Blockchain\} MCP Server running');
console.error(`[Blockchain MCP Standard v3.0 (BMCPS v3.0)] Total tools: $\{TOOL_DEFINITIONS.length\}`);
\}
main().catch(console.error);
Step 4: Implement Core Toolsโ
Start with the 25 mandatory tools, one file per tool:
// src/tools/core/\{prefix\}-get_balance.ts
import \{ z \} from 'zod';
const schema = z.object(\{
address: z.string().describe('Wallet address to check balance')
\});
export async function handleGetBalance(args: any) \{
const \{ address \} = schema.parse(args);
// Implementation here
const balance = await fetchBalance(address);
return \{
content: [\{
type: 'text',
text: JSON.stringify(\{
address,
balance: balance.formatted,
balanceRaw: balance.raw,
symbol: 'ETH' // or appropriate symbol
\}, null, 2)
\}]
\};
\}
Part 4: Compliance Verificationโ
Blockchain MCP Standard v3.0 (BMCPS v3.0) Compliance Checklistโ
Architecture Requirements โโ
- Project follows mandatory directory structure
- Tools organized in category folders
- One tool per file pattern
- Index.ts under 300 lines
- Tool definitions in separate file
Tool Requirements โโ
- All 25 mandatory core tools implemented
- Tool naming follows
\{prefix\}_\{action\}_\{resource\} - All tools have proper input schemas
- Help system fully functional
- Network switching capability
Code Quality โโ
- TypeScript compiles without errors
- Zod validation on all inputs
- Comprehensive error handling
- Consistent response format
- No private keys in code
Testing Requirements โโ
- All tools testable via MCP Inspector
- Smoke tests pass
- Integration tests for core tools
- README with setup instructions
- CHANGELOG maintained
Compliance Levelsโ
๐ฅ Blockchain MCP Standard v3.0 (BMCPS v3.0) Bronzeโ
- โ 25 core tools implemented
- โ Basic modular structure
- โ TypeScript compilation works
๐ฅ Blockchain MCP Standard v3.0 (BMCPS v3.0) Silverโ
- โ All Bronze requirements
- โ Full BMCPS v3.0 architecture compliance
- โ Extended tools (40+ total)
- โ Comprehensive testing suite
- โ Documentation complete
๐ฅ Blockchain MCP Standard v3.0 (BMCPS v3.0) Goldโ
- โ All Silver requirements
- โ 100+ tools organized
- โ Performance optimized
- โ Security audited
- โ Production deployed
Verification Commandsโ
# Check compilation
npm run build
# Test all tools
npm run test
# Verify with MCP Inspector
npm run inspect
# Check compliance
npm run mbss-check # Custom script to verify standards
Part 5: Reference Implementationsโ
Gold Standard Examplesโ
Production Ready (Gold)โ
- Osmosis Mainnet: 119 tools, full modular architecture
- XRP Testnet: 40 tools, clean BMCPS v3.0 structure
Silver Standardโ
- Polygon Testnet: 29 tools, BMCPS v3.0 compliant
- Avalanche Testnet: 25 tools, reference architecture
Migration Examplesโ
From Monolithic (Before)โ
// Everything in one massive index.ts file
switch (toolName) \{
case 'get_balance': // 3000+ lines of cases
// implementation inline
case 'send_transaction':
// implementation inline
// ... 100+ more cases
\}
To Modular Blockchain MCP Standard v3.0 (BMCPS v3.0) (After)โ
// Clean index.ts with imports
import \{ handleGetBalance \} from './tools/core/eth-get_balance.js';
switch (toolName) \{
case 'eth_get_balance':
return await handleGetBalance(args);
// ... clean routing only
\}
Appendix A: Chain Prefix Registryโ
| Blockchain | Prefix | Example Tool |
|---|---|---|
| Ethereum | eth_ | eth_get_balance |
| Bitcoin | btc_ | btc_get_transaction |
| Solana | sol_ | sol_create_wallet |
| Polygon | poly_ | poly_get_gas_price |
| Avalanche | avax_ | avax_get_validators |
| Arbitrum | arb_ | arb_estimate_fees |
| Base | base_ | base_get_network_info |
| BNB Chain | bnb_ | bnb_swap_tokens |
| XRP | xrp_ | xrp_get_escrows |
| NEAR | near_ | near_get_staking_info |
| Sui | sui_ | sui_get_objects |
| TRON | tron_ | tron_get_energy |
| Cosmos | cosmos_ | cosmos_get_proposals |
| Osmosis | osmo_ | osmo_get_pools |
| World Chain | world_ | world_verify_world_id |
Appendix B: Tool Categories Quick Referenceโ
Always Requiredโ
core/- Blockchain fundamentalswallet/- Wallet managementnetwork/- Network operationstokens/- Token operationshelp/- Help system
Common Extensionsโ
account/- Extended account featuresnft/- NFT operationsdefi/- DeFi protocolsstaking/- Staking operationscontracts/- Smart contract interactionsbridge/- Cross-chain bridging operationsanalytics/- Analytics and monitoring toolssecurity/- Security and audit operationsevents/- Event logs and monitoring
Chain-Specificโ
governance/- DAO/governance (Cosmos, etc.)validators/- Validator info (PoS chains)programs/- Programs (Solana)inscriptions/- Inscriptions (Bitcoin)ibc/- IBC operations (Cosmos)
Appendix C: Migration Timelineโ
Immediate (Now)โ
- All new servers must follow Blockchain MCP Standard v3.0 (BMCPS v3.0)
- Existing servers should plan migration
Q1 2025โ
- All testnet servers Blockchain MCP Standard v3.0 (BMCPS v3.0) compliant
- Migration scripts available
Q2 2025โ
- All mainnet servers Blockchain MCP Standard v3.0 (BMCPS v3.0) compliant
- Deprecate tool requirements (v2.1) and architecture standard (v1.0)
Q3 2025โ
- BMCPS v3.1 with advanced features
- Cross-chain standards
Version Historyโ
- v3.0 (Jan 2025): Unified tool requirements (v2.1) + architecture standard (v1.0)
- v2.1 (Dec 2024): MBPS tool requirements
- v1.0 (Sep 2024): MSAS architecture standard
This unified standard supersedes all previous standards.
One Standard. Complete Compliance. Production Ready.
Maintained at: /servers/testnet/NEW STANDARDS/Blockchain-MCP-Standard-v3.0-UNIFIED-STANDARD.md