Metruvo MCP
A read-only MCP server providing portfolio analysis tools for AI assistants, including searching fund catalogs, analyzing portfolio overlap and concentration, and comparing ETFs using published data.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://metruvo.com/api/mcpWhat you can do with it
- Search the instrument catalogue by name, ISIN or ticker.
- Analyze overlap, concentration, and exposure for a list of ISINs.
- Compare two ETFs as a 50/50 portfolio with side-by-side facts.
Source and maintenance
Protocol and capabilities
- Server
- metruvo 1.1.0
- MCP protocol
- 2025-06-18
- Tools
- 4 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
4 advertised
search_funds
Search the published instrument catalogue by name, ISIN or ticker; includes currency and listing identifiers. Returns checkUrl: a shareable link to the same result.
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 100,
"minLength": 2
}
},
"additionalProperties": false
}{
"title": "Search funds",
"readOnlyHint": true,
"openWorldHint": false
}xray_portfolio
Analyze free-preview ETF overlap/concentration findings, known ongoing charges and regional/sector exposures from published evidence. Identify each holding with exactly one ISIN or ticker; a ticker can be ambiguous across exchanges. Use positive relative weights, values in one base currency, or omit all amounts for equal weights. Never mix weights and values. At most 10 distinct tickers per call. Dates, coverage and all data gaps accompany the result. Returns checkUrl: a shareable link to the same result.
{
"type": "object",
"required": [
"holdings"
],
"properties": {
"holdings": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"required": [
"isin"
]
},
{
"required": [
"ticker"
]
}
],
"properties": {
"isin": {
"type": "string",
"pattern": "^[A-Z]{2}[A-Z0-9]{9}[0-9]$",
"description": "ISIN with a valid check digit."
},
"value": {
"type": "number",
"exclusiveMinimum": 0
},
"ticker": {
"type": "string",
"pattern": "^[A-Za-z0-9.-]{2,20}$",
"description": "Exchange ticker, e.g. VWCE or SWDA.L; may match listings on several exchanges."
},
"weight": {
"type": "number",
"maximum": 100,
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"maxItems": 25,
"minItems": 1
},
"baseCurrency": {
"enum": [
"EUR",
"GBP",
"CHF",
"USD"
],
"type": "string",
"default": "EUR"
}
},
"additionalProperties": false
}{
"title": "Portfolio X-ray",
"readOnlyHint": true,
"openWorldHint": false
}compare_funds
Analyze two ETFs as a 50/50 portfolio, with overlap and issuer facts including dated ongoing charges side by side, and each fund's own region and sector exposure. Identify each side with exactly one ISIN or ticker; a ticker can be ambiguous across exchanges. Unknown facts remain null. Returns checkUrl: a shareable link to the same result.
{
"type": "object",
"allOf": [
{
"oneOf": [
{
"required": [
"isinA"
]
},
{
"required": [
"tickerA"
]
}
]
},
{
"oneOf": [
{
"required": [
"isinB"
]
},
{
"required": [
"tickerB"
]
}
]
}
],
"required": [],
"properties": {
"isinA": {
"type": "string",
"pattern": "^[A-Z]{2}[A-Z0-9]{9}[0-9]$",
"description": "ISIN with a valid check digit."
},
"isinB": {
"type": "string",
"pattern": "^[A-Z]{2}[A-Z0-9]{9}[0-9]$",
"description": "ISIN with a valid check digit."
},
"tickerA": {
"type": "string",
"pattern": "^[A-Za-z0-9.-]{2,20}$",
"description": "Exchange ticker, e.g. VWCE or SWDA.L; may match listings on several exchanges."
},
"tickerB": {
"type": "string",
"pattern": "^[A-Za-z0-9.-]{2,20}$",
"description": "Exchange ticker, e.g. VWCE or SWDA.L; may match listings on several exchanges."
}
},
"additionalProperties": false
}{
"title": "Compare two funds",
"readOnlyHint": true,
"openWorldHint": false
}rank_funds
Sort 2 to 10 funds by up to three published facts: ongoing charge, US share, pairwise overlap and holdings count. Rows follow the criteria in order. A missing fact sorts last and stays null; it is never estimated. Rates are decimal fractions (0.07 = 7%). Analysis based on published fund data. Returns checkUrl: a shareable link to the same result.
{
"type": "object",
"required": [
"isins",
"criteria"
],
"properties": {
"isins": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Z]{2}[A-Z0-9]{9}[0-9]$",
"description": "ISIN with a valid check digit."
},
"maxItems": 10,
"minItems": 2,
"uniqueItems": true
},
"criteria": {
"type": "array",
"items": {
"type": "object",
"required": [
"metric",
"direction"
],
"properties": {
"metric": {
"enum": [
"ongoingCharge",
"usShare",
"overlap",
"holdingsCount"
],
"type": "string"
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 3,
"minItems": 1
}
},
"additionalProperties": false
}{
"title": "Rank funds",
"readOnlyHint": true,
"openWorldHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 949 ms
- 95th percentile latency
- 949 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 949 ms · metadata changed · 4 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http metruvo-mcp https://metruvo.com/api/mcpCodex
codex mcp add metruvo-mcp --url https://metruvo.com/api/mcpCursor
{
"mcpServers": {
"metruvo-mcp": {
"url": "https://metruvo.com/api/mcp"
}
}
}Cline
{
"mcpServers": {
"metruvo-mcp": {
"type": "streamableHttp",
"url": "https://metruvo.com/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"metruvo-mcp": {
"type": "http",
"url": "https://metruvo.com/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http metruvo-mcp https://metruvo.com/api/mcpClaude Desktop
{
"mcpServers": {
"metruvo-mcp": {
"url": "https://metruvo.com/api/mcp"
}
}
}Windsurf
{
"mcpServers": {
"metruvo-mcp": {
"serverUrl": "https://metruvo.com/api/mcp"
}
}
}Let your agent find its tools
Find servers like Metruvo MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run Metruvo MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.