远程费用mcp
MCP(模型上下文协议)服务器 FastMCP 用于在本地SQLite数据库中跟踪个人支出。
Python堆栈使用 紫外线 对于环境和依赖关系。服务器位于单个模块中, main.py.
它暴露了什么
| 种类 | 名称 | 用途 |
|---|---|---|
| 工具 | add_expense | 插入一行(date, amount, category,可选 subcategory, note) |
| 工具 | list_expenses | 包含行 start_date–end_date 范围(YYYY-MM-DD) |
| 工具 | summarize | 日期范围内的每个类别总计和计数;可选的 category 过滤器 |
| 资源 | expense:///categories | JSON类别列表(来自 categories.json 旁边 main.py,或内置默认值) |
日期应为ISO字符串 YYYY-MM-DD 因此范围查询在SQLite中正确排序。
存储
- 数据库: SQLite文件
expenses.db在系统临时目录下(请参阅日志行Database path: ...当服务器启动时)。这避免了某些环境中的只读文件系统问题。 - 可选文件:
categories.json旁边main.py覆盖资源的默认类别列表;如果缺少,服务器将使用嵌入式默认值。
先决条件
- python 3.13+ (
pyproject.toml套requires-python = ">=3.13") - 紫外线
安装uv
如果你已经有Python了:
pip install uv使用 python -m pip install uv 如果 pip 不在你的 PATH.
Windows(PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"其他安装选项在 官方紫外线安装指南.
macOS和Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh确认 uv 在你的 PATH:
uv --version项目设置
从存储库根目录:
uv sync这将创建或刷新 .venv 并安装 fastmcp 和 aiosqlite 每 pyproject.toml.
可选的virtualenv激活(使用时不需要 uv run):
Windows(PowerShell): .\.venv\Scripts\Activate.ps1\ macOS/Linux: source .venv/bin/activate
验证FastMCP:
uv run fastmcp version运行服务器
如所登记的, main.py 开始一个 超文本传输协议 MCP服务器已打开 所有接口,港口 8000:
uv run python main.py将支持HTTP的MCP客户端指向此传输的FastMCP版本文档的URL(请参阅 FastMCP部署/服务器配置).
如果你的客户期望 标准 (stdin/stdout上的子进程+JSON-RPC),更改 if __name__ == "__main__" 底部的块 main.py 叫 mcp.run() 使用默认传输而不是 transport="http",然后运行相同的命令;配置客户端以启动 uv 和 args 喜欢 ["run", "python", "main.py"] 和 cwd 设置为此repo。
FastMCP检查员/开发人员 (可选;调整标志以匹配您的FastMCP版本):
uv run fastmcp dev inspector main.py --no-reload典型的uv命令
| 任务 | 命令 |
|---|---|
| 安装/刷新deps | uv sync |
| 添加依赖项 | `uv add |
| ` | |
| 添加开发依赖项 | `uv add --dev |
| ` | |
| 检查FastMCP版本 | uv run fastmcp version |
| 运行此服务器(HTTP) | uv run python main.py |
对于生产,请在 pyproject.toml (FastMCP版本控制).
uv的可选Python引脚:
uv python pin 3.13MCP客户端配置(stdio示例)
切换后 main.py 如果需要,可以发送到stdio,示例 克劳德桌面/光标风格 config(修复 cwd 到您的机器):
{
"mcpServers": {
"remote-expense": {
"command": "uv",
"args": ["run", "python", "main.py"],
"cwd": "C:\\githunb\\Claude\\remote-expense-mcp"
}
}
}在macOS或Linux上,设置 cwd 指向此存储库的绝对路径。如果客户端仅支持HTTP/SSE,请使用FastMCP文档中的服务器URL,而不是子流程。
环境变量
没有登记入住 .env.example 然而。如果以后添加API密钥或URL,请使用git保密(请参阅 .gitignore)并在相关时将其记录在此处。
故障排除
看 故障排除.md 对于常见错误(检查器重新加载, uv Windows上的路径、资源JSON、导入顺序)。
许可证
看 许可证.
