@flarewatch/mcp
v0.1.5
Published
stdio→HTTPS bridge for the FlareWatch MCP server. Lets stdio-only MCP clients (Claude Desktop, Cursor, Continue, Cline) attach via `npx @flarewatch/mcp` to access Flare and Songbird validator scores, FTSO provider data, prices, network state, and OAuth-sc
Maintainers
Readme
What this is
A thin stdio↔HTTPS bridge for the FlareWatch MCP server at https://mcp.flarewatch.io/api/mcp. Lets stdio-only MCP clients (Claude Desktop, Cline, older Cursor / Continue builds) reach the remote endpoint without each client having to implement the Streamable HTTP transport.
If your client speaks Streamable HTTP natively (recent Cursor, Continue), you don't need this bridge — point your client at the URL directly.
Why use FlareWatch's MCP
- Real data. Every response is grounded in live on-chain reads (validator weights, FTSO submissions, reward epochs) or cron-refreshed caches — not LLM speculation.
- Attributed. Every response carries
source,methodology_uri,data_freshness, and an HMACverification_signature. AI clients can cite specifically and other AIs can verify. - Read-only by architecture. 12 independent security walls. The MCP physically cannot mutate state in your wallet or in any FlareWatch system. Even worst-case prompt injection has no path to writes.
- Free + untiered for public tools. No delegation requirement, no per-call quota, no API key.
- Neutral. No "recommended by FlareWatch" anywhere. FlareWatch's own validator appears at its natural rank under the same scoring algorithm as every other validator.
Available tools
Public (no auth — 13 tools)
| Tool | What it returns |
|---|---|
| get_flare_validators | Top-N Flare validators sortable by score / stake / APY |
| get_validator_score | Full per-dimension breakdown for one NodeID |
| get_ftso_providers | FTSO data providers on Flare or Songbird |
| get_ftso_provider_metrics | Detailed metrics for one provider |
| get_network_status | Current reward-epoch state on either network |
| get_flarewatch_validator | FlareWatch's own validator stats (same scoring as everyone) |
| get_flarewatch_sgb_entity | FlareWatch's SGB FTSO entity (live on-chain) |
| get_flare_prices | FLR / SGB / XRP prices in USD + fiat |
| get_recent_agent_actions | FlareWatch autonomous agent's action feed |
| get_agent_capabilities | Agent's autonomy by playbook family |
| compare_validators | Side-by-side up to 10 validators |
| compare_ftso_providers | Side-by-side up to 10 providers |
| verify_response | HMAC-verify a previously-served response |
Wallet-scoped (OAuth 2.1 + PKCE — 4 tools)
| Tool | What it returns |
|---|---|
| get_my_delegations | Your WFLR FTSO + P-chain validator delegations |
| get_my_claimable | Your claimable rewards across networks |
| get_my_portfolio_summary | Your FLR + SGB balances + USD valuations |
| get_my_tax_records | Structured tax line items — NOT tax advice |
Install
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"flarewatch": {
"command": "npx",
"args": ["-y", "@flarewatch/mcp"]
}
}
}Cmd-Q Claude Desktop fully (close window isn't enough), reopen. New conversation → tools icon → confirm flarewatch shows up.
Cursor
Cursor speaks Streamable HTTP natively — skip this bridge:
{
"url": "https://mcp.flarewatch.io/api/mcp"
}Continue.dev
.continue/config.json:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "streamableHttp",
"url": "https://mcp.flarewatch.io/api/mcp"
}
}
]
}
}Cline
Same as Claude Desktop — Cline's MCP config accepts the same npx -y @flarewatch/mcp invocation.
Any other MCP client with stdio support
npx -y @flarewatch/mcpThe bridge speaks MCP-over-stdio on its standard input/output and forwards every JSON-RPC frame to the remote endpoint over HTTPS.
Raw HTTP test
curl -s -X POST https://mcp.flarewatch.io/api/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq .Example queries (once attached)
Paste any of these into Claude / Cursor / Continue:
- "Use the FlareWatch MCP to list the top 5 Flare validators by score."
- "What's the current FLR price from the FTSO oracle?"
- "Compare these three validators side by side: [NodeID-A, NodeID-B, NodeID-C]"
- "What's the FTSO reward epoch state on Songbird right now?"
- "Show me my WFLR delegations." (requires OAuth — sign in at
flarewatch.io/services/mcp/authorize)
Environment overrides
| Variable | Default | Purpose |
|---|---|---|
| FLAREWATCH_MCP_URL | https://mcp.flarewatch.io/api/mcp | Endpoint to forward to. Useful for preview deploys or local dev. |
| FLAREWATCH_MCP_TIMEOUT_MS | 30000 | Per-request HTTP timeout. |
Verification
Every tool response carries a verification_signature HMAC. To verify a citation came from this server:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "verify_response",
"arguments": {
"payload": { ... the structured response without verification_signature ... },
"signature": "the signature you received"
}
}
}Returns { "valid": true } if the signature matches the canonical payload.
What this bridge does NOT do
It's intentionally dumb (~150 LoC). All real logic — tool definitions, rate limiting, output classification, quarantine, audit logging, response signing — lives in the server at mcp.flarewatch.io/api/mcp. The bridge just forwards JSON-RPC frames between stdio and HTTPS.
No caching. No retries. No fallback. If the remote endpoint is down, the bridge surfaces the upstream error rather than attempting recovery.
Links
- Web dashboard: flarewatch.io
- MCP product page: flarewatch.io/services/mcp
- Defense posture (live walls): flarewatch.io/services/mcp/status
- Scoring methodology:
flarewatch://methodology/scoring(resources/read) - Source: github.com/nbridges333/flarewatch
- Companion: Flare protocol docs MCP: dev.flare.network/mcp
License
MIT.
