Crypto portfolio risk analysis: VaR, scenarios, liquidity and correlation engines as MCP tools.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer <API key>. Create a free account at https://app.sentralis.io, then generate an sk_live_ key under API Keys. Format: 'Bearer sk_live_...'
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Fetch an analysis by id. status=queued → poll again shortly; succeeded → result contains the risk envelope ({ok:true, result} or a persisted domain error like INSUFFICIENT_DATA) plus resolved data dates and the deterministic inputs hash; failed → error explains why.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Fetch an analysis by id. status=queued → poll again shortly; succeeded → result contains the risk envelope ({ok:true, result} or a persisted domain error like INSUFFICIENT_DATA) plus resolved data dates and the deterministic inputs hash; failed → error explains why.
| Argument | Type | Description |
|---|---|---|
| analysis_id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"analysis_id"
],
"properties": {
"analysis_id": {
"type": "string",
"format": "uuid"
}
},
"additionalProperties": false
}List the available risk-analysis engines with their JSON-Schema config contracts, limits, and asOfDate (point-in-time) support. Call this before run_risk_analysis to learn the exact config fields each engine requires.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Search the supported asset universe (max 100 results). Preflight inline-portfolio symbols here — unknown symbols are dropped from valuation or yield INSUFFICIENT_DATA.
| Argument | Type | Description |
|---|---|---|
| query | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"query": {
"type": "string",
"maxLength": 40
}
},
"additionalProperties": false
}Submit a risk analysis (engines: monte-carlo, historical-replay, sector-concentration-stress, liquidity-stress, correlation-regime-stress, counterparty-infrastructure-risk, factor-shock, macro-sensitivity). Provide EXACTLY ONE portfolio source: portfolio_ref (a stored portfolio id — see the user's portfolios) OR inline_positions (ad-hoc, max 30 positions of {symbol, amount-as-decimal-string}). config must satisfy the engine's JSON Schema from list_risk_engines. as_of_date (YYYY-MM-DD, engines with asOfDateSupported only) runs the analysis point-in-time: current portfolio composition × historical market data. ALWAYS returns an analysis_id immediately — poll get_analysis_result until status is succeeded or failed.
| Argument | Type | Description |
|---|---|---|
| config* | object | |
| engine* | string | |
| as_of_date | string | |
| portfolio_ref | string | |
| inline_positions | array |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"engine",
"config"
],
"properties": {
"config": {
"type": "object",
"additionalProperties": {}
},
"engine": {
"enum": [
"monte-carlo",
"historical-replay",
"sector-concentration-stress",
"liquidity-stress",
"correlation-regime-stress",
"counterparty-infrastructure-risk",
"factor-shock",
"macro-sensitivity"
],
"type": "string"
},
"as_of_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"portfolio_ref": {
"type": "string",
"maxLength": 100
},
"inline_positions": {
"type": "array",
"items": {
"type": "object",
"required": [
"symbol",
"amount"
],
"properties": {
"amount": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"symbol": {
"type": "string",
"maxLength": 40,
"minLength": 1
}
},
"additionalProperties": false
},
"maxItems": 30,
"minItems": 1
}
},
"additionalProperties": false
}