CryptoPilot
FreeNot checkedConnects Claude Desktop to crypto and brokerage portfolio data via Coinbase and SnapTrade, providing read-only tools to inspect accounts, holdings, prices, and
About
Connects Claude Desktop to crypto and brokerage portfolio data via Coinbase and SnapTrade, providing read-only tools to inspect accounts, holdings, prices, and provider health.
README
🌐 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.
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 build
Configure 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.json
Add 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 API
The 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
Installing CryptoPilot
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/cryptopilot-tools/cryptopilot-mcpFAQ
Is CryptoPilot MCP free?
Yes, CryptoPilot MCP is free — one-click install via Unyly at no cost.
Does CryptoPilot need an API key?
No, CryptoPilot runs without API keys or environment variables.
Is CryptoPilot hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install CryptoPilot in Claude Desktop, Claude Code or Cursor?
Open CryptoPilot on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Stripe
Payments, customers, subscriptions
by Stripemalamutemayhem/unclick-agent-native-endpoints
110+ tools for AI agents spanning social media, finance, gaming, music, AU-specific services, and utilities. Zero-config local tools plus platform connectors. n
by malamutemayhemwhiteknightonhorse/APIbase
Unified API hub for AI agents with 56+ tools across travel (Amadeus, Sabre), prediction markets (Polymarket), crypto, and weather. Pay-per-call via x402 micropa
by whiteknightonhorsetrackerfitness729-jpg/sitelauncher-mcp-server
Deploy live HTTPS websites in seconds. Instant subdomains ($1 USDC) or custom .xyz domains ($10 USDC) on Base chain. Templates for crypto tokens and AI agent pr
Compare CryptoPilot with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All finance MCPs
