Skip to main content
Glama
DebarghaNath

Remote MCP Expense Tracker

by DebarghaNath

๐Ÿ“Š Remote MCP Expense Tracker Server

An autonomous, production-ready Model Context Protocol (MCP) server built with FastMCP and SQLite3. This server exposes local financial ledger capabilitiesโ€”adding, listing, and summarizing expensesโ€”to any LLM client (like Claude or LangChain agents) over a remote network connection via Server-Sent Events (SSE).

๐Ÿš€ Features

Persistent Ledger

Automatically initializes and manages a local expenses.db SQLite instance.

Intelligent Tool Suite

  • add_expense: Records transactions with dates, categories, subcategories, and metadata.

  • list_expense: Queries transactional history between specific date boundaries.

  • summarize: Generates category-wise financial summaries.

Static Resource Routing

Exposes a dedicated expense://categories URI providing JSON schemas of valid budgeting categories.

Remote-Ready Architecture

Switches from traditional Standard I/O (stdio) to a distributed network layer (sse), listening globally on port 8000.

Related MCP server: expense-mcp

๐Ÿ› ๏ธ Tech Stack

Component

Technology

Language

Python 3.11+

Core Framework

FastMCP (Model Context Protocol SDK)

Database

SQLite3 (Embedded)

Transport Layer

SSE (Server-Sent Events) over HTTP

๐Ÿ“ฆ Installation & Setup

This repository uses uv for lightning-fast Python package and environment management.

1. Clone the Repository

git clone https://github.com/DebarghaNath/remote-mcp-server.git
cd remote-mcp-server

2. Install Dependencies

uv sync

Alternatively:

uv add fastmcp

3. Initialize Configuration Files

Ensure you have a categories.json file in the root folder, or let the server automatically generate a default configuration on its first run.

[
  "Food",
  "Utilities",
  "Entertainment",
  "Housing",
  "Transportation"
]

๐Ÿƒโ€โ™‚๏ธ Running the Server

To launch the remote server and open it up to network traffic, run:

uv run main.py

Upon startup, the terminal will indicate that the SSE server is actively listening:

๐Ÿš€ Launching Remote Expense Tracker Server on port 8000...
INFO:     Started server process [PID]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

๐Ÿ”Œ Connecting Your Client

To wire this server into an LLM Agent framework (such as LangChain's MultiServerMCPClient or an Anthropic Claude Desktop setup), configure your client transport block using the network endpoint.

LangChain Client Example (client.py)

SERVERS = {
    "expense_tracker": {
        "transport": "sse",
        "url": "http://<SERVER_IP_ADDRESS>:8000/sse"
    }
}

Claude Desktop Configuration (mcp.json)

{
  "mcpServers": {
    "expense-tracker": {
      "command": "uv",
      "args": [
        "run",
        "python",
        "-m",
        "mcp.client.sse",
        "http://localhost:8000/sse"
      ]
    }
  }
}

๐Ÿ”’ Security Note

WARNING

Becausehost="0.0.0.0" binds the server to all network interfaces, anyone who can reach your machine's IP address on port 8000 can read or write to your expense database.

If exposing this outside a home Wi-Fi network, consider placing it behind a reverse proxy (such as Nginx) or a secure VPN tunnel (such as Tailscale).

๐Ÿ“„ License

This project is open-source and available under the MIT License.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DebarghaNath/remote-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server