Crypto
БесплатноНе проверенProvides cryptocurrency market data (prices, symbols) and a gated demo trading flow via MCP tools, with safety defaults like dry-run and confirmation gates.
Описание
Provides cryptocurrency market data (prices, symbols) and a gated demo trading flow via MCP tools, with safety defaults like dry-run and confirmation gates.
README
crypto_mcp is a refactor of crypto_bot into a single MCP-first repository.
Python requirement: >=3.11.
For user-facing capability map, see: docs/CAPABILITIES.MD.
What this project does
- Expose deterministic MCP tools over stdio.
- Keep transport contract stable for LLM clients.
- Separate market data (safe/read-only) from trading (gated).
- Keep exchange adapters replaceable.
Architecture
src/crypto_mcp/mcp_server.py: FastMCP server and tool definitions.src/crypto_mcp/agent.py: NL command router mapping prompts to MCP tools.src/crypto_mcp/config.py: Typed settings loader with sane defaults and clamps.src/crypto_mcp/adapters/binance.py: Binance HTTP adapter abstraction.src/crypto_mcp/main.py: Runnable MCP entrypoint.tests/: MCP contract, core server, and agent unit tests.
Detailed architecture: docs/ARCHITECTURE.MD.
Capabilities quick table
| Area | What it does | Main MCP tools |
|---|---|---|
| Runtime health | Reports service state, limits, mode, exchanges | health |
| Exchange inventory | Lists adapter-backed exchanges | list_exchanges |
| Market data | Fetches ticker prices and symbol lists | get_price, list_exchange_symbols |
| Guarded execution | Submits demo orders with explicit confirmation gate | submit_demo_order, confirm_pending_order |
| NL routing | Maps natural language to MCP tool calls | crypto-mcp-agent |
Design pattern references taken from polymarket_mcp:
- deterministic tool envelope:
{ok, tool, ...} - bounded limits for list/read tools
- safety confirmation flow for trade tools
- split entrypoint (
main.py) from MCP server implementation
Quickstart
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env
python -m pytest
crypto-mcp-server
# separate terminal
crypto-mcp-agent
Setup path-style variant:
cd /path/to/crypto_mcp
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env
Alternative module runner:
python -m crypto_mcp.main
crypto-mcp
Safety defaults
DRY_RUN=true
Default path is non-live demo execution.
Run MCP server locally
Stdio server (local MCP clients):
crypto-mcp-server
For MCP Inspector debugging:
npx @modelcontextprotocol/inspector python -m crypto_mcp.main
Do not write print() logs inside stdio server paths. Use logging to stderr.
Available MCP tools:
healthlist_exchangesget_pricelist_exchange_symbolssubmit_demo_orderconfirm_pending_order
Tool response envelope is consistent:
ok: booleantool: tool nameerror+error_categoryon failures- tool-specific payload under
payload
MCP limits are controlled by:
MCP_DEFAULT_LIMITMCP_MAX_LIMITMCP_CONTEXT_MODE(sharedorrequest)
Order safety controls are controlled by:
DRY_RUNREQUIRE_CONFIRMATION_ABOVE_USD
Connect this MCP to clients
Use path placeholders:
path/to/crypto_mcp= repository root.path/to/crypto_mcp/.venv/bin/python= project interpreter.
GitHub Copilot (VS Code Agent Mode)
Add MCP server config in your VS Code MCP settings JSON:
{
"mcpServers": {
"crypto-mcp": {
"command": "python",
"args": ["-m", "crypto_mcp.main"],
"cwd": "path/to/crypto_mcp",
"env": {
"PYTHONPATH": "src"
}
}
}
}
If your environment requires venv binary, use:
{
"command": "path/to/crypto_mcp/.venv/bin/python",
"args": ["-m", "crypto_mcp.main"]
}
Claude Desktop
Edit Claude Desktop MCP config and add:
{
"mcpServers": {
"crypto-mcp": {
"command": "path/to/crypto_mcp/.venv/bin/python",
"args": ["-m", "crypto_mcp.main"],
"cwd": "path/to/crypto_mcp",
"env": {
"PYTHONPATH": "src"
}
}
}
}
Restart Claude Desktop after changes.
OpenCode
OpenCode can run MCP from command config. Add server entry in your OpenCode MCP configuration:
{
"mcpServers": {
"crypto-mcp": {
"command": "path/to/crypto_mcp/.venv/bin/python",
"args": ["-m", "crypto_mcp.main"],
"cwd": "path/to/crypto_mcp",
"env": {
"PYTHONPATH": "src"
}
}
}
}
Then restart OpenCode session and verify tools:
healthlist_exchangesget_pricelist_exchange_symbolssubmit_demo_orderconfirm_pending_order
OpenCode install and usage:
# install OpenCode (example)
npm install -g opencode-ai
# verify installation
opencode --version
# start session in this repository
cd path/to/crypto_mcp
opencode
Inside OpenCode:
- ensure MCP server
crypto-mcpis connected. - run a quick tool check with
health. - ask natural language command examples:
- "get btcusdt price"
- "list 20 symbols"
- "buy 50 btcusdt"
Environment
Copy .env.example to .env and update values.
MCP_DEFAULT_LIMIT,MCP_MAX_LIMITMCP_CONTEXT_MODE(sharedorrequest)DRY_RUN(true/false)EXCHANGES_ENABLED(binancedefault)GEMINI_API_KEY(optional, used by local NL routing layer)BINANCE_API_BASE_URLBINANCE_API_KEY,BINANCE_API_SECRETREQUIRE_CONFIRMATION_ABOVE_USD
For this task, an empty .env file exists and is safe because defaults are clamped.
What this MCP can do
Read-only tools:
health: service status, context mode, limits, enabled exchanges.list_exchanges: list adapter-backed exchanges.get_price: fetch ticker price for symbol/exchange.list_exchange_symbols: bounded symbol list with clamp.
Trading flow tools (safety-gated):
submit_demo_order: validates side/symbol/size and creates pending confirmation above threshold.confirm_pending_order: executes pending order if valid and not expired.
Order confirmation flow:
- Call
submit_demo_order. - If payload has
status=pending_confirmation, captureconfirmation_id. - Call
confirm_pending_order(confirmation_id).
Contract:
- deterministic response envelope:
{ok, tool, payload}on success. - deterministic error envelope:
{ok, tool, error, error_category}on failure. - live trading intentionally disabled: returns
live_trading_not_implementedwhenDRY_RUN=false.
Safety Notes
submit_demo_ordernever executes live orders; withDRY_RUN=falseit returnslive_trading_not_implemented.submit_demo_orderrequires explicit confirmation for large notional.- response shape never raises raw exceptions to MCP caller; errors are categorized.
Tests
python -m pytest
Important notes
- Local MCP stdio transport must keep stdout clean JSON-RPC only.
- This project is starter infrastructure. Not trading advice.
- Add stronger risk modules before real funds.
Known improvement areas (scan summary)
- Add adapter-level symbol tradability validation before order acceptance.
- Replace broad internal exception mapping with sanitized provider error codes.
- Add confirmation-expiry regression tests at MCP wrapper level.
- Add optional HTTP transport runner for remote clients.
Установка Crypto
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/DressPD/crypto_mcpFAQ
Crypto MCP бесплатный?
Да, Crypto MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Crypto?
Нет, Crypto работает без API-ключей и переменных окружения.
Crypto — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Crypto в Claude Desktop, Claude Code или Cursor?
Открой Crypto на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Crypto with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
