riskstate-mcp
The RiskState MCP server provides a single get_risk_policy tool for real-time risk governance, designed for autonomous crypto trading agents to query before executing trades.
Get risk policy decisions: Receive a structured policy including one of 5 levels —
BLOCK_SURVIVAL,BLOCK_DEFENSIVE,CAUTIOUS,GREEN_SELECTIVE, orGREEN_EXPANSION— along withmax_size_pct,leverage_max, and lists of allowed/blocked actionsSupport BTC and ETH: Currently performs risk analysis for Bitcoin and Ethereum
Assess market conditions: Responses include
cycle_phase,market_regime,macro_regime, anddirectionclassificationsReceive confidence and auditability metrics: Get
confidence_score(0–1),composite_score,policy_hash, andttl_secondsfor cache management and auditabilityIntegrate DeFi on-chain data: Optionally provide a
wallet_addressand lending protocol (sparkoraave) to factor in on-chain position data (LTV, health factor)Request detailed breakdowns: Use
include_detailsto get composite subscores, macro data, risk flags, and data sourcesHandle errors gracefully: Specific error messages for authentication issues, rate limits, and timeouts aid agent recovery
Integrate with Claude ecosystem: Works with Claude Desktop and Claude Code via MCP protocol with stdio transport, with input validation via Zod schemas
RiskState MCP Server
MCP server for RiskState — deterministic risk governance API for autonomous crypto trading agents.
Your agent asks: "How much can I risk?" RiskState answers with: policy level, max position size, leverage limits, blocked actions.
What it does
Wraps the RiskState /v1/risk-state API as an MCP tool. One tool: get_risk_policy.
Field | Description |
| 5 levels: BLOCK_SURVIVAL, BLOCK_DEFENSIVE, CAUTIOUS, GREEN_SELECTIVE, GREEN_EXPANSION |
| Maximum position size as % of portfolio (0-100) |
| Maximum allowed leverage multiplier |
| What the agent CAN do at this policy level |
| What the agent CANNOT do |
| Signal agreement x data quality (0-1) |
The API aggregates 9+ real-time data sources server-side. See API docs for details.
What this wrapper does (and doesn't)
This is a thin wrapper — it translates MCP tool calls into REST API requests to POST /v1/risk-state and returns the response. All computation (scoring, policy engine, data ingestion) happens server-side.
This wrapper adds:
MCP protocol compliance (stdio transport for Claude Desktop/Code)
Input validation via Zod schemas
Human-readable policy summary prepended to responses
Specific error messages (auth, rate limit, timeout) for agent recovery
This wrapper does NOT:
Cache responses (the API has 60s server-side cache)
Perform any scoring or computation locally
Guarantee response schema stability (follows API versioning)
Installation
npm install @riskstate/mcp-serverConfiguration
Environment Variables
Variable | Required | Description |
| Yes | API key from riskstate.ai (free during beta) |
| No | Custom API base URL (default: |
Claude Desktop
Add to ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"riskstate": {
"command": "npx",
"args": ["-p", "@riskstate/mcp-server", "riskstate-mcp"],
"env": {
"RISKSTATE_API_KEY": "your-api-key"
}
}
}
}Claude Code
claude mcp add riskstate -- npx -p @riskstate/mcp-server riskstate-mcpSet the API key in your environment:
export RISKSTATE_API_KEY=your-api-keyGlobal install (alternative)
npm install -g @riskstate/mcp-server
riskstate-mcp # starts MCP server on stdioUsage
The server exposes one tool: get_risk_policy
Parameters
Parameter | Type | Required | Description |
|
| Yes | Asset to analyze |
| string | No | DeFi wallet for on-chain position data |
|
| No | Lending protocol (default: spark) |
| boolean | No | Include full breakdown (subscores, macro, risk flags) |
Example Response
{
"exposure_policy": {
"policy_level": "CAUTIOUS",
"max_size_pct": 35,
"leverage_max": 1.5,
"allowed_actions": ["DCA", "WAIT", "SPOT_LONG_CONFIRMED"],
"blocked_actions": ["LEVERAGE_GT_2X", "NEW_POSITIONS_UNCONFIRMED"]
},
"classification": {
"cycle_phase": "MID",
"market_regime": "RANGE",
"macro_regime": "NEUTRAL",
"direction": "SIDEWAYS"
},
"auditability": {
"composite_score": 52,
"confidence_score": 0.72,
"policy_hash": "a3f8c2...",
"ttl_seconds": 60
}
}How Agents Should Use This
Call get_risk_policy before every trade:
If
policy_levelstarts withBLOCK→ do not open new positionsUse
max_size_pctto cap position sizingCheck
blocked_actionsbefore executingRe-query after
ttl_seconds(60s cache)
Limitations
v1 scope: BTC and ETH only. More assets planned.
Protocols: Spark and Aave V3 only for DeFi position data.
Rate limit: 60 requests/minute per API key.
Latency: ~1-3s per request (9+ upstream data source aggregation).
Tested with: Claude Desktop, Claude Code. Should work with any MCP-compatible client.
Links
Landing page: riskstate.ai
API docs: github.com/likidodefi/riskstate-docs
SKILL.md: agentskills.io
License
MIT
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/likidodefi/riskstate-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server