MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

The canonical crypto MCP server for AI agents — 3,501+ editorial articles, 200+ entity dossiers, 43 academy lessons

Created 4/20/2026
Updated about 5 hours ago
Repository documentation and setup instructions

@blockchainacademics/mcp

The canonical crypto MCP server for AI agents. 99 tools spanning 3,501+ editorial articles, 200+ entity dossiers, 43 academy lessons, aggregated market + on-chain data, proprietary indicators, and async agent-backed generation — all accessible as MCP tools your AI agent can call natively.

Tool categories (v0.2.0)

| Category | Count | Examples | |---|---|---| | Content & corpus | 7 | search_news, get_article, get_entity, get_explainer, list_entity_mentions, get_as_of_snapshot | | Market data | 4 | get_price, get_ohlc, get_market_overview, get_pair_data | | On-chain | 4 | get_wallet_profile, get_tx, get_token_holders, get_defi_protocol | | Sentiment | 3 | get_sentiment, get_social_pulse, get_fear_greed | | Proprietary indicators | 6 | get_coverage_index, get_narrative_strength, get_sentiment_velocity, get_editorial_premium, get_kol_influence, get_risk_score | | Agent-backed (async, Pro+) | 6 | generate_due_diligence, generate_tokenomics_model, summarize_whitepaper, translate_contract, monitor_keyword, get_agent_job | | Directories | 13 | list_stablecoins, list_yields, list_aggregators, list_mcps, list_vcs, list_jobs, build_custom_indicator, … | | Fundamentals | 6 | get_tokenomics, get_audit_reports, get_team_info, compare_protocols, check_rugpull_risk | | Chain-specific | 4 | get_solana_ecosystem, get_l2_comparison, get_bitcoin_l2_status, get_ton_ecosystem | | Markets microstructure | 5 | get_funding_rates, get_options_flow, get_liquidation_heatmap, get_exchange_flows, predict_listing | | Narrative / meta | 5 | track_narrative, get_ai_agent_tokens, get_depin_projects, get_rwa_tokens, get_prediction_markets | | Regulatory | 4 | get_regulatory_status, track_sec_filings, get_mica_status, get_tax_rules | | Security | 4 | check_exploit_history, check_phishing_domain, get_bug_bounty_programs, scan_contract | | Memes / degen | 4 | track_pumpfun, track_bonkfun, check_memecoin_risk, get_degen_leaderboard | | Services (revenue) | 3 | book_kol_campaign, request_custom_research, submit_listing | | History time-series | 4 | get_history_prices, get_history_sentiment, get_history_correlation, get_history_coverage | | Compute / AI crypto | 2 | get_compute_pricing, get_ai_crypto_metrics | | Corpus meta | 7 | list_entities, get_topic, search_academy, get_trending, get_unified_feed, list_sources, get_recent_stories | | Memos + theses + social | 6 | list_memos, get_memo, list_theses, get_thesis, get_social_signals, get_social_signals_detail | | Currencies | 2 | list_currencies, get_currency_feed |

Every tool response carries cite_url (with UTM src attribution), as_of (time-travel snapshot), and source_hash (content integrity).

Tools for unreleased integrations (Twitter social pulse, DEXTools, bonk.fun, Bittensor) return {status: "integration_pending", reason, eta} rather than failing. The MCP server is fully usable today.

Why

LLMs hallucinate about crypto. BCA ships ground-truth editorial content with full attribution. Plug this MCP server into Claude Desktop, LangChain, Eliza, or any MCP-compatible agent and your model queries the BCA corpus like any other tool — with citations, timestamps, and source hashes on every response.

Install

Claude Desktop

Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "blockchainacademics": {
      "command": "npx",
      "args": ["-y", "@blockchainacademics/mcp"],
      "env": { "BCA_API_KEY": "bca_live_xxxxxxxxxxxxxxxx" }
    }
  }
}

Restart Claude Desktop. All 99 tools appear in the tool picker.

Programmatic (LangChain, Eliza, custom agents)

npm install @blockchainacademics/mcp
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

const transport = new StdioClientTransport({
  command: "npx",
  args: ["-y", "@blockchainacademics/mcp"],
  env: { BCA_API_KEY: process.env.BCA_API_KEY! },
});
const client = new Client({ name: "my-agent", version: "0.0.1" }, { capabilities: {} });
await client.connect(transport);

const res = await client.callTool({
  name: "search_news",
  arguments: { query: "stablecoin regulation", limit: 5 },
});
console.log(res.content);

See examples/research-agent.ts for a full tool-chaining loop.

Tools

search_news

Full-text search across 3,501+ editorial crypto articles.

| arg | type | required | description | |---|---|---|---| | query | string (1-512) | yes | Search query | | entity | string | no | Entity slug filter (e.g. ethereum) | | since | ISO 8601 | no | Earliest publish date | | topic | string | no | Topic filter (e.g. regulation) | | limit | number (1-50) | no | Default 10 |

Example: { "query": "circle IPO", "since": "2026-01-01T00:00:00Z", "limit": 5 }

get_entity

Fetch a canonical entity dossier. Provide exactly one of:

| arg | type | description | |---|---|---| | slug | string | e.g. "vitalik-buterin", "circle" | | ticker | string | e.g. "ETH", "SOL" (case-insensitive) |

Aliases resolve automatically (CZchangpeng-zhao, Makermakerdao, BSCbnb-chain, …).

get_explainer

Fetch a canonical academy lesson. Provide exactly one of:

| arg | type | description | |---|---|---| | slug | string | Lesson slug, e.g. "what-is-a-blockchain" | | topic | string | Topic keyword that resolves to the canonical lesson |

Attribution

Every response includes a structured attribution block:

{
  "data": { ... },
  "attribution": {
    "cite_url": "https://blockchainacademics.com/...",
    "as_of": "2026-04-19T12:34:56Z",
    "source_hash": "sha256:..."
  }
}

When your agent surfaces BCA content to a user, attribute via the cite_url. Fields are preserved as null when upstream omits them so downstream agents can detect missing provenance.

API Key

Get an API key at https://blockchainacademics.com/api (free tier: 1,000 calls/month). Paid tiers unlock agent-backed research generation and proprietary on-chain indicators.

Set BCA_API_KEY in your MCP client env. Optionally override BCA_API_BASE_URL (default https://api.blockchainacademics.com).

Errors

The server never crashes the stdio process. All failures surface as MCP responses with isError: true and a JSON body:

{ "error": { "code": "BCA_AUTH", "message": "..." } }

| Code | Meaning | |---|---| | BCA_AUTH | Missing/invalid BCA_API_KEY (HTTP 401/403) | | BCA_RATE_LIMIT | Rate limit exceeded (HTTP 429 — honor Retry-After) | | BCA_UPSTREAM | BCA API returned 5xx or malformed JSON | | BCA_NETWORK | Network failure or 20s timeout exceeded | | BCA_BAD_REQUEST | Invalid tool arguments |

Development

npm install
npm run build    # tsc -> dist/
npm test         # node:test smoke suite
npm run dev      # tsx src/index.ts (stdio)

License

MIT © 2026 Blockchain Academics

Quick Setup
Installation guide for this server

Install Package (if required)

npx @modelcontextprotocol/server-bca-mcp

Cursor configuration (mcp.json)

{ "mcpServers": { "blockchainacademics-bca-mcp": { "command": "npx", "args": [ "blockchainacademics-bca-mcp" ] } } }