Skip to main content
Glama
Corpus MCP Server

Corpus MCP Server

Corpus MCP Server

A Model Context Protocol (MCP) server for the Corpus Tracker application. This server allows AI assistants (like Claude) to securely interact with your financial portfolio, enabling them to fetch holdings, analyze net worth, and manage transactions.

Features

  • Portfolio Analytics: Fetch net worth, asset allocation, and top holdings.

  • Asset Management: List, add, and remove Gold and Stock holdings.

  • Finance Tracking: Log income and expenses, view transaction history, and analyze cash flow.

  • Secure Authentication: Uses API Key authentication to communicate with your Corpus Tracker backend.

Related MCP server: Wealthfolio MCP Server

Available Tools

Profile & Management

  • get_my_profile: Get the current user's profile and settings.

  • list_corpora: List all corpora (profiles) the user belongs to.

Analytics

  • get_portfolio_summary: Get aggregated net worth, asset breakdown, and liabilities.

  • get_top_holdings(limit): Get top holdings by value.

  • get_portfolio_history: Get portfolio history.

Gold Holdings

  • list_gold_holdings: List all gold holdings.

  • add_gold_holding(weight_grams, purchase_price, purchase_date): Add a new gold holding.

  • delete_gold_holding(holding_id): Delete a gold holding by ID.

  • live_gold_price(): Get live gold price.

  • history_of_gold_price(limit): Get history of gold price.

Stock Holdings

  • list_stock_holdings: List all stock holdings.

  • add_stock_holding(symbol, quantity, avg_price): Add a new stock holding.

  • update_stock_holding(holding_id, symbol, quantity, avg_price): Update an existing stock holding.

  • delete_stock_holding(holding_id): Delete a stock holding by ID.

  • live_stock_price(symbol): Get live stock price.

  • history_of_stock_price(symbol, limit): Get history of stock price.

Financial Transactions

  • list_transactions(start_date, end_date, category, type, limit): List transactions with filters.

  • add_transaction(type, amount, category, description, date): Add a new income or expense transaction.

  • delete_transaction(txn_id): Delete a transaction by ID.

  • get_cashflow_trend(days): Get income vs expense trend for the last N days.

Stock Transactions

  • search_stock_symbol(query): Search for stock symbols.

  • add_stock_transaction(symbol, holding_id, transaction_type, quantity, price_per_share, transaction_date, notes): Add a new stock transaction.

Mutual Fund Holdings

  • list_mutual_fund_holdings: List all mutual fund holdings.

Emergency Fund Management

  • list_emergency_fund_holdings: List all emergency fund holdings.

  • add_emergency_fund_contribution(amount, date, source, notes): Add a new emergency fund contribution.

Installation

pip install corpus-mcp

Configuration

