For personal use No data stored Open source

Talk to your Kuvera portfolio
with AI

An open-source MCP server that connects Claude, ChatGPT, and other AI assistants to your Kuvera mutual fund portfolio โ€” in real time.

Get started โ†’
Claude responding to 'how is my portfolio doing' with fund holdings, current value, and 1-week returns

What can you ask?

Ask your AI assistant anything about your Kuvera portfolio using natural language.

๐Ÿ“Š

Check holdings

List all your mutual fund holdings with units, invested value, and current value.

๐Ÿ“ˆ

Portfolio performance

Get gains, XIRR, and one-day returns across all your portfolios.

๐Ÿ”

Fund details

Look up AUM, expense ratio, NAV, category, and historical returns for any fund.

๐Ÿ”„

Switch portfolio

Switch between your Kuvera portfolios to operate in a different account context.

๐Ÿ”

Validate session

Check whether your Kuvera token is still valid before running other queries.

โš–๏ธ

Equity breakdown

See which companies a fund holds and the proportionate value of your investment.


How it works

๐Ÿ”‘

Get your token

Copy your Kuvera session JWT from the browser console.

โš™๏ธ

Configure your AI

Point your AI client to the MCP server URL.

๐Ÿ’ฌ

Ask anything

Query your portfolio in plain English.


Setup guide

Choose your AI client below and follow the steps.

Public server: This server is hosted at https://null0.exe.xyz โ€” free to use, no authentication required.

Claude Desktop only supports stdio-based MCP servers natively โ€” it cannot connect directly to an HTTP server using a url field. Instead, use mcp-remote: a lightweight npm package that acts as a stdio bridge to the Kuvera MCP HTTP server. You need Node.js / npm installed, but you do not need to install anything separately โ€” npx fetches it automatically.

Open claude_desktop_config.json and add:

{
  "mcpServers": {
    "kuvera": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://null0.exe.xyz/sse"]
    }
  }
}

For self-hosting, replace null0.exe.xyz with your own domain.

If you are running the server locally (e.g. for development):

{
  "mcpServers": {
    "kuvera": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://localhost:8000/sse"]
    }
  }
}

๐Ÿ“ Config file location

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

Restart Claude Desktop after saving the file for changes to take effect.

In Claude.ai, go to Settings โ†’ Integrations โ†’ Add integration and paste the connector URL:

https://null0.exe.xyz/sse

For self-hosting, replace null0.exe.xyz with your own domain.

Once added, open the Connectors popover to confirm kuvera appears with the toggle enabled:

Claude.ai connectors popover showing kuvera listed and enabled

ChatGPT supports MCP servers through its Connectors feature. This is available in ChatGPT Team and Enterprise plans.

Go to Settings โ†’ Connectors โ†’ Add connector and enter:

https://null0.exe.xyz/mcp

Use the /mcp endpoint (Streamable HTTP transport) for ChatGPT compatibility.

This server exposes two MCP transport endpoints:

  • /sse โ€” SSE transport (Server-Sent Events)
    Supported by Claude Desktop and many current MCP clients. GET to establish the stream, POST messages to /sse/messages/.
  • /mcp โ€” Streamable HTTP transport
    Newer standard; fully stateless per request. Supported by clients implementing the latest MCP specification.
https://null0.exe.xyz/sse    # SSE
https://null0.exe.xyz/mcp    # Streamable HTTP

๐Ÿ’ฌ Try asking your AI assistant:

  • "How is my investment doing today?"
  • "Are there any overlaps in the funds that I have invested in?"
  • "What's my XIRR across all portfolios?"
  • "Which stocks am I indirectly exposed to through my mutual funds?"

Getting your Kuvera token

Your Kuvera session token lives in your browser's localStorage after you log in. Here's how to retrieve it:

  1. Log in to kuvera.in in your browser

    Use any browser โ€” Chrome, Firefox, or Edge.

  2. Open the browser DevTools Console

    Press F12 (or Cmd+Option+J on Mac) and click the Console tab.

  3. Paste and run this command

    localStorage.getItem('vue-authenticate.vueauth_token')
    Browser DevTools Console showing the localStorage.getItem command and the returned JWT token
  4. Copy the returned string

    It will look like a long string of three dot-separated segments. That's your JWT token.

  5. Paste it when your AI assistant asks

    The AI will ask for it the first time you use a Kuvera tool. You can validate it with the validateToken tool.

โš ๏ธ Token expiry

The token expires with your browser session. If a tool returns an error, re-fetch the token and paste it again.

๐Ÿ” Security note

This token grants full read and transaction access to your Kuvera account. If you believe it has been compromised, log out of kuvera.in immediately to invalidate it.


Privacy at a glance

Read the full privacy policy โ†’