Expenses Tracker MCP Server
Backend MCP server for the Expenses Tracker app, providing APIs to record, retrieve, and report expenses.
README
Expenses Tracker (MCP Server)
This repository contains the backend for the Expenses Tracker application (MCP server). The README below provides step-by-step instructions for setting up the development environment, running the server, and troubleshooting common issues (including an MCP inspector port conflict which may cause "Dev server failed").
Table of Contents
- Project overview
- Prerequisites
- Installation
- Running the development server
- Running the MCP inspector
- Troubleshooting
- "MCP Inspector PORT IS IN USE" / Dev server failed
- Other common errors
- Contributing
Project overview
A short backend server for the Expenses Tracker app. It provides APIs for recording, retrieving, and reporting expenses used by the client application.
Prerequisites
- Windows (instructions assume PowerShell)
- Python 3.9+ (use the version required by this project)
- A virtual environment tool (venv is recommended)
- Node.js + npm (required by the MCP inspector launcher used by development tooling)
- Git (to clone and manage repository)
Installation (development)
-
Clone the repository:
git clone <repository-url> cd Expenses_tracker_mcpserver
-
Create and activate a Python virtual environment:
python -m venv .venv ..venv\Scripts\Activate.ps1 # PowerShell
-
Install project dependencies (using uv):
uv install
-
(Optional) If the project uses additional frontend or inspector tooling, ensure Node.js packages are available. Typically the inspector launcher is run via npx and does not require a global install.
Running the development server
Start the development server and inspector using the project's dev command. An example (used in this project) is:
uv run fastmcp dev inspector main.py
Note: replace the command above with the project's documented dev command if different. This command will start the MCP server and also launch the inspector (a small Node-based process) that listens on a local port (commonly 6274).
Running the MCP inspector (notes)
The inspector launcher is a Node-based helper that starts alongside the Python dev server. It typically opens a local HTTP endpoint (for example http://localhost:6274) for developer use.
If the inspector fails to start because the port is already in use, the dev server may report:
MCP Inspector PORT IS IN USE at http://localhost:6274 [timestamp] ERROR Dev server failed
Follow the troubleshooting steps below to resolve this.
Troubleshooting
"MCP Inspector PORT IS IN USE" / Dev server failed
Step-by-step resolution (PowerShell):
-
Check which process is listening on the inspector port (replace 6274 with the port shown in your log if different):
Get-NetTCPConnection -LocalPort 6274 -State Listen | Select-Object LocalAddress,LocalPort,OwningProcess,State
If you prefer more readable process info include:
$c = Get-NetTCPConnection -LocalPort 6274 -State Listen -ErrorAction SilentlyContinue if ($c) { Get-Process -Id $c.OwningProcess }
Example output will show a PID and process name (for example
node). -
Inspect the full command line for that process (helps confirm it's the inspector launcher):
Get-CimInstance Win32_Process -Filter "ProcessId=<PID>" | Select-Object ProcessId,CommandLine
Replace <PID> with the OwningProcess value from step 1.
-
If the process is a leftover inspector/dev tool and safe to stop, stop it by PID (preferred to avoid killing unrelated processes by name):
Stop-Process -Id <PID>
Example:
Stop-Process -Id 14536
Notes:
- Stop-Process requires appropriate permissions. If it fails, run PowerShell as Administrator.
- The project-specific logs/command line from step 2 should help confirm it is safe to stop.
-
Restart the dev command after freeing the port:
uv run fastmcp dev inspector main.py
Alternative options if you cannot stop the process:
- Reboot the machine to clear leftover processes.
- Run the inspector on a different port (if the tooling supports an option or environment variable to change the inspector port). Consult the inspector/fastmcp docs for a
--portor similar flag.
Why this happens:
- The Node-based inspector may have been launched previously and not shut down cleanly. The port remains bound and the next attempt to start the inspector fails, which may cause the dev server to abort.
Other common errors
- "ModuleNotFoundError" or missing dependencies: ensure the virtual environment is activated and
pip install -r requirements.txthas completed successfully. - Syntax or runtime errors when starting the server: examine the full traceback printed to the console and fix the first error in the stack — subsequent errors are often caused by the first one.
- Permission errors when binding to ports <1024: avoid using privileged ports for development.
Contributing
- Create feature branches from
mainordevper project conventions. - Run existing tests (if any) before opening PRs.
- Keep changes small and well-documented.
Happy hacking!
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.