Flow MCP Server

by lmcmz
Verified
# Flow MCP Server A Model Context Protocol (MCP) server for interacting with the Flow blockchain. This server enables AI assistants to access Flow blockchain data and perform operations through a standardized interface. ## Features - Balance checking for Flow and fungible tokens - Domain resolution for `.find` and `.fn` domains - Script execution for reading blockchain data - Transaction submission and monitoring - Account information retrieval - Flow configuration based on environment variables ## Installation ### Using npx (Recommended) ```bash npx -y @outblock/flow-mcp-server --stdio ``` Or specify HTTP mode with a port: ```bash npx -y @outblock/flow-mcp-server --port 3000 ``` ### Local Installation (For Development) ```bash git clone https://github.com/lmcmz/flow-mcp-server.git cd flow-mcp-server npm install npm run build npm start ``` ## Usage ### Running with npx ```bash # Run in stdio mode (for AI assistant integration) npx -y @outblock/flow-mcp-server --stdio # Run as HTTP server on port 3000 npx -y @outblock/flow-mcp-server --port 3000 # Specify Flow network npx -y @outblock/flow-mcp-server --port 3000 --network testnet ``` ### Running Local Development Server ```bash # Run in stdio mode npm run build npm start # Run as HTTP server on port 3000 npm run build PORT=3000 npm start # For development with auto-reload npm run dev ``` ## Configuration The server can be configured using environment variables: - `PORT` - HTTP port to listen on (if not set, defaults to stdio mode) - `FLOW_NETWORK` - Flow network to connect to (mainnet, testnet, emulator) - `FLOW_ACCESS_NODE` - Custom Flow access node URL - `LOG_LEVEL` - Logging level (debug, info, warn, error) ## Using with AI Assistants When integrating with AI assistants like Claude, you can start the MCP server in stdio mode and connect it to your assistant's tool configuration. Example Claude tool configuration: ```json { "tools": [ { "name": "flow-mcp-server", "command": "npx -y @outblock/flow-mcp-server --stdio" } ] } ``` ## HTTP API Endpoints When running in HTTP mode, the following endpoints are available: - `/sse` - Server-Sent Events endpoint for real-time updates - `/messages` - POST endpoint for sending tool requests - `/health` - Health check endpoint - `/` - Server information Example HTTP API call: ```bash curl -X POST http://localhost:3000/messages \ -H "Content-Type: application/json" \ -d '{ "tool_request": { "name": "get_balance", "parameters": { "address": "0x2d4c3caffbeab845", "network": "mainnet" } } }' ``` ## Available Tools - `get_balance` - Get Flow balance for an address - `get_token_balance` - Get fungible token balance - `get_account` - Get account information - `resolve_domain` - Resolve a .find or .fn domain to an address - `execute_script` - Execute a Cadence script - `send_transaction` - Send a transaction to the blockchain - `get_transaction` - Get transaction details by ID ## Version History - **v0.1.1** - Bug fix for formatArguments import issue in transaction service - **v0.1.0** - Initial release with basic Flow blockchain integration ## License MIT