CryptoPilot MCP
Provides tools for inspecting Coinbase accounts, holdings, and cryptocurrency prices through the Coinbase Advanced Trade API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CryptoPilot MCP What's the price of Bitcoin?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🌐 English | Español
CryptoPilot MCP
A read-only MCP server that brings your crypto and brokerage portfolio into Claude Desktop.
CryptoPilot MCP connects Claude Desktop to your Coinbase and SnapTrade portfolio data through the Model Context Protocol (MCP). It gives developers and power users a local-first way to inspect accounts, holdings, prices, and provider health without building a custom integration from scratch. The server is read-only by design: it does not trade, transfer funds, or expose transaction actions.
Features
Two providers: Coinbase Advanced Trade and SnapTrade for brokerage aggregation.
Five MCP tools:
list_providers,list_accounts,list_holdings,get_quote, andget_provider_health.Read-only by design: no trading, no transfers, and no transactions tool.
Type-safe TypeScript with Zod validation for MCP schemas and environment configuration.
Automatic retry with backoff for
429and5xxresponses.Local-first: no telemetry, no external servers, and no cloud dependencies operated by this project.
Related MCP server: IB Portfolio Tracker MCP Server
Quick Start
Prerequisites
Node.js 18+
Claude Desktop: download Claude
Coinbase account (optional) and/or SnapTrade account (optional)
Install
git clone https://github.com/cryptopilot-tools/cryptopilot-mcp.git
cd cryptopilot-mcp
npm install
npm run buildConfigure Claude Desktop as described below.
Configuration
Coinbase API Credentials
Go to Coinbase API settings.
Create a new API key with View permissions only. Do not enable trading permissions.
Allow all accounts you want to analyze.
Save the API Key Name and Private Key.
SnapTrade Credentials
Sign up at SnapTrade.
Create a client in the SnapTrade dashboard.
Save the Client ID and Consumer Key.
Create a user, then save the User ID and User Secret.
Claude Desktop Config
Edit your Claude Desktop config at:
~/Library/Application Support/Claude/claude_desktop_config.jsonAdd the mcpServers entry below. Replace every REPLACE_ME value and update the server path to the absolute path on your machine.
{
"mcpServers": {
"cryptopilot": {
"command": "node",
"args": ["/absolute/path/to/cryptopilot-mcp/dist/server.js"],
"env": {
"COINBASE_API_KEY_NAME": "REPLACE_ME",
"COINBASE_API_PRIVATE_KEY": "REPLACE_ME",
"SNAPTRADE_CLIENT_ID": "REPLACE_ME",
"SNAPTRADE_CONSUMER_KEY": "REPLACE_ME",
"SNAPTRADE_USER_ID": "REPLACE_ME",
"SNAPTRADE_USER_SECRET": "REPLACE_ME",
"SNAPTRADE_DEFAULT_ACCOUNT_ID": "REPLACE_ME"
}
}
}
}Restart Claude Desktop after saving the file.
Available Tools
list_providers
Returns configured providers and their capabilities.
Example input:
{}Example output:
{
"providers": [
{
"id": "coinbase",
"displayName": "Coinbase",
"capabilities": {
"accounts": true,
"holdings": true,
"transactions": false,
"quotes": true
}
}
]
}list_accounts
Returns accounts, optionally filtered by provider.
Example input:
{
"provider": "snaptrade"
}Example output:
{
"accounts": [
{
"id": "snaptrade:account-id",
"provider": "snaptrade",
"name": "Robinhood Individual",
"type": "brokerage",
"balance": {
"amount": 1000,
"currency": "USD"
}
}
]
}list_holdings
Returns holdings for a provider account. Requires provider and accountId.
Example input:
{
"provider": "coinbase",
"accountId": "coinbase:account-id"
}Example output:
{
"holdings": [
{
"symbol": "BTC",
"quantity": 0.05,
"price": {
"amount": 80000,
"currency": "USD"
},
"marketValue": {
"amount": 4000,
"currency": "USD"
}
}
]
}get_quote
Returns a current price for a symbol. Requires provider and symbol; SnapTrade quotes also require an accountId unless a default account is configured.
Example input:
{
"provider": "coinbase",
"symbol": "BTC"
}Example output:
{
"quote": {
"symbol": "BTC-USD",
"provider": "coinbase",
"price": {
"amount": 80000,
"currency": "USD"
},
"asOf": "2026-01-01T00:00:00.000Z"
}
}get_provider_health
Returns health and configuration status for each provider.
Example input:
{}Example output:
{
"health": [
{
"ok": true,
"provider": "coinbase",
"checkedAt": "2026-01-01T00:00:00.000Z",
"details": {
"transport": "http-fetch"
}
}
]
}Architecture
Claude Desktop
│ (MCP stdio)
↓
cryptopilot-mcp server
│
↓
BaseProvider (abstract)
│ │
↓ ↓
CoinbaseProvider SnapTradeProvider
│ │
↓ ↓
Coinbase API SnapTrade APIThe server runs over MCP stdio and exposes provider-neutral tools to Claude Desktop. Each provider implements the shared BaseProvider abstraction, then normalizers convert provider-specific responses into canonical account, holding, and quote types. Zod schemas validate MCP tool inputs and outputs at the server boundary.
Security & Privacy
Read-only API keys are strongly recommended. Do not enable trading permissions.
.env.localis never committed and is covered by.gitignore.No telemetry, no analytics, and no external servers are operated by this project.
Credentials are stored only on your local machine in Claude Desktop configuration or local environment files.
See SECURITY.md for vulnerability reporting.
Roadmap
Coinbase + SnapTrade providers
5 core MCP tools
Transactions tool
More providers based on user demand (Alpaca, IBKR direct, etc.)
CI/CD pipeline
npm package publication
Anthropic Directory submission
Contributing
Contributions are welcome, especially provider integrations, reliability improvements, and documentation fixes. See CONTRIBUTING.md before opening a pull request.
Disclaimer
Disclaimer: CryptoPilot is an independent open-source project. It is not affiliated with, endorsed by, or sponsored by Anthropic, Coinbase, SnapTrade, or any brokerage. This software does not provide financial advice. Use at your own risk and consult a licensed financial advisor for investment decisions.
License
MIT — see LICENSE
Available Tools
5 toolsget_provider_healthA
Check health for one configured provider or all configured providers.
Inputs: provider. Returns: health
get_quoteA
Get a canonical market quote for a symbol from a configured provider.
Inputs: provider (required), symbol (required), accountId. Returns: quote
list_accountsA
List canonical accounts from one configured provider or all configured providers.
Inputs: provider. Returns: accounts
list_holdingsA
List canonical holdings for an account from a configured provider.
Inputs: provider (required), accountId (required). Returns: holdings
list_providersA
List configured portfolio data providers and their capabilities.
Inputs: no named parameters. Returns: providers
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: health checking, quoting, account listing, holdings listing, and provider listing. No overlaps or ambiguities.
All tool names follow a consistent 'verb_noun' pattern using lowercase with underscores. Verbs are either 'get' or 'list', making the set predictable.
With 5 tools, the server is well-scoped for a crypto portfolio data provider. Each tool covers a necessary function without bloat or thinness.
The set covers core read operations (health, quotes, accounts, holdings, providers) but lacks trading or transaction capabilities, which may be needed for a full crypto pilot tool.
Related MCP Connectors
Read-only access to your own crypto portfolio across 11+ exchanges and 20+ chains: holdings, full history, FIFO cost basis and P&L, fees and income. Ask Claude or ChatGPT about your portfolio; the connector can never trade, move funds or act as a login.
Connect brokerage accounts to AI assistants: holdings, orders, asset lookup, and approved trading.
Connect Claude, ChatGPT, Codex, Claude Code or another MCP client to your real multi-broker investment portfolio. Fortunest tracks stocks, ETFs and crypto across brokers and exchanges; its MCP server lets your agent read holdings, returns, allocation, risk, trades and tax lots, calculated by Fortunest rather than guessed by the model. Reads run on their own; every change waits for your approval in the Fortunest app, and no tool places an order or moves money. Sign-in is OAuth 2.1 and needs Fortunest Pro (14-day trial, no card). A free demo that needs no account is listed as Fortunest demo.
Connect your portfolio to Claude, ChatGPT, or Codex to analyze it and make smarter investments.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered portfolio analysis for Wealthfolio, allowing Claude to query and analyze investment holdings, asset allocation, real estate properties, and execute transactions through natural language.1-
- FlicenseNot gradedqualityCmaintenanceConnects Claude AI to Interactive Brokers accounts to enable real-time portfolio tracking, position management, and historical market data retrieval. It also integrates financial news and sentiment analysis from multiple sources, including Finnhub and IB native feeds.-
- AlicenseNot gradedqualityDmaintenanceConnects Claude Desktop to Yodlee financial data, enabling account management, transaction queries, spending summaries, and audio narrations.1MIT
- FlicenseAqualityCmaintenanceConnects Claude Desktop to real-time stock market data via Finnhub API, enabling company profiles, stock quotes, market news, and a customizable watchlist.3-