MCP server
Let Claude, Cursor, and any MCP-aware AI agent query BlackHart BRI tools directly during a conversation. 8 typed tools cover scores, hacks, history, search, and comparison. Zero-install, stdio transport, no key required for the free tier.
Why MCP?
Ask for risk scores in natural language. No API calls, no parsing, no boilerplate. Your AI agent handles it.
MCP-compatible agents auto-discover tools and their zod schemas. Plug in and start querying.
Every response is structured JSON: scores, verdicts, dimensions, deltas. Machine-readable by default.
Install
Zero-install (recommended)
Run on demand via npx. Always latest. No state.
npx -y @blackhart/mcp-serverGlobal install
Pin a version. Slightly faster startup. Requires Node 18+.
npm install -g @blackhart/mcp-serverClaude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows). Restart Claude after saving.
{
"mcpServers": {
"blackhart": {
"command": "npx",
"args": ["-y", "@blackhart/mcp-server"]
}
}
}With an API key (recommended for higher rate limits):
{
"mcpServers": {
"blackhart": {
"command": "npx",
"args": ["-y", "@blackhart/mcp-server"],
"env": {
"BLACKHART_API_KEY": "your-key-here"
}
}
}
}Cursor / Claude Code
Add to your project's .mcp.json (Claude Code) or ~/.cursor/mcp.json (Cursor):
{
"mcpServers": {
"blackhart": {
"command": "npx",
"args": ["-y", "@blackhart/mcp-server"]
}
}
}Available tools
get_protocol_score()slug: stringFull BRI, Forge Scale, and all 12 dimension scores for one protocol.
list_protocols()filter?: { category, chain, minBri }Paginated list of scored protocols. Filter by category, chain, or minimum BRI.
get_hack()slug: stringFull forensic write-up of one confirmed DeFi exploit, including the post-hoc BRI dimension impact.
list_hacks()days?: numberRecent confirmed hacks. Default 30 days. Returns severity, loss, attack class, and forensic links.
search_protocols()query: stringFull-text search across protocol names, categories, and chains. Returns matching scores.
compare_protocols()slugs: string[]Side-by-side comparison of up to 5 protocols across all 12 dimensions plus composite BRI.
get_findings_summary()slug: stringAggregated counts and severity distribution of public findings (Critical / High / Medium / Low) for a protocol.
get_score_history()slug: string, days?: numberTime series of BRI changes for a protocol. Default 30 days. Each point includes delta and the event that triggered it.
Usage examples
Once configured, ask in plain English. The agent picks the tool, fills the args, and renders the structured result.
# In Claude Desktop, Cursor, or any MCP client, just ask:
"What's the BlackHart score for Aave V3?"
-> get_protocol_score("aave-v3")
"Compare Morpho Blue and Euler V2 across all dimensions."
-> compare_protocols(["morpho-blue", "euler-v2"])
"List lending protocols below DAMASCUS."
-> list_protocols({ category: "lending" })
"Has Lido's score changed in the last 30 days?"
-> get_score_history("lido", 30)
"Show me the Squid Router hack write-up."
-> get_hack("squid-router")Environment variables
| Variable | Default |
|---|---|
BLACKHART_API_URL | https://oracle.blackhart.io/api/v1 |
BLACKHART_API_KEY | (none) |
MIT licensed. Issues, PRs, and forks welcome.