Skip to main content

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โ€‹

  1. Core Principles
  2. Part 1: Architecture Requirements
  3. Part 2: Tool Requirements
  4. Part 3: Implementation Guide
  5. Part 4: Compliance Verification
  6. 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โ€‹

  1. Architecture: Modular file structure with standardized categories
  2. Tools: 25 mandatory core tools with specific functionality
  3. Naming: \{prefix\}_\{action\}_\{resource\} convention
  4. Testing: All tools must be functional via MCP Inspector
  5. 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)โ€‹

  1. core/ - Blockchain fundamentals (get_balance, get_transaction, etc.)
  2. wallet/ - Wallet creation and management
  3. network/ - Network information and switching
  4. tokens/ - Token operations and queries
  5. help/ - Help system tools

Optional Categories (as needed)โ€‹

  1. account/ - Extended account operations
  2. nft/ - Non-fungible token operations
  3. defi/ - DeFi protocol interactions
  4. staking/ - Validator and staking operations
  5. governance/ - Proposal and voting operations
  6. contracts/ - Smart contract interactions
  7. bridge/ - Cross-chain bridging operations
  8. analytics/ - Analytics and monitoring tools
  9. security/ - Security and audit operations
  10. events/ - Event logs and monitoring
  11. advanced/ - 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)โ€‹

  1. \{prefix\}_get_chain_info - Comprehensive blockchain information
  2. \{prefix\}_get_balance - Native token balance for address
  3. \{prefix\}_get_transaction - Transaction details by hash
  4. \{prefix\}_get_block - Block information by number/hash
  5. \{prefix\}_validate_address - Address format validation

Transaction Operations (2 tools)โ€‹

  1. \{prefix\}_get_transaction_history - Recent transactions for address
  2. \{prefix\}_send_transaction - Send native tokens

Wallet Management (3 tools)โ€‹

  1. \{prefix\}_create_wallet - Generate new wallet
  2. \{prefix\}_import_wallet - Import from private key/mnemonic
  3. \{prefix\}_generate_address - Generate new address formats

Network Management (3 tools)โ€‹

  1. \{prefix\}_get_network_info - Network status and config
  2. \{prefix\}_set_network - Switch between networks
  3. \{prefix\}_get_gas_price - Current gas/fee pricing

Fee Management (2 tools)โ€‹

  1. \{prefix\}_estimate_fees - Fee estimation for transactions
  2. \{prefix\}_get_mempool_info - Mempool statistics

Account Information (2 tools)โ€‹

  1. \{prefix\}_get_wallet_info - Comprehensive wallet details
  2. \{prefix\}_get_account_info - Account metadata and status

Token Operations (5 tools)โ€‹

  1. \{prefix\}_get_token_balance - Token balance queries
  2. \{prefix\}_get_token_info - Token metadata
  3. \{prefix\}_transfer_token - Send tokens
  4. \{prefix\}_approve_token - Approve token spending
  5. \{prefix\}_get_token_allowance - Check spending allowances

Help System (3 tools)โ€‹

  1. \{prefix\}_help - Interactive help and guidance
  2. \{prefix\}_search_tools - Search tools by keyword
  3. \{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โ€‹

BlockchainPrefixExample Tool
Ethereumeth_eth_get_balance
Bitcoinbtc_btc_get_transaction
Solanasol_sol_create_wallet
Polygonpoly_poly_get_gas_price
Avalancheavax_avax_get_validators
Arbitrumarb_arb_estimate_fees
Basebase_base_get_network_info
BNB Chainbnb_bnb_swap_tokens
XRPxrp_xrp_get_escrows
NEARnear_near_get_staking_info
Suisui_sui_get_objects
TRONtron_tron_get_energy
Cosmoscosmos_cosmos_get_proposals
Osmosisosmo_osmo_get_pools
World Chainworld_world_verify_world_id

Appendix B: Tool Categories Quick Referenceโ€‹

Always Requiredโ€‹

  • core/ - Blockchain fundamentals
  • wallet/ - Wallet management
  • network/ - Network operations
  • tokens/ - Token operations
  • help/ - Help system

Common Extensionsโ€‹

  • account/ - Extended account features
  • nft/ - NFT operations
  • defi/ - DeFi protocols
  • staking/ - Staking operations
  • contracts/ - Smart contract interactions
  • bridge/ - Cross-chain bridging operations
  • analytics/ - Analytics and monitoring tools
  • security/ - Security and audit operations
  • events/ - 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