MCP API 示例 - 图书目录
教学应用程序,演示如何通过重复使用相同的服务层来演变一个常见的堆栈(FastAPI + SQLAlchemy + React)以包含一个MCP服务器。存储库是为了引导学习而存在的:您可以上传传统的 REST API 和前端,并在同一后端上启用 MCP Server,将相同的分类账操作暴露给代理。
重要\ 此工程不包含身份验证、 TLS、 速率限制或任何其他硬化控制 。仅在本地/学习环境中骑行。要进行生产,请按照 docs/checklist-segulara.md.
这个项目是为了谁?
- 想要在其架构中已经包含 MCP 的应用程序的教学示例的开发人员。
- 教师需要简单的课堂/演示材料。
- 谁想要学习如何扩展MCP与新的工具/路径。
堆栈和教学重点
- 后端REST:FastAPI、SQLAlchemy、SQLite。
- MCP服务器FastMCP 展示与 FastMCP 相关的工具
book_service. - 前端:React+Vite+Axios。
- 独特的商业雷格拉:
backend/services/book_service.py集中验证和 REST 和 MCP 消耗的 CRUD 流。
高层建筑
Frontend (React) --> FastAPI /api/books --> book_service --> SQLAlchemy/SQLite
Cliente MCP --> FastMCP Server --> book_service --> SQLAlchemy/SQLite细节在 docs/建筑.md (美国 docs/Diagrama.png).
如何快速学习
- 莱亚 docs/visao-geral.md 了解目标和层次。
- 查看 docs/backend.md 查找路线,计划和服务。
- Estude docs/mcp_server.md显示 MCP 服务器如何生成和使用相同的服务。
- 跟随旋转工程 docs/配置和执行.md.
- 浏览前端(在下面描述的文件) docs/frontend.md与MCP流相比较。
如何运行(摘要)
- 配置相应的 Python 环境( conda、 venv 或 uv) docs/配置和执行.md.
- 激活环境并安装
pip install -r requirements.txt. - 上传 REST 后端:
python run_api.py(oustart_backend.bat/./start_backend.sh). - 上传前端 :
cd frontend
npm install
npm run dev # ou start_frontend.bat / ./start_frontend.sh- 罗德岛MCP服务器:
python run_mcp_server.py(oustart_mcp_server.bat/./start_mcp_server.sh;porta 8765,传输可流式传输的http)。
快速参考
| 区域 | 关键文件 |
|---|---|
| API REST | backend/api/main.py, backend/api/endpoints.py, backend/api/schemas.py |
| Servicos | backend/services/book_service.py |
| 坚持 | backend/database/models.py, backend/database/crud.py, backend/database/connection.py |
| MCP | backend/mcp/server.py, backend/mcp/mcp_tools.py, backend/mcp/config_mcp.json |
| 前端 | frontend/src/pages/BooksPage.tsx, frontend/src/components/*, frontend/src/api/* |
细节在 docs/backend.md, docs/mcp_server.md e docs/frontend.md.
API HTTP最小值
终点哭泣 http://localhost:8000/api:
GET /books?limit=100&offset=0— 图书列表(按创作顺序排序)。GET /books/search?query=texto按标题/作者/出版商搜索。GET /books/{id}细节。POST /books身体(body)BookCreate).PUT /books/{id}全面更新。PATCH /books/{id}部分更新。DELETE /books/{id}--移除。
完整的文档 + 示例 docs/api-http.md.
安全与生产
此代码是故意开放的,以方便研究。要将任何部分带入现实世界,您必须:
- Proteger com HTTPS (API REST,前端,MCP服务器)通过代理/网关com TLS。
- 添加身份验证 根据公司政策(OAuth2/OIDC,API Gateway等)。
- 应用速率限制/WAF 和 CORS 限制.
- 将秘密/密钥移动到 Key Vaults (Azure密钥库、AWS密钥管理器、HashiCorp密钥库)。
- 启用日志/审计和可观察性.
- 计划银行备份/加密.
详情和清单: docs/checklist-segulara.md.
建议的下一步
- 在路由和 MCP 服务器上添加身份验证/授权。
- 创建自动化测试(Pytest用于后端,React测试库用于前端)。
- 在前端中包含更丰富的分页/用户体验。
- 进化
book_service查看新的字段或规则,并观察 REST 和 MCP 如何共同受益。
浏览文档
好研究!任何疑问打开一个问题或调整这里描述的计划。
______________________________________________________________________
作者 : Jonatas Vieira Coutinho jonatasvieiracoutinho@gmail.com
