MCP 后端服务示例:资源与工具协同服务器
使用说明(Markdown 格式)
-
项目简介 本仓库展示一个基于 MCP 的后端服务器实现示例,包含对资源的持久化管理、可由LLM调用的工具,以及可渲染的提示模板。通过装载插件化的工具和提示,服务器能够与客户端进行标准的 JSON-RPC 交互,并提供会话管理与能力声明等基本能力。
-
主要功能点
- 资源管理:使用本地 SQLite 数据库(loja.db)存储和查询商品信息与库存,提供读取和更新的工具函数
- 工具执行:实现用于查询库存、登记销售等同步工具,以及用于获取天气的异步工具调用
- 提示模板:定义可直接使用的提示模板,适配销售情景
- API 集成:通过外部天气 API 获取城市天气信息,作为交互的一部分
- MCP 服务器框架:通过 mcp.server.FastMCP 提供工具、提示注册以及服务器生命周期管理
- 跨环境运行支持:示例配置可在 Windows+WSL 环境中运行,利用 wsl.exe 作为子进程启动后端服务
-
安装步骤
- 安装 Python 3.10 及以上版本
- 在项目目录创建并激活虚拟环境
- 安装依赖(示例依赖包含用于 MCP 的库和 http 请求库)
- 运行数据库初始化脚本,首次执行会生成 loja.db 并填充初始数据
- 启动 MCP 服务器脚本(示例采用 Python 直接运行的方式)
-
服务器配置(给 MCP 客户端的配置示例,JSON 格式,不作为代码块呈现) { "server_name": "Assistente Geral (Loja + Clima)", "command": "wsl.exe", "args": [ "/home/SEU_USUARIO/Estudos/mcp_learning/.venv/bin/python", "/home/SEU_USUARIO/Estudos/mcp_learning/super_server.py" ] } 注释:以上 server_name 与路径为仓库示例中的取值,请将 SEU_USUARIO 替换为实际的 Linux 用户名以及实际路径。MCP 客户端只需要知道 server_name、command 与 args,用于启动并连接到 MCP 服务器进程。具体的服务器名称应与实际启动的脚本中初始化的名称保持一致。
-
基本使用方法
- 启动 MCP 服务器(在与客户端相同网络与权限下运行)
- 通过客户端发起请求,使用工具读取库存、提交销售、查询天气等功能
- 通过提示模板影响对话风格和任务分配
-
重要注意
- 本示例包含对本地数据库的直接读写,请确保在生产环境中对数据库访问进行合适的权限和错误处理
- 外部 API 请求可能需要网络访问,请确保环境具备对 geocoding 和天气 API 的连通性