我的经纪人
MCP供电的工作助理代理
需求
- Python 3.12
- Node.js(通过npx用于文件系统MCP服务器)
- 注: npx 首次运行时需要网络访问npm注册表。
设置
python3.12 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -r requirements.txt创建 .env 从 .env.example 并填写密钥:
DEEPSEEK_API_KEYTAVILY_API_KEYGROQ_API_KEYOCR_API_URLOCR_API_TOKENFS_ALLOWED_DIR_1(必填)FS_ALLOWED_DIR_2(可选)APP_HOST(可选,默认127.0.0.1)APP_PORT(可选,默认8000)
跑
python -m app.main服务器将在 http://127.0.0.1:8000.
MCP服务器
MCP服务器由应用程序使用以下命令自动启动 mcp_servers.json.
手动启动命令(用于调试):
# Filesystem MCP server (uses allowed dirs)
npx -y @modelcontextprotocol/server-filesystem "$FS_ALLOWED_DIR_1" "$FS_ALLOWED_DIR_2"
# Tavily MCP server (local Python)
.venv/bin/python servers/tavily_mcp_server.py测试(SSE)
# NOTE: Use URL encoding for non-ASCII query strings.
curl -G -N --data-urlencode "message=列出Downloads前10个文件" "http://127.0.0.1:8000/v1/chat/sse"
curl -G -N --data-urlencode "message=用tavily搜索旧金山今天天气" "http://127.0.0.1:8000/v1/chat/sse"分类账(OCR/ASR)
账本管道支持从单个图像或音频输入中提取多条记录。
关键行为:
- OCR使用基于bbox的行分组和强大的列表式账单分割。
- LLM在一次调用中返回一个JSON记录数组。
- 通过批量插入
ledger_upsert_many. - CSV列:
date, merchant, amount, currency, category, payment_method, note, source_image, source_audio, insert_time source_image/source_audio仅存储文件名。insert_time使用当地时间isoformat.- 不应用重复数据删除。
例子:
curl -X POST "http://127.0.0.1:8000/v1/ledger/process" \
-F "file=@/path/to/receipt.jpg"网络检查
如果工具调用失败,请验证网络访问:
# DeepSeek API
curl -I https://api.deepseek.com
# Tavily API
curl -I https://api.tavily.com
# OCR API (replace with your endpoint)
curl -I "$OCR_API_URL"