indexa-capital-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| INDEXA_API_TOKEN | Yes | Your Indexa Capital API token. Obtain from your account settings. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| indexa_get_meA | Retrieve the authenticated user's profile and the list of all Indexa Capital accounts they own or have access to. This is the entry point of the API: every other tool requires an Args:
Returns: For JSON format, the raw response from GET /users/me: { "username": string, "email": string, "name"?: string, "surname"?: string, "document": string, "document_type": string, "roles": string[], "is_activated": boolean, "accounts": [ { "account_number": string, // e.g. "NK1NUTP1" — pass to other tools "status": string, // "active", "pending-contract", etc. "type": "mutual" | "pension" } ], "accounts_relations": [ { "account_number": string, "relation": "owner" | "auth" | "guest" } ] } Examples:
Error handling:
|
| indexa_get_accountA | Retrieve static information about a single Indexa account: product type (cartera de fondos / plan de pensiones), risk profile (1-10), holders, account status, funding state and currency. This tool does NOT return the current portfolio value, holdings, or performance — for those use indexa_get_portfolio and indexa_get_performance. Args:
Returns: For JSON format, the raw response from GET /accounts/{account_number}: { "account_number": string, "account_type": "personal" | "company" | "minor", "type": "mutual" | "pension", "currency": string, // typically "EUR" "status": string, // "active", "pending-contract", etc. "funding": "total" | "partial" | "no", "profile": { "selected_risk": 1-10, // user-selected risk level "risk": { "tolerance": 1-10, // questionnaire-derived "capacity": 1-10, "total": 1-10 // = min(tolerance, capacity) }, "is_outdated": boolean, "needs_to_be_updated": boolean }, "holders": [...], // titulares con nombre y DNI "platform_code": string } Examples:
Error handling:
|
| indexa_get_portfolioA | Retrieve the current portfolio of an Indexa account: total value, cash position, and the full list of instruments currently held (ISIN, name, asset class, market value, cost basis, unrealized P/L and return %). API response shape: { "portfolio": { "total_amount", "cash_amount", "instruments_amount", "instruments_cost", "date" }, "cash_accounts": [{ "amount", "date" }], "instrument_accounts": [{ "positions": [{ "amount", "cost_amount", "price", "titles", "instrument": { "identifier"(ISIN), "name", "asset_class", "management_company_description" } }] }] } The Markdown output includes: grand total, cost basis, total P/L and return %, breakdown by asset class with %, and per-position detail sorted by value. Args:
Examples:
|
| indexa_get_performanceA | Retrieve the historical performance series for an Indexa account, with optional date filtering and projection data. Performance values are returned in base 100 — a value of 105 at index N means +5% cumulative return since the start of the series. Per Indexa support, returns between two points are computed as: Args:
The Markdown format computes and displays:
Returns: For JSON format, the structure is: { "plan_expected_return": number, // e.g. 0.0384 = +3.84%/year expected "performance": { "period": ["YYYY-MM-DD", ...], // dates "return": [number, ...], // base-100 actual return series "benchmark"?: [number, ...], // base-100 benchmark series "best"?: [number, ...], // best-case projection (if requested) "worst"?: [number, ...], // worst-case projection "expected"?: [number, ...] // expected projection } } Examples:
Error handling:
|
| indexa_get_transactionsA | Retrieve the transaction history for an Indexa account: contributions (aportaciones), withdrawals (retiradas), fund subscriptions and redemptions, dividend reinvestments, fees charged, etc. Use this for questions about money in/out of the account or specific operations on a date. Args:
Returns: For JSON format, an array of transaction objects. The exact shape is not fully published in the Indexa RAML, but transactions typically include: { "date": "YYYY-MM-DD", "amount": number, // EUR; positive = into account "type": string, // e.g. "contribution", "subscription", "redemption", "fee" "description": string, "instrument"?: { "name": string, "identifier": string // ISIN } } Examples:
Error handling:
Note: Date filtering and pagination are applied client-side after the API responds. For very active accounts with many years of history, narrow the date_from / date_to window to keep responses fast and within limits. |
| indexa_get_feesA | Retrieve the management fees charged by Indexa Capital on an account. Indexa bills quarterly, and this endpoint returns one record per quarter, including the asset base used, the net fee, VAT, the effective fee rate, and a link to the invoice PDF. Args:
Returns: For JSON format, an array of fee records: [ { "account_number": string, "date_from": "YYYY-MM-DD", // start of the billing quarter "date_to": "YYYY-MM-DD", // end of the billing quarter "fees": number, // net management fee in EUR "vat": number, // VAT applied in EUR "amount": number, // asset base used "average_fee": number, // effective fee rate (e.g. 1.95 = 1.95 bps avg) "document": { // invoice PDF metadata "showName": string, "show_name": string, "created_at": "YYYY-MM-DD HH:mm:ss" } } ] The Markdown format computes total fees and total VAT for the filtered range. Examples:
Error handling:
|
| indexa_portfolio_summaryA | Convenience tool that returns a one-shot overview of ALL the user's Indexa Capital accounts: total wealth, per-account value, cash, unrealized P/L and cumulative return. Calls /users/me then /portfolio and /performance for each active account in parallel. Use this as the FIRST tool for open-ended questions like "how are my Indexa investments doing?" or "give me an overview of my Indexa". Only use account-specific tools when the user specifies one account or aspect (composition, transactions, fees). Args:
Returns JSON: { "user": { email, name, surname }, "accounts": [{ account_number, type, status, total_value, cash, unrealized_pl, cumulative_return, plan_expected_return, error? }], "totals": { total_value, unrealized_pl, account_count } } |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/dacmail/indexa-capital-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server