MCP server: One MCP server.

Blockchainacademics MCP

@blockchainacademicsRun by its publisher: served from their own domain, namespace checked by the registry.MCP server · External

Crypto MCP — 99 tools across news, market, on-chain, sentiment, indicators, agent generation.

Crypto marketsv0.4.2MITTypeScript
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

npm@blockchainacademics/mcpv0.4.2

Run

npx -y @blockchainacademics/mcp

MCP client config

{
  "mcpServers": {
    "blockchainacademics-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@blockchainacademics/mcp"
      ]
    }
  }
}
README6 min read

The canonical crypto MCP server for AI agents. 102 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.4.0)

CategoryCountExamples
Content & corpus7search_news, get_article, get_entity, get_explainer, list_entity_mentions, get_as_of_snapshot
Market data4get_price, get_ohlc, get_market_overview, get_pair_data
On-chain4get_wallet_profile, get_tx, get_token_holders, get_defi_protocol
Sentiment3get_sentiment, get_social_pulse, get_fear_greed
Proprietary indicators6get_coverage_index, get_narrative_strength, get_sentiment_velocity, get_editorial_premium, get_kol_influence, get_risk_score
Agent-backed (async, Pro+)6generate_due_diligence, generate_tokenomics_model, summarize_whitepaper, translate_contract, monitor_keyword, get_agent_job
Directories13list_stablecoins, list_yields, list_aggregators, list_mcps, list_vcs, list_jobs, build_custom_indicator, …
Fundamentals6get_tokenomics, get_audit_reports, get_team_info, compare_protocols, check_rugpull_risk
Chain-specific4get_solana_ecosystem, get_l2_comparison, get_bitcoin_l2_status, get_ton_ecosystem
Markets microstructure5get_funding_rates, get_options_flow, get_liquidation_heatmap, get_exchange_flows, predict_listing
Narrative / meta5track_narrative, get_ai_agent_tokens, get_depin_projects, get_rwa_tokens, get_prediction_markets
Regulatory4get_regulatory_status, track_sec_filings, get_mica_status, get_tax_rules
Security4check_exploit_history, check_phishing_domain, get_bug_bounty_programs, scan_contract
Memes / degen4track_pumpfun, track_bonkfun, check_memecoin_risk, get_degen_leaderboard
Services (revenue)3book_kol_campaign, request_custom_research, submit_listing
History time-series4get_history_prices, get_history_sentiment, get_history_correlation, get_history_coverage
Compute / AI crypto2get_compute_pricing, get_ai_crypto_metrics
Corpus meta7list_entities, get_topic, search_academy, get_trending, get_unified_feed, list_sources, get_recent_stories
Memos + theses + social6list_memos, get_memo, list_theses, get_thesis, get_social_signals, get_social_signals_detail
Currencies2list_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 (zero-config demo)

The package ships with a public demo key baked in. No signup needed to try it. Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):

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

Restart Claude Desktop. The demo path unlocks 10 marquee tools (get_price, get_trending, get_fear_greed, get_market_overview, search_news, get_sentiment, get_entity, get_explainer, get_recent_stories, get_topic) with real data and real citations. Shared rate cap: 100 calls/day globally + 20/day per IP.

Claude Desktop (full 102 tools)

Get a free key at brain.blockchainacademics.com/signup (2,000 calls/month per user) and add the env block:

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

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

Programmatic (LangChain, Eliza, custom agents)

bash
npm install @blockchainacademics/mcp
ts
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.

argtyperequireddescription
querystring (1-512)yesSearch query
entitystringnoEntity slug filter (e.g. ethereum)
sinceISO 8601noEarliest publish date
topicstringnoTopic filter (e.g. regulation)
limitnumber (1-50)noDefault 10

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

get_entity

Fetch a canonical entity dossier. Provide exactly one of:

argtypedescription
slugstringe.g. "vitalik-buterin", "circle"
tickerstringe.g. "ETH", "SOL" (case-insensitive)

Aliases resolve automatically (CZ → changpeng-zhao, Maker → makerdao, BSC → bnb-chain, …).

get_explainer

Fetch a canonical academy lesson. Provide exactly one of:

argtypedescription
slugstringLesson slug, e.g. "what-is-a-blockchain"
topicstringTopic keyword that resolves to the canonical lesson

Attribution

Every response includes a structured attribution block:

json
{
  "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

Not required to try it. When BCA_API_KEY is unset, the server falls back to a baked-in public demo key that unlocks 10 marquee tools. See Demo tier above.

For the full 102 tools, get a free key at brain.blockchainacademics.com/signup (2,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 (default https://api.blockchainacademics.com). BCA_API_BASE_URL is also accepted for backward compatibility.

Errors

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

json
{ "error": { "code": "BCA_AUTH", "message": "..." } }
CodeMeaning
BCA_AUTHInvalid BCA_API_KEY (HTTP 401/403)
BCA_TIER_LOCKEDTool not in your current tier's allowlist (HTTP 403). Demo tier sees this on 92 of the 102 tools — the error message includes the upgrade URL.
BCA_RATE_LIMITRate limit exceeded (HTTP 429 — honor Retry-After)
BCA_UPSTREAMBCA API returned 5xx or malformed JSON
BCA_NETWORKNetwork failure or 20s timeout exceeded
BCA_BAD_REQUESTInvalid tool arguments

Development

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

Pre-commit hooks

This repo uses pre-commit to enforce formatting, lint, secret scanning, and large-file caps before every commit. Install once per clone:

bash
pip install pre-commit          # or: brew install pre-commit
pre-commit install              # wires .git/hooks/pre-commit
pre-commit run --all-files      # optional: lint the full tree now

Hooks configured in .pre-commit-config.yaml: prettier --check, eslint, gitleaks, detect-private-key, check-added-large-files (500KB cap).

Security

See SECURITY.md for vulnerability reporting, supported versions, and our 90-day coordinated disclosure policy.

License

MIT © 2026 Blockchain Academics

Similar modules

Browse Crypto markets