使用说明
MCP数据库演示(FastAPI+SQLite)
一个演示AI客户端如何发送结构化数据的最小演示 行动 到a 类似MCP的服务器 它使用护栏(RBAC、参数绑定和审计日志)安全地查询/更新数据库。
文件
requirements.txt–Python depsdb_init.py–创造和播种demo.dbapp.py–FastAPI服务器暴露3个操作client.py–调用动作的简单脚本demo.db–由创建db_init.py
快速开始
# 1) Create a virtual environment (optional but recommended)
python3 -m venv .venv && source .venv/bin/activate
# 2) Install dependencies
pip install -r requirements.txt
# 3) Initialize the database
python db_init.py
# 4) Start the server
uvicorn app:app --reload --port 8000
在另一个终端中,使用客户端进行测试:
python client.py
或使用 curl:
# Health
curl -s http://127.0.0.1:8000/healthz | jq
# Read (top customers)
curl -s -X POST http://127.0.0.1:8000/actions/get_top_customers -H "X-API-Key: reader-key-123" -H "Content-Type: application/json" -d '{"limit":5}' | jq
# Paginated read
curl -s -X POST http://127.0.0.1:8000/actions/find_orders -H "X-API-Key: reader-key-123" -H "Content-Type: application/json" -d '{"customer_id":3,"limit":3}' | jq
# Next page (cursor=3)
curl -s -X POST http://127.0.0.1:8000/actions/find_orders -H "X-API-Key: reader-key-123" -H "Content-Type: application/json" -d '{"customer_id":3,"limit":3,"cursor":3}' | jq
# Dry-run write
curl -s -X POST http://127.0.0.1:8000/actions/update_customer_tier -H "X-API-Key: writer-key-456" -H "Content-Type: application/json" -d '{"customer_id":3,"tier":"gold","dry_run":true}' | jq
# Commit write
curl -s -X POST http://127.0.0.1:8000/actions/update_customer_tier -H "X-API-Key: writer-key-456" -H "Content-Type: application/json" -d '{"customer_id":3,"tier":"gold","dry_run":false}' | jq
RBAC密钥
- 读者:
X-API-Key: reader-key-123 - 作者:
X-API-Key: writer-key-456
备注
- 所有SQL用法 参数绑定 (无字符串连接)。
- 服务器写入 审计日志 进入
audit_log每个动作的桌子。 find_orders显示 基于光标的分页 通过偏移令牌。- 这是一个用于演示目的的最小MCP类模式;在真实的MCP服务器中,您还可以发布 能力 并遵循正式的协议框架。