使用说明
模块化金融协议(MCP)
用于发票、费用、授权(JWT+neneneba API密钥)的最少FastAPI服务。默认情况下在SQLite上运行(无外部数据库)。通过设置切换到Postgres DATABASE_URL.
快速启动(无需数据库配置)
pip install -r requirements.txt
uvicorn app.main:app --reload
# API at http://127.0.0.1:8000
# Docs at http://127.0.0.1:8000/docs
MCP SSE服务器(用于Syntellio)
该回购现在公开了一个兼容MCP的SSE服务器,因此Syntellio可以调用金融工具。
pip install -r requirements.txt
python -m app.mcp_server
# MCP SSE at http://127.0.0.1:8080/sse
认证:
- 发送
Authorization: Bearer <jwt>或x-api-key: <key>带有工具调用的标题。 - 要禁用本地测试的身份验证,请设置
MCP_AUTH_REQUIRED=false并设置MCP_DEFAULT_OWNER_ID转换为有效的用户id。
Syntellio配置:
- 集
MCP_SERVER_URL到http://<host>:8080/sse. - 如果启用,请确保MCP客户端发送相同的身份验证标头。
- 工具名称用下划线分隔(例如。,
expenses_list,invoices_create).
工具目录(发现)
GET /api/v1/tools 返回可用模块/端点及其输入/输出字段的机器可读列表。
安全说明
- API密钥仅在创建时显示;您可以通过以下方式撤销
DELETE /api/v1/auth/api-keys/{id}. - 内存速率限制:每个API密钥或IP默认120个请求/分钟(配置
RATE_LIMIT_PER_MINUTE). - 对于生产环境:在代理/负载均衡器上强制使用HTTPS,定期轮换密钥,并使用外部速率限制器(Redis)而不是内置内存限制器。
部署到渲染(单击一下)
如果您愿意,可以手动执行以下步骤:
- 将此仓库推送到GitHub。
- 渲染:新Web服务→ 运行时:Python 3→ Build
pip install -r requirements.txt→ Startuvicorn app.main:app --host 0.0.0.0 --port $PORT. - 环境:套
SECRET_KEY(强随机)。离开DATABASE_URL空以使用SQLite,或设置Postgres URL。
环境
DATABASE_URL(默认值sqlite:///./data.db)SECRET_KEY(生产中需要)ALGORITHM(默认HS256)ACCESS_TOKEN_EXPIRE_MINUTES(默认值43200)RATE_LIMIT_PER_MINUTE(默认值120)REDIS_URL(可选;为多实例启用Redis支持的速率限制)REQUIRE_HTTPS(默认为true;为local/dev设置false)
测试
pytest -q
种子演示数据
python seed.py
切换到Postgres
集 DATABASE_URL=postgresql+psycopg2://user:pass@host:5432/db 然后跑 alembic upgrade head 一次。