Changelog
All notable changes to @blockchainacademics/mcp. Follows Semantic Versioning and Keep a Changelog.
Source of truth: bca-mcp-ts/CHANGELOG.md.
[0.2.2] — 2026-04-21
Fixed — 10 tool input schemas surfaced via live production audit
Live audit of all 99 tools against api.blockchainacademics.com revealed 10 tools where the MCP-side Zod schema disagreed with the backend Pydantic contract. Each fix resolves an HTTP 422 that agents previously hit:
generate_due_diligence—depthenum:brief|standard|deep→light|standard|deeptranslate_contract— renamedsource_lang→source_language,target_lang→target_languagemonitor_keyword—webhook_urlnow required (was optional)list_aggregators—kindenum:swap|bridge|all→dex|bridge|yield, now requiredcheck_rugpull_risk— field:contract+chain→entity_slugcheck_memecoin_risk— field:contract+chain→mint(Solana token mint)scan_contract— field:contract+chain→address(0x EVM, regex-validated)book_kol_campaign— added requiredcontact_emailrequest_custom_research— added requiredcontact_email;depthenum aligned tolight|standard|deepsubmit_listing— added requiredlisting_name
Tool descriptions now document required fields + enum values inline so LLM callers can self-correct before an API round-trip.
[0.2.1] — 2026-04-21
Fixed
get_editorial_premiumandget_kol_influencenow defaultwindowto30dinstead of7d. The backend only rolls these two indicators at 30d/90d today, so the previous default caused a 404 for any agent that didn’t passwindow. Supported windows are noted in each tool’s description.- Live-verified against
api.blockchainacademics.com: schema parse → runtime call → envelope data.
[0.2.0] — 2026-04-21
Verified against production prior to publish
- All 5 agent-job skills smoke-tested against
api.blockchainacademics.com:summarize_whitepaper,due_diligence,monitor_keyword,translate_contractall succeed.tokenomics_modelreturns a cleanSkillErrorenvelope until the fundamentals ingester lands. - Migration 015 (
keyword_monitors) applied on prod Neon viapreDeployCommand. - Stub endpoints (Twitter social, DEXTools, bonk.fun, Bittensor) now return
{status: "integration_pending", reason, eta}with anX-BCA-Integration-Status: pendingheader instead of 501 /NotImplementedError.
Added — 96 new tools (total surface: 99 tools, 19 categories)
Phase 3c/3d/3e expansion wires every live /v1/* endpoint the backend exposes as an MCP tool. Category breakdown:
- Content & corpus (7), Market data (4), On-chain (4), Sentiment (3)
- Proprietary indicators (6), Agent-backed generation async (6)
- Directories (13), Fundamentals (6), Chain-specific (4)
- Microstructure (5), Narrative / meta (5), Regulatory (4), Security (4)
- Memes / degen (4), Compute / AI crypto (2), Services revenue (3)
- History time-series (4), Corpus meta (7), Memos / theses / social / currencies (8)
Added — core surface
- Unified response envelope — every tool returns
{data, cite_url, as_of, source_hash}.cite_urlcarries UTM attribution (src=,utm_medium=mcp,utm_campaign={tool_name}). - Integration-pending status — tools whose upstream data source is still being wired return
{data: null, status: "integration_pending"}+X-BCA-Integration-Statusheader. No raw 501s. - Live smoke tests —
BCA_API_KEY=... npm run test:livepings one tool per category against production.
Changed
- Minimum Node version bumped to 18.17 (previously 18.0).
search_newssupportstopicfilter andsince(ISO 8601) filter.- Error taxonomy refined to
BCA_AUTH,BCA_RATE_LIMIT,BCA_UPSTREAM,BCA_NETWORK,BCA_BAD_REQUEST,BCA_NOT_IMPLEMENTED.
Docs
docs.blockchainacademics.comlaunched — you are here.
[0.1.0] — 2026-04-19
Added
- Initial release with stdio transport.
search_news— full-text search over the BCA editorial corpus.get_entity— canonical entity dossiers by slug or ticker.get_explainer— canonical academy lessons by slug or topic.- Typed HTTPS client with
BCA_API_KEYheader injection and 20s timeout. - Structured error taxonomy (
BCA_AUTH,BCA_RATE_LIMIT,BCA_UPSTREAM,BCA_NETWORK,BCA_BAD_REQUEST). - Attribution surfacing (
cite_url,as_of,source_hash) on every tool response. - Smoke test suite using
node:testwith mockedfetch.