费用跟踪器MCP服务器演示
这个MCP(模型上下文协议)服务器允许AI助手(如 克劳德桌面)从本地SQLite数据库访问费用数据,并回答以下问题:
- “我十月份的总支出是多少?”
- “上个月我在食物上花了多少钱?”
- “哪个类别的总支出最高?”
______________________________________________________________________
1.安装依赖项
确保你有 Python 3.13+.
pip install -U poetry && poetry install或通过紫外线
uv sync对于开发,安装额外的依赖项:
uv sync --all-groups2.创建演示费用
生成一个小型SQLite数据库进行测试(3个月的样本费用):
python ./setup/generate_db.py这将创建: expense_tracker/db/expenses.db 样本数据以tbl费用表示。
3.生成演示报告
python ./setup/generate_monthly_expenses_report.py这将创建: expense_tracker/resources/monthely_top_categories.json 报告文件。
4.在本地运行MCP服务器
PYTHONPATH=. uv run --with fastmcp fastmcp run expense_tracker/server.py或者使用带有http传输的main.py模块:
MCP_TRANSPORT=http PYTHONPATH=. uv run expense_tracker/main.py或者使用默认的stdio传输直接从IDE运行main.py文件:
if __name__ == "__main__":
transport = os.getenv("MCP_TRANSPORT", "stdio")
if transport == "http":
mcp.run(transport="http", port=8000)
else:
mcp.run()您应该看到以下日志:
2025-10-12 15:46:13 | INFO | expense_tracker_mcp_server.lifespan:mcp_lifespan:17 - 🚀 Starting up the MCP server...或者在使用http传输时:
[10/25/25 13:06:35] INFO Starting MCP server 'expense_tracker' with transport 'http' on http://127.0.0.1:8000/mcp server.py:1579
INFO: Started server process [26112]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
2025-10-25 13:11:14 | INFO | expense_tracker.lifespan:mcp_lifespan:16 - 🚀 Starting up the MCP server...5.连接克劳德桌面
5.1.配置Claude Desktop以连接到本地MCP服务器:
fastmcp install claude-desktop ./expense_tracker/server.py您应该看到以下日志:
Successfully installed 'server' in Claude Desktop在Windows上,您可以在此处找到生成的claude_desktop_config.json:
C:\Users\myuser\AppData\Roaming\Claude输出示例:
{
"mcpServers": {
"server": {
"command": "uv",
"args": [
"--directory",
"C:\\Users\\oshra\\PycharmProjects\\play-with-mcp",
"run",
"--with",
"fastmcp",
"fastmcp",
"run",
"expense_tracker/server.py"
],
"env": {
"PYTHONPATH": "."
},
"transport": "stdio",
"type": null,
"cwd": null,
"timeout": null,
"description": null,
"icon": null,
"authentication": null
}
}
}或者,如果本地MCP服务器使用Docker镜像,请参阅Dockerfile。 配置文件应该如下所示:
{
"mcpServers": {
"expense_tracker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"expense-tracker-mcp"
]
}
}
}5.2.打开 克劳德桌面. 5.3.首选 设置 > MCP服务器. 5.3.添加新服务器: 5.4.姓名: Expense Tracker 网址: http://localhost:8000/mcp
6.通过NPX连接(快速,无需安装运行)
您可以直接使用以下命令运行官方MCP检查器 npx (这将临时下载并运行Inspector包)。这是打开Inspector UI并从同一命令启动MCP服务器的最快方法。
从项目根目录在终端中运行:
PYTHONPATH=. npx @modelcontextprotocol/inspector uv --directory /c/Users/myuser/PycharmProjects/play-with-mcp run expense_tracker/main.py笔记: 当系统提示“确定继续?(y)”时,键入 y 然后按Enter键
npx将要求下载@modelcontextprotocol/inspector第一次。回答y如果您信任该包,请继续。
您应该看到Inspector UI在默认浏览器中打开,MCP服务器在终端中启动。
$ PYTHONPATH=. npx @modelcontextprotocol/inspector uv --directory /c/Users/myuser/PycharmProjects/play-with-mcp run expense_tracker/main.py
Starting MCP inspector...
⚙️ Proxy server listening on localhost:6277
🔑 Session token: 0bbbc0439b41784d7284ed09aca5a904f19c1dd060dffa0a11c2268f6dc986db
Use this token to authenticate requests or set DANGEROUSLY_OMIT_AUTH=true to disable auth
🚀 MCP Inspector is up and running at:
http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=0bbbc0439b41784d7284ed09aca5a904f19c1dd060dffa0a11c2268f6dc986db
🌐 Opening browser...