The server requires two environment variables to connect to your backend:

  • API_URL: The URL of your Corpus Tracker backend API (e.g., https://my-corpus.vercel.app/api/v1).

  • API_KEY: Your personal API Key generated from the Corpus Tracker settings.

Usage

Running Standalone

You can run the server directly:

# Set environment variables
export API_URL="https://my-corpus.vercel.app/api/v1"
export API_KEY="sk_..."

# Run the server
corpus-mcp

Using with Claude Desktop

Add the following configuration to your claude_desktop_config.json:

{
  "mcpServers": {
    "corpus-tracker": {
      "command": "uvx",
      "args": [
        "corpus-mcp"
      ],
      "env": {
        "API_URL": "https://my-corpus.vercel.app/api/v1",
        "API_KEY": "your_api_key_here"
      }
    }
  }
}

Development

To install dependencies and run locally:

# Install dependencies
pip install .

# Run dev server
corpus-mcp

License

MIT

Available Tools

24 tools
add_emergency_fund_contributionC

Add a new emergency fund contribution.

Inputs: amount (required), date (required), source (required), notes (required). Returns: result

add_gold_holdingC

Add a new gold holding. purchase_date: YYYY-MM-DD format

Inputs: weight_grams (required), purchase_price (required), purchase_date (required). Returns: result

add_stock_holdingC

Add a new stock holding. symbol: Stock Symbol (e.g. RELIANCE.NS)

Inputs: symbol (required), quantity (required), avg_price (required). Returns: result

add_stock_transactionC

Add a new transaction to a stock holdind transaction_type: BUY or SELL

Inputs: symbol (required), holding_id (required), transaction_type (required), quantity (required), +3 more. Returns: result

add_transactionB

Add a new income or expense transaction. type: "income" or "expense" category: get user category from get_categories tool

Inputs: type (required), amount (required), category (required), description, +1 more. Returns: result

delete_gold_holdingC

Delete a gold holding by ID.

Inputs: holding_id (required). Returns: result

delete_stock_holdingC

Delete a stock holding by ID.

Inputs: holding_id (required). Returns: result

delete_transactionC

Delete a transaction by ID.

Inputs: txn_id (required). Returns: result

get_cashflow_trendB

Get income vs expense trend for the last N days.

Inputs: days. Returns: result

get_categoriesB

Get user budget categories.

Inputs: no named parameters. Returns: result

get_my_profileB

Get the current user's profile and settings.

Inputs: no named parameters. Returns: result

get_portfolio_historyC

Get portfolio history.

Inputs: no named parameters. Returns: result

get_portfolio_summaryA

Get aggregated net worth, asset breakdown, and liabilities.

Inputs: no named parameters. Returns: result

get_top_holdingsC

Get top holdings by value.

Inputs: limit. Returns: result

history_of_gold_priceD

Get history of gold price.

Inputs: limit. Returns: result

list_corporaB

List all corpora (profiles) the user belongs to.

Inputs: no named parameters. Returns: result

list_emergency_fund_holdingsA

List all emergency fund holdings.

Inputs: no named parameters. Returns: result

list_gold_holdingsB

List all gold holdings.

Inputs: no named parameters. Returns: result

list_mutual_fund_holdingsB

List all mutual fund holdings.

Inputs: no named parameters. Returns: result

list_stock_holdingsB

List all stock holdings.

Inputs: no named parameters. Returns: result

list_transactionsC

List transactions with filters. Dates in YYYY-MM-DD. Type: 'income', 'expense', or 'all'.

Inputs: start_date, end_date, category, type, +1 more. Returns: result

live_gold_priceB

Get live gold price.

Inputs: no named parameters. Returns: result

search_stock_symbolC

Get history of stock price.

Inputs: query (required). Returns: result

update_stock_holdingC

Update an existing stock holding.

Inputs: holding_id (required), symbol (required), quantity (required), avg_price (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.8/5.0

    Scored across 24 tools

    Disambiguation4/5

    Most tools have distinct purposes, but some overlap exists: 'add_stock_transaction' and 'add_transaction' could be confused as both handle transactions, and 'search_stock_symbol' (which gets stock price history) overlaps with 'add_stock_holding' (which involves stock data). Descriptions help clarify, but minor ambiguity remains.

    Naming Consistency5/5

    Tool names follow a highly consistent verb_noun pattern throughout, such as 'add_emergency_fund_contribution', 'list_gold_holdings', 'get_cashflow_trend', and 'delete_transaction'. There are no deviations in style or convention, making the set predictable and readable.

    Tool Count3/5

    With 24 tools, the count is borderline heavy for a personal finance server, as it may overwhelm agents with many similar listing and adding operations. While comprehensive, it could be streamlined without losing functionality, placing it in the upper range of typical scopes.

    Completeness4/5

    The server provides strong coverage for personal finance management, including CRUD operations for holdings and transactions, analytics like cashflow trends, and portfolio summaries. Minor gaps exist, such as no update tools for emergency funds or mutual funds, but agents can work around these with available tools.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables personal financial management through AI assistants by providing tools to add transactions, check balances, list transaction history, and generate monthly summaries. Supports natural language interaction for tracking income and expenses with categorization.
      1
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables AI-powered portfolio analysis for Wealthfolio, allowing Claude to query and analyze investment holdings, asset allocation, real estate properties, and execute transactions through natural language.
      1
      -
    • A
      license
      B
      quality
      D
      maintenance
      Integrates with Rotki portfolio tracker to provide portfolio overview, prices, transaction history, and analytics through intuitive tools for AI assistants.
      7
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables AI agents to manage and analyze personal investment portfolios, including fund and stock holdings, net value tracking, XIRR calculations, penetration analysis, and backtesting.
      Apache 2.0