Skip to main content
Glama
yazkyChristianNicolas

personal-finance-mcp-server

personal-finance-mcp-server

Remote MCP server for personal-finance-service: exposes its business operations (groups, payment methods, expenses) as MCP tools, authenticated with Keycloak. Intended to be used from Kiro/Claude (interactive login) or from a headless agent in the cloud (M2M login).

Requirements

  • Docker + Docker Compose

  • personal-finance-service running (docker compose up -d in that repo) — this server connects to its Keycloak and its API, it does not start them itself.

Related MCP server: MCP Agent - AI Expense Tracker

How to run it

cp .env.example .env
# completar KEYCLOAK_CLIENT_SECRET con el secret de mcp-personal-finance-server
# (ver "Setup de Keycloak" en AGENTS.md si todavía no existen los clients)
docker compose up -d --build
  • GET http://localhost:8000/health

  • POST http://localhost:8000/mcp — requires Authorization: Bearer <jwt>

MCP configuration in Kiro

{
  "mcpServers": {
    "personal-finance-remote": {
      "url": "http://localhost:8000/mcp",
      "oauth": {
        "clientId": "mcp-personal-finance-client",
        "scopes": []
      }
    }
  }
}

On first use, Kiro opens the browser for the login against Keycloak — use the same username/password you already use in personal-finance-service.

Available tools

Tool

What it does

search_groups

Lists the user's groups

create_group

Creates a group

search_group_members

Lists the members of a group

search_payment_methods

Lists the user's payment methods

create_payment_method

Creates a payment method

patch_payment_method

Modifies a payment method

delete_payment_method

Deletes a payment method

search_expenses

Lists expenses, with filters

create_expense

Records an expense (optionally in installments and/or split)

close_expense_cycle

Generates the next installment for a card's installment expenses

get_expense

Full detail of an expense

patch_expense

Modifies an expense

delete_expense

Deletes an expense

The management of personal-finance-service API Keys (create/list/delete) is deliberately not exposed as tools — see AGENTS.md.

Headless agent (M2M)

For an agent with no human user behind it (it cannot do the interactive login), use Client Credentials Grant instead of the Kiro flow:

curl -X POST http://localhost:8080/realms/personal-finance/protocol/openid-connect/token \
  -d "grant_type=client_credentials&client_id=mcp-personal-finance-agent&client_secret=$AGENT_CLIENT_SECRET" \
  | jq -r .access_token

Use that access_token as Bearer against POST /mcp. The agent also needs UPSTREAM_API_KEY configured in its environment — a Personal Finance API Key generated beforehand by a real user (POST /api-keys in personal-finance-service), since its token does not represent any real user of that API.

More detail

See AGENTS.md — design decisions, known gaps, and why the auth passthrough works (and when it would stop working).

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI tools to interact with Firefly III personal finance management instances through a cloud-deployed MCP server. Supports financial operations like account management, transactions, budgeting, and reporting with configurable tool presets.
    6 npm
    -
  • A
    license
    B
    quality
    B
    maintenance
    Enables agent-friendly access to Monarch Money finances, including accounts, transactions, budgets, cash flow, and mutations through structured MCP tools.
    33
    MIT
  • F
    license
    C
    quality
    C
    maintenance
    Enables users to add expenses, retrieve expenses by date range, and get spending summaries by category through MCP tools.
    4
    -