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: Family Expense MCP

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

  • 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
    Not graded
    quality
    C
    maintenance
    Enables families to manage shared expenses, income, budgets, and financial reports through natural language, with all data stored in PostgreSQL and exposed as MCP tools to compatible LLM clients.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to access a personal finance platform through MCP, allowing users to query active account balances and consolidated totals, and to list or filter financial transactions by account, type, and date range. It connects using a configurable backend API URL and personal access token.
    ISC
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants and other MCP clients to access and manage personal finance data, including transactions, budgets, accounts, categories, tags, recurring items, and cryptocurrency. It provides automated financial insights and comprehensive CRUD operations through LunchMoney's API.
    22 npm
    -