Crypto Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Crypto Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
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.
| 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:
{ok, tool, ...}main.py) from MCP server implementationpython -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-agentSetup path-style variant:
cd /path/to/crypto_mcp
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .envAlternative module runner:
python -m crypto_mcp.main
crypto-mcpDRY_RUN=trueDefault path is non-live demo execution.
Stdio server (local MCP clients):
crypto-mcp-serverFor MCP Inspector debugging:
npx @modelcontextprotocol/inspector python -m crypto_mcp.mainDo not write print() logs inside stdio server paths. Use logging to stderr.
Available MCP tools:
healthlist_exchangesget_pricelist_exchange_symbolssubmit_demo_orderconfirm_pending_orderTool response envelope is consistent:
ok: booleantool: tool nameerror + error_category on failurespayloadMCP limits are controlled by:
MCP_DEFAULT_LIMITMCP_MAX_LIMITMCP_CONTEXT_MODE (shared or request)Order safety controls are controlled by:
DRY_RUNREQUIRE_CONFIRMATION_ABOVE_USDUse path placeholders:
path/to/crypto_mcp = repository root.path/to/crypto_mcp/.venv/bin/python = project interpreter.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"]
}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 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_orderOpenCode 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
opencodeInside OpenCode:
crypto-mcp is connected.health.Copy .env.example to .env and update values.
MCP_DEFAULT_LIMIT, MCP_MAX_LIMITMCP_CONTEXT_MODE (shared or request)DRY_RUN (true/false)EXCHANGES_ENABLED (binance default)GEMINI_API_KEY (optional, used by local NL routing layer)BINANCE_API_BASE_URLBINANCE_API_KEY, BINANCE_API_SECRETREQUIRE_CONFIRMATION_ABOVE_USDFor this task, an empty .env file exists and is safe because defaults are clamped.
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:
submit_demo_order.status=pending_confirmation, capture confirmation_id.confirm_pending_order(confirmation_id).Contract:
{ok, tool, payload} on success.{ok, tool, error, error_category} on failure.live_trading_not_implemented when DRY_RUN=false.submit_demo_order never executes live orders; with DRY_RUN=false it returns live_trading_not_implemented.submit_demo_order requires explicit confirmation for large notional.python -m pytest~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.