Skip to main content

EMS MCP Server

A FastMCP service that exposes Expense Manager data as read-only LLM-callable tools over streamable HTTP. The Bella Chat OrchestratorAgent calls these tools at inference time to answer financial queries.


Tool Reference

ToolParametersDescription
list_accountsLists all spending accounts (id, name).
get_accountaccount_idReturns details for a specific account.
list_periodsLists all budgeting periods.
get_periodperiod_idReturns income limits and envelope targets for a period.
list_spending_entriespage, size, month, year, account_name, sort_by, sort_orderPaginated spending entries across all accounts, filterable by month, year, or account.
list_spending_entries_for_accountaccount_id, page, size, month, year, sort_by, sort_orderPaginated spending entries for a specific account.

Configuration

VariableDefaultDescription
HOST0.0.0.0Server bind address.
PORT8001Server bind port.
EMS_BASE_URLhttp://localhost:8000Endpoint of the Expense Manager Service.

Local Debugging

  1. Install dependencies:

    uv sync
  2. Start the server:

    uv run app/main.py
  3. Launch the MCP Inspector:

    npx @modelcontextprotocol/inspector

    The interactive inspector runs at http://localhost:6274.