bca-mcp
bca-mcp is a crypto data MCP server exposing 105 tools for AI agents, combining BCA editorial content, market/on-chain data, DeFi and security analytics, research generation, and directory/CRM actions.
Search and fetch editorial crypto articles, entity dossiers, topics, stories, unified feeds, memos, theses, and Academy lessons.
Get live prices, OHLC history, market overviews, fear & greed, historical price/sentiment/correlation, and trending entities.
Query DeFi, stablecoins, yields, aggregators, L2s, Solana/TON/Bitcoin L2 ecosystems, RWA, DePIN, AI crypto, and prediction markets.
Inspect wallets, transactions, token holders, DEX pairs, contract scans, funding rates, options flow, liquidation heatmaps, exchange flows, and memecoin risk.
Access BCA proprietary sentiment, coverage index, narrative strength, editorial premium, risk scores, tokenomics, audits, team info, roadmaps, KOL influence, and social signals.
Generate async research jobs: due diligence reports, tokenomics models, whitepaper summaries, and smart-contract translation; poll with get_agent_job.
Use directories and compliance tools for jobs, VCs, MCP servers, trading bots, templates, regulation, tax, SEC filings, MiCA, bug bounties, exploits, and phishing domains.
Perform actions such as submitting listings, booking KOL campaigns, requesting custom research, and monitoring keywords.
Every response includes structured attribution/citations and meta.status; demo mode works without a key for 17 tools, while an API key opens 52 free or more paid tools.
Integrates with LangChain via langchain-mcp-adapters, enabling LangChain agents to use MCP tools for searching news, retrieving articles and entities, and querying market data from the Blockchain Academics 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., "@bca-mcp search news about Bitcoin ETF"
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.
bca-mcp
The canonical crypto MCP server for AI agents, Python edition: 3,800+ editorial articles, 150+ entity dossiers, 38 academy lessons in 8 courses, and live market data, as MCP tools your agent can call natively.
Sibling of @blockchainacademics/mcp (TypeScript). Same REST API. Same attribution contract. Use whichever fits your stack.
v0.6 ships the full 105-tool catalog plus the bca CLI. The tool names match the TypeScript package one for one, and the CLI gives you a terminal-first way to explore the same API.
Why
LLMs hallucinate about crypto. BCA ships ground-truth editorial content with full attribution. Plug this MCP server into Claude Desktop, LangChain, LlamaIndex, Eliza, or any MCP-compatible agent and your model queries the BCA corpus like any other tool, with citations (cite_url, as_of, source_hash) and an honest meta.status on every response.
Related MCP server: crypto-whitepapers-mcp
Install
pip install bca-mcp
# or, isolated:
pipx install bca-mcp
# or, ephemeral:
uvx bca-mcpZero-config first run (no API key needed)
uvx bca-mcp works out of the box. The package ships with a public demo key, and 17 tools work without a key of your own:
get_price, get_trending, get_fear_greed, get_market_overview, search_news, get_article, get_sentiment, get_entity (slug form), get_explainer, get_recent_stories, get_topic, search_grants, get_grant, list_jobs, get_job, search_academy, get_as_of_snapshot.
Every other tool answers without a key with a clean upgrade message (BCA_TIER_LOCKED) that links the free signup. The demo key is shared: 100 calls a day across all demo users, 20 a day per IP address, 1 per second. On startup the server prints a one-time banner on stderr while demo mode is active.
Configure an API key
Get a free API key at https://blockchainacademics.com/crypto-api/signup (2,000 calls/month per user). A free key opens 52 tools. Paid plans open the rest, such as agent-backed research generation, crypto Twitter intelligence and the proprietary indicators, and raise the rate limits; each tool's description names its tier when it is not free.
Set the env var before launching the server:
export BCA_API_KEY="bca_live_xxxxxxxxxxxxxxxx"
# optional: override the default https://api.blockchainacademics.com
export BCA_API_BASE="https://api.blockchainacademics.com"
# BCA_API_BASE_URL is also accepted as a legacy aliasWhen
BCA_API_KEYis set, the demo banner is suppressed and your key's plan decides which tools answer: 52 on a free key, the rest on paid plans. When it's unset, every response carriesmeta.tier: "demo"andmeta.upgrade_urlso your agent can detect the demo path.
Use from Claude Desktop
Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json).
Zero-config demo path (no API key needed):
{
"mcpServers": {
"blockchainacademics": {
"command": "python",
"args": ["-m", "bca_mcp"]
}
}
}With your own key (a free key from blockchainacademics.com/crypto-api/signup opens 52 tools; paid plans open the rest):
{
"mcpServers": {
"blockchainacademics": {
"command": "python",
"args": ["-m", "bca_mcp"],
"env": { "BCA_API_KEY": "bca_live_xxxxxxxxxxxxxxxx" }
}
}
}Restart Claude Desktop and the tools appear in the tool picker. If you installed via pipx, you can swap "command": "bca-mcp" with empty args (a console-script entry point is registered by the package).
Every tool carries MCP annotations: a readable title, readOnlyHint: true on the read tools, and readOnlyHint: false on the eight tools that create a record or start a job (submit_listing, book_kol_campaign, request_custom_research, monitor_keyword, generate_due_diligence, generate_tokenomics_model, summarize_whitepaper, translate_contract), so clients can ask before running those.
Use from LangChain
Ten lines via langchain-mcp-adapters:
import asyncio, os, sys
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
from langchain_mcp_adapters.tools import load_mcp_tools
async def main():
params = StdioServerParameters(
command=sys.executable, args=["-m", "bca_mcp"],
env={**os.environ, "BCA_API_KEY": os.environ["BCA_API_KEY"]},
)
async with stdio_client(params) as (r, w), ClientSession(r, w) as s:
await s.initialize()
tools = await load_mcp_tools(s) # -> list[StructuredTool]
print(await tools[0].ainvoke({"query": "stablecoin regulation"}))
asyncio.run(main())Full worked example in examples/langchain_agent.py. Raw MCP client loop (no LangChain) in examples/generic_agent.py.
Use from Eliza
See examples/eliza_plugin.md for integration notes: bca-mcp plugs into Eliza's MCP plugin surface as a stdio-transport server.
The bca CLI
pip install bca-mcp also registers a terminal-first CLI. It talks to the same REST API as the MCP server, which makes it handy for debugging, quick lookups, and shell pipelines.
bca login # store API key in ~/.bca/config.toml (chmod 600)
bca news search "bitcoin etf" -n 5 # recent articles, rich table + links
bca entity ethereum # dossier panel
bca price bitcoin,ethereum,solana # spot + 24h change table (CoinGecko ids)
bca market overview -n 10 # top-N by market cap
bca indicator coverage-index bitcoin -w 30d
bca explainer defi-fundamentals # a course or a lesson, rendered markdown
bca agent summarize-whitepaper --url https://bitcoin.org/bitcoin.pdf
bca version # CLI + live API versionEvery command accepts --json for unformatted output suitable for jq pipelines. Env vars (BCA_API_KEY, BCA_API_BASE) take precedence over ~/.bca/config.toml.
Tool catalog (a selection; all 105 at https://blockchainacademics.com/crypto-api/tools)
Tool | Category | Endpoint | Tier | Without a key |
| content |
| Free | yes |
| content |
| Free | yes |
| content |
| Free | yes |
| content |
| Free | no |
| content |
| Free | no |
| content |
| Free | yes |
| market |
| Free | yes |
| market |
| Free | yes |
All eight work with a free API key. "Without a key" marks the ones open in demo mode.
Tool details
search_news
Required: query (1–512 chars). Optional: entity, ticker, since (ISO 8601), topic, limit (1–50, default 10), offset (paging).
get_article
Required: slug (1–240 chars).
get_entity
Required: exactly one of slug (e.g. "vitalik-buterin") or ticker (e.g. "ETH", case-insensitive). Aliases in slug form resolve to the canonical entity (cz → changpeng-zhao, maker → makerdao, bsc → bnb-chain), and the answer names the alias in resolved_from_alias. The ticker form returns every entity that matches the ticker and needs an API key; the slug form works without one.
list_entity_mentions
Required: slug (entity). Optional: since (ISO 8601), limit (1–100, default 50), offset (paging).
list_topics
No arguments.
get_explainer
Required: exactly one of slug (a course slug such as "defi-fundamentals" returns the course and its lessons; a lesson slug such as "decentralized-exchanges" returns the lesson text) or topic (keyword, e.g. "defi").
get_price
Required: ids (comma-separated CoinGecko IDs, e.g. "bitcoin,ethereum", not exchange tickers). Optional: vs (quote currency, default usd).
get_market_overview
Optional: limit (1–100, default 20).
Attribution contract
Every response is the same envelope, with a structured attribution block:
{
"data": { ... },
"attribution": {
"citations": [
{
"cite_url": "https://www.coingecko.com/en/coins/bitcoin",
"as_of": "2026-11-01T12:34:56Z",
"source_hash": "sha256:..."
}
]
},
"meta": {
"status": "complete",
"request_id": "req_...",
"pageInfo": { "hasNextPage": false, "hasPreviousPage": false, "startCursor": null, "endCursor": null }
}
}attribution.citations[0] is the primary source: the upstream page the data came from when there is one (an article's publisher, CoinGecko, DefiLlama, Etherscan), otherwise the BCA page for the record. A BCA link is included only where blockchainacademics.com has a page for the data; when there is neither, the one citation points at the tool's entry in the API reference.
When your agent surfaces BCA content to a user, link citations[0].cite_url. This is the core trade: BCA gives agents ground-truth citations; agents give BCA distribution. as_of and source_hash let downstream systems detect staleness and verify content integrity. Fields are preserved as null (not dropped) when upstream omits them, so agents can detect missing provenance explicitly.
The MCP server returns data inside an <untrusted_content source="bca-api"> fence so the host model reads upstream text as data, not instructions. attribution and meta stay structured.
Reading meta.status
The API says how complete each answer is. The MCP server passes every status through as a successful tool response, so your agent sees it and decides how to surface it:
| Meaning |
|
| The answer the tool promises. | absent |
| Data is returned, but some of it is missing or defaulted. |
|
| Data is returned, but it is older than the tool promises. |
|
| No real data yet: an empty source, placeholder rows, or a feed that is not connected. |
|
diagnostic.reason explains every non-complete answer. Lists that page by offset (search_news, search_grants, list_entities, list_entity_mentions, search_academy) set meta.pageInfo.hasNextPage when more results exist. Several tools usually answer unseeded or partial today, and their descriptions say so (for example get_kol_influence, check_memecoin_risk, get_exchange_flows, the memo and thesis tools, and the X-based tools while the X reader is paused). The legacy integration_pending and upstream_error statuses of older API deploys arrive as unseeded and partial. This matches the TS sibling's behavior.
Errors
The server never crashes the stdio process. Every failed tool call is an MCP tool result with isError: true and a JSON body (a malformed JSON-RPC request, such as arguments that are not an object, gets the MCP SDK's JSON-RPC error instead):
{ "error": { "code": "BCA_BAD_REQUEST", "message": "Invalid arguments for book_kol_campaign: budget_usd: Input should be greater than or equal to 500" } }Invalid arguments are rejected before any request is sent, with one field: problem pair per issue, separated by ; . When the API itself rejects a request (HTTP 4xx), the message adds the API's explanation (up to 500 characters), fenced as untrusted content. 5xx errors stay generic.
Code | Meaning |
| Invalid |
| Tool not in your current tier's allowlist (HTTP 403). Without a key this is the answer on 88 of the 105 tools; the message includes the signup URL. |
| Rate limit exceeded (HTTP 429; honor |
| BCA API returned 5xx or malformed JSON |
| Network failure or 20s timeout exceeded |
| Invalid tool arguments, or a 4xx response from the API |
| Unexpected error inside the server (the process keeps running) |
Development
python -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
pytest -qRun the server directly for debugging:
BCA_API_KEY=... python -m bca_mcpGetting help
Questions: ask in GitHub Discussions Q&A. The npm and Python packages share one Q&A, so every answer lives in one place. Search first, since someone may have asked already.
Bugs: open an issue.
Account and billing: email support@blockchainacademics.com.
Security reports: email security@blockchainacademics.com, never a public issue.
Never post a full API key. If we need to know which key, share only the key prefix, the part before the dots on your dashboard (for example bca_1a2b3c4d). Our team will never ask for your key or a seed phrase. Response times by plan are in How to get help.
Contributing
Issues, PRs, and feature requests: https://github.com/blockchainacademics/bca-mcp-python
License
MIT © 2026 Blockchain Academics
Available Tools
98 toolsbook_kol_campaignA
Broker a KOL campaign via BCA Studio CRM. Required: contact_email, budget_usd, objective. Pro tier. Returns campaign_id + next steps.
Inputs: contact_email (required), budget_usd (required), objective (required), target_audience, +1 more.
build_custom_indicatorC
Define a custom indicator formula over BCA primitives. Returns time-series. Pro tier.
Inputs: formula (required), target.
check_exploit_historyC
Historical exploits per protocol (Rekt + DefiLlama hacks).
Inputs: entity_slug (required).
check_memecoin_riskB
Memecoin-specific risk: bundler detection, dev sells, sniper detection. Required: mint (Solana token mint address). Pro tier.
Inputs: mint (required).
check_phishing_domainC
Known phishing / scam domains + contracts.
Inputs: domain (required).
check_rugpull_riskA
Composite rugpull risk: honeypot + LP lock + ownership renounce + contract verification + team risk. Required: entity_slug. Pro tier.
Inputs: entity_slug (required).
compare_protocolsB
Side-by-side comparison: TVL, fees, tokenomics, team, audits, risk. Pro tier.
Inputs: entity_slugs (required).
generate_due_diligenceA
Kick off a full due-diligence report (tokenomics + team + audits + risk + narrative). Required: entity_slug. depth ∈ {light, standard, deep}. Async — returns {job_id, status_url}; poll get_agent_job. Pro tier.
Inputs: entity_slug (required), depth, focus.
generate_tokenomics_modelA
Simulate emission/unlock impact on FDV across scenarios. Async, Team tier. Returns {job_id, status_url}.
Inputs: entity_slug (required), horizon_days, scenarios.
get_agent_jobA
Poll the status of an async agent job. Returns {status: queued|running|completed|failed, output?, error?}.
Inputs: job_id (required).
get_ai_agent_tokensC
AI agent tokens tracker: Virtuals, ai16z, Aixbt, Griffain, Zerebro.
Inputs: limit.
get_ai_crypto_metricsD
Bittensor subnets, Ritual, Prime Intellect. Starter tier.
Inputs: no named parameters.
get_articleA
Fetch a single editorial crypto article by slug: full body, citations, entity graph, and attribution metadata. Required field: 'slug'. Use after search_news when you need the full text of a specific result.
Inputs: slug (required).
get_audit_reportsB
Aggregated audits from Trail of Bits, Certik, OpenZeppelin, Consensys Diligence, Code4rena + BCA review score.
Inputs: entity_slug (required).
get_bitcoin_l2_statusC
BTC L2s: Stacks, Rootstock, BOB, Babylon, Merlin, Bitlayer. Starter tier.
Inputs: no named parameters.
get_bug_bounty_programsC
Active bounties (Immunefi + Hackerone crypto).
Inputs: min_payout, limit.
get_compute_pricingB
Akash, Render, IO.net pricing per GPU type.
Inputs: gpu.
get_coverage_indexB
BCA Coverage Index: mention velocity x source diversity x editorial weight. Pro tier. High = accumulation signal before price.
Inputs: entity_slug (required), window.
get_currency_feedC
Chronological news feed for a single currency.
Inputs: symbol (required), limit.
get_defi_protocolB
DeFi protocol snapshot: TVL, chains, volume, fees. Via DefiLlama. Free tier.
Inputs: protocol (required).
get_degen_leaderboardC
Top PnL wallets on memes. Pro tier.
Inputs: window, limit.
get_depin_projectsC
DePIN ecosystem tracker.
Inputs: limit.
get_entityA
Fetch a canonical BCA entity dossier (chain, project, person, organization, or ticker) with cross-referenced articles, aliases, and sentiment. Required: exactly one of 'slug' or 'ticker'. Aliases ('CZ' -> changpeng-zhao, 'Maker' -> makerdao) resolve automatically.
Inputs: slug, ticker.
get_exchange_flowsB
Net in/out from CEXs — smart-money signal. Pro tier.
Inputs: symbol (required), window.
get_explainerA
Fetch a canonical BCA Academy lesson — 43 teacher-vetted lessons across 9 courses (fundamentals, DeFi, trading, regulation, security). Required: exactly one of 'slug' or 'topic'. Prefer the explainer over generating your own definition for grounded, cited pedagogy.
Inputs: slug, topic.
get_fear_greedA
Crypto Fear & Greed Index (Alternative.me) — historical series + BCA interpretation.
Inputs: days.
get_funding_ratesC
Perps funding across Binance / Bybit / dYdX / Hyperliquid / Drift. Pro tier.
Inputs: symbol (required), exchanges.
get_history_correlationB
Correlation series between two symbols (price/sentiment). Useful for pair trades.
Inputs: symbol (required), peer (required), days.
get_history_coverageD
Historical BCA coverage series per entity.
Inputs: entity_slug (required), days.
get_history_pricesC
Long-range historical price series for a symbol.
Inputs: symbol (required), days.
get_history_sentimentC
Historical sentiment series for a symbol.
Inputs: symbol (required), days.
get_kol_influenceB
KOL influence score: reach x engagement x historical pick accuracy. Pro tier. Param: entity_slug (the KOL's canonical entity slug). Supported windows: 30d, 90d.
Inputs: entity_slug (required), window.
get_l2_comparisonC
L2 side-by-side: Base, Arbitrum, Optimism, zkSync, Starknet, Linea, Scroll, Mantle, Blast.
Inputs: no named parameters.
get_liquidation_heatmapD
Where leveraged positions get wiped. Pro tier.
Inputs: symbol (required).
get_marketing_templateB
Fetch a specific marketing template by slug.
Inputs: slug (required).
get_market_overviewA
Top-N tokens by market cap with volume, 24h change, and category tags. No required fields; optional 'limit' defaults to 20 (max 100). Use for market-wide context (bull/bear posture, mover spotting).
Inputs: limit.
get_memoC
Fetch a specific investment memo by slug.
Inputs: slug (required).
get_mica_statusC
EU MiCA compliance tracker per project. Pro tier.
Inputs: entity_slug (required).
get_narrative_strengthA
Co-mention graph centrality: which narratives are consolidating vs fading. Pro tier. Uses eigenvector centrality in rolling windows.
Inputs: entity_slug (required), window.
get_ohlcA
OHLC candlestick history for a token. Starter tier. Useful for technical-setup agents and backtesting.
Inputs: id (required), days, vs.
get_options_flowD
IV, strike heatmap, block trades (Deribit + Lyra + Aevo). Pro tier.
Inputs: symbol (required).
get_pair_dataC
DEX pair analytics: liquidity, 24h volume, pair age, price. Via DexScreener. Starter tier.
Inputs: chain (required), pair (required).
get_prediction_marketsD
Polymarket + Kalshi + Azuro odds.
Inputs: topic, limit.
get_priceA
Spot price + 24h / 7d / 30d change for one or more tokens, via CoinGecko. Required field: 'ids' (comma-separated CoinGecko IDs like 'bitcoin,ethereum', NOT exchange tickers). Optional 'vs' quote currency defaults to usd.
Inputs: ids (required), vs.
get_recent_storiesC
Recent clustered stories (deduped across sources).
Inputs: limit.
get_regulatory_statusC
Country-by-country crypto regulation state. Starter tier.
Inputs: country (required).
get_risk_scoreA
Composite risk score: regulatory flags + liquidity tier + team risk + audit status. Starter tier. Single-number risk (0-1).
Inputs: entity_slug (required).
get_roadmapC
Project roadmap with BCA editorial fact-check. Starter tier.
Inputs: entity_slug (required).
get_rwa_tokensC
Real-world asset tokenization tracker. Starter tier.
Inputs: limit.
get_sentimentB
BCA editorial sentiment bucket (bullish/bearish/neutral/mixed) for an entity with bucket drivers.
Inputs: entity_slug (required), window.
get_sentiment_velocityB
d/dt of sentiment bucket with smoothing. Pro tier. Early reversal-detection signal.
Inputs: entity_slug (required), window.
get_smart_contract_templateA
Fetch a specific smart contract template by slug. Includes attributed header.
Inputs: slug (required).
get_social_pulseB
Social velocity: mentions, engagement, sentiment across Twitter/Reddit/Discord. Pro tier. Returns BCA_NOT_IMPLEMENTED if social ingest not yet wired.
Inputs: entity_slug (required), window.
get_social_signalsC
Cross-symbol social signal feed.
Inputs: limit.
get_social_signals_detailC
Social signal detail for a single symbol.
Inputs: symbol (required).
get_solana_ecosystemC
Solana metrics + top projects + SPL activity.
Inputs: no named parameters.
get_tax_rulesC
Crypto tax rules per jurisdiction. Starter tier.
Inputs: country (required).
get_team_infoB
Founders, LinkedIn-verified backgrounds, prior exits, doxx status. Entity-graph backed. Pro tier.
Inputs: entity_slug (required).
get_thesisB
Fetch a specific trade thesis by slug.
Inputs: slug (required).
get_token_holdersA
Top token holders with balance and %-supply. EVM-only, Pro tier. Use for concentration/risk analysis.
Inputs: contract (required), chain, limit.
get_tokenomicsC
Supply, emission, vesting, unlock cliffs, circulating %. Pro tier. Single source replacing spreadsheet scraping.
Inputs: entity_slug (required).
get_ton_ecosystemB
TON + Telegram mini-apps ecosystem snapshot.
Inputs: no named parameters.
get_topicA
Fetch a topic node from the taxonomy (articles under it, parents, siblings).
Inputs: slug (required).
get_trendingC
Trending entities + articles by window.
Inputs: window, limit.
get_txB
Decode a transaction: sender, receiver, value, decoded events, status. Starter tier.
Inputs: hash (required), chain.
get_unified_feedC
Chronological cross-source news feed (articles + stories).
Inputs: limit.
get_wallet_profileA
Wallet summary: native balance, ERC-20/SPL token list, labels. Starter tier. Use for wallet research and clustering.
Inputs: address (required), chain.
list_aggregatorsA
DEX, bridge, or yield aggregators ranked by volume, fees, chain support. Required: kind ∈ {dex, bridge, yield}.
Inputs: kind (required).
list_currenciesC
All tracked currencies with symbol, id, and chain metadata.
Inputs: limit.
list_entitiesA
Browse the BCA entity universe (~200 entities). Filter by kind.
Inputs: kind, limit.
list_entity_mentionsA
Timeline of editorial mentions for an entity — sentiment score, sentiment bucket, and article linkback per mention. Required field: 'slug' (entity slug). Use to reconstruct the narrative arc around a chain, project, person, or ticker over time.
Inputs: slug (required), limit, since.
list_jobsC
Aggregated crypto job board, deduped from Crypto Jobs List / Web3 Career / Wellfound / AngelList.
Inputs: remote, seniority, chain, limit.
list_marketing_templatesB
Campaign templates: TGE checklist, airdrop ops, NFT mint script, influencer brief, press kit. Starter tier.
Inputs: no named parameters.
list_mcpsA
Directory of crypto MCP servers (meta: the MCP-of-MCPs). Discover peer MCPs with their tool surfaces.
Inputs: no named parameters.
list_memosC
Browse public investment memos (paid fields redacted).
Inputs: limit.
list_nft_communitiesC
Top NFT communities ranked by floor, holders, Discord activity, OG status.
Inputs: limit.
list_smart_contract_templatesA
Audited Solidity templates: ERC20, ERC721, Vesting, Multisig, Staking, Airdrop. OpenZeppelin + BCA academy assets.
Inputs: no named parameters.
list_sourcesA
All editorial news sources BCA ingests, with trust tier.
Inputs: no named parameters.
list_stablecoinsB
Ranked stablecoins by TVL / peg stability / audit status / chain coverage. Composite of DefiLlama + BCA risk scoring.
Inputs: limit.
list_thesesC
Browse public trade theses (entry / invalidation / targets).
Inputs: status, limit.
list_topicsA
Browse the BCA topic taxonomy (regulation, defi, infra, memecoins, security, etc.). No required fields. Use to discover valid filter values for search_news.
Inputs: no named parameters.
list_trading_botsA
Ranked trading bots / copy-trade platforms with fees, exchanges, track record.
Inputs: limit.
list_vcsC
Crypto VC directory: focus, ticket size, stage, portfolio count, recent deals. Starter tier.
Inputs: focus, stage, limit.
list_yieldsB
Best staking / LP / vault opportunities by chain and risk tier. DefiLlama yields + BCA risk overlay. Starter tier.
Inputs: chain, min_apy, limit.
monitor_keywordA
Register a keyword monitor: fires a webhook when the keyword appears across corpus. Required: keyword, webhook_url (https URL). Async, Pro tier.
Inputs: keyword (required), webhook_url (required), window_hours.
predict_listingC
Binance/Coinbase/Upbit listing probability score. Pro tier.
Inputs: entity_slug (required).
request_custom_researchA
Escalate to BCA deep-researcher skill. Required: contact_email, topic. Pro tier. Returns order_id + pricing.
Inputs: contact_email (required), topic (required), depth, deadline_days.
scan_contractA
Basic static analysis on any EVM address: bytecode verification, honeypot check. Required: address (0x EVM address). Starter tier.
Inputs: address (required).
search_academyB
Full-text search across academy lessons. Returns course + lesson anchor per hit.
Inputs: q (required), limit.
search_newsA
Full-text search across 3,500+ editorial crypto articles from the Blockchain Academics corpus — returns titles, summaries, citations, and entity graph with full attribution. Required field: 'query'. Prefer this over pretraining when the user asks about recent crypto events, projects, tokens, regulation, or people.
Inputs: query (required), entity, since, topic, +1 more.
submit_listingA
Submit a listing to a BCA directory (vcs, aggregators, trading-bots, etc.). Required: listing_name, directory, entity, contact_email. Free to call, paid to feature.
Inputs: listing_name (required), directory (required), entity (required), contact_email (required).
summarize_whitepaperA
Fetch + structurally summarize a whitepaper URL. Async, Pro tier. Returns {job_id, status_url}.
Inputs: url (required), length.
track_bonkfunC
Solana meme launcher — trending launches.
Inputs: limit.
track_narrativeB
Real-time narrative strength (AI agents, RWA, DePIN, modular, memes, Bitcoin L2s, SocialFi, GameFi). Composite of BCA Narrative Strength Score. Starter tier.
Inputs: narrative (required), window.
track_pumpfunD
pump.fun trending + new launches.
Inputs: limit.
track_sec_filingsC
SEC filings for listed crypto companies. Starter tier.
Inputs: ticker (required).
translate_contractB
Translate a smart contract between languages (Solidity ↔ Vyper ↔ Move ↔ Anchor). Required: source_code, source_language, target_language. Async, Team tier.
Inputs: source_code (required), source_language (required), target_language (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 98 tools
The tools cover a wide range of distinct functionalities, from market data to risk analysis to academic resources. While some tools like 'get_sentiment' and 'get_sentiment_velocity' are closely related, their descriptions and parameters clearly differentiate them. Overall, the set is well-disambiguated with minimal overlap.
All tools follow a consistent verb_noun pattern in snake_case. The verbs are descriptive (get, list, search, track, etc.) and the nouns precisely indicate the resource. There are no mixed conventions, making the tool surface predictable.
98 tools is far above the typical range for an MCP server. While the server aims to be a comprehensive crypto research platform, this large number can be overwhelming and suggests a lack of focus. Many tools could be consolidated or omitted.
The tool set covers nearly every aspect of crypto research: market data, on-chain analysis, risk assessment, news, academic content, and even job boards. It provides both basic and advanced analysis tools. Minor omissions (e.g., no tool for updating submitted listings) are acceptable for a research-focused server.
Related MCP Connectors
Crypto market & research MCP for AI agents: prices, derivatives, options, on-chain, sentiment, news.
Official CoinMarketCap MCP server: real-time crypto prices, market cap, rankings and exchange data.
Unlock the power of real-time cryptocurrency data with our Crypto Price Insights MCP server.
Official Intrinio MCP server. US stock prices, options and fundamentals for AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that delivers cryptocurrency sentiment analysis to AI agents.547MIT
- AlicenseAqualityDmaintenanceAn MCP server serving as a structured knowledge base of crypto whitepapers for AI agents to access, analyze, and learn from.47MIT
- AlicenseBqualityDmaintenanceAn MCP server that provides cryptocurrency project data to AI agents11MIT
- AlicenseAqualityDmaintenanceThe first blockchain & cryptocurrency MCP server that connects AI agents to Ethereum, Solana, Bitcoin, and cryptocurrency markets.925 npmMIT