BlackHart
Go live

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?

Plain-English queries

Ask for risk scores in natural language. No API calls, no parsing, no boilerplate. Your AI agent handles it.

Tool discovery

MCP-compatible agents auto-discover tools and their zod schemas. Plug in and start querying.

Typed results

Every response is structured JSON: scores, verdicts, dimensions, deltas. Machine-readable by default.

Install

1

Zero-install (recommended)

Run on demand via npx. Always latest. No state.

Terminal
npx -y @blackhart/mcp-server
2

Global install

Pin a version. Slightly faster startup. Requires Node 18+.

Terminal
npm install -g @blackhart/mcp-server

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows). Restart Claude after saving.

claude_desktop_config.json
{
  "mcpServers": {
    "blackhart": {
      "command": "npx",
      "args": ["-y", "@blackhart/mcp-server"]
    }
  }
}

With an API key (recommended for higher rate limits):

claude_desktop_config.json
{
  "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):

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

Available tools

get_protocol_score()slug: string

Full 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: string

Full forensic write-up of one confirmed DeFi exploit, including the post-hoc BRI dimension impact.

list_hacks()days?: number

Recent confirmed hacks. Default 30 days. Returns severity, loss, attack class, and forensic links.

search_protocols()query: string

Full-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: string

Aggregated counts and severity distribution of public findings (Critical / High / Medium / Low) for a protocol.

get_score_history()slug: string, days?: number

Time 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.

Natural-language prompts
# 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

VariableDefault
BLACKHART_API_URLhttps://oracle.blackhart.io/api/v1
BLACKHART_API_KEY(none)
Open source

MIT licensed. Issues, PRs, and forks welcome.

View source