使用说明
项目简介
本项目 'mcp-server-example-v2' 是一个使用 Python FastAPI 框架构建的 Model Context Protocol (MCP) 服务器的简单示例。它旨在演示 MCP 服务器的核心概念,例如如何根据客户端请求的 Prompt ID 和参数,从预定义的模板中生成上下文信息。
主要功能点
- 健康检查: 提供 '/' 根路径的 GET 请求接口,用于检查服务器的运行状态和协议信息。
- 上下文服务: 提供 '/context' 路径的 POST 请求接口,根据客户端提供的 Prompt ID 和参数,返回渲染后的上下文信息。
- 参数化 Prompt 模板: 支持在 Prompt 模板中使用占位符,并根据客户端请求的参数动态替换。
安装步骤
-
安装依赖: 在项目根目录下打开终端,运行以下命令安装项目所需的 Python 依赖包:
pip install -r requirements.txt -
运行服务器: 在项目根目录下 'src' 文件夹中打开终端,运行以下命令启动 MCP 服务器:
uvicorn src.main:app --reload服务器默认会在本地 '8000' 端口启动。
服务器配置
MCP 客户端需要配置以下信息才能连接到此 MCP 服务器。以下是一个 JSON 格式的配置示例,您可以将其添加到 MCP 客户端的服务器配置中。
{ "serverName": "simple-mcp-server", "command": "uvicorn", "args": [ "src.main:app", "--reload" ], "host": "http://localhost", "port": 8000, "protocol": "http", "endpoints": { "healthCheck": "/", // 健康检查接口路径 "context": "/context" // 获取上下文接口路径 }, "description": "一个简单的 MCP 服务器示例,提供基于 Prompt 模板的上下文服务。" }
配置参数说明:
- 'serverName': 服务器名称,可以自定义。
- 'command': 启动服务器的命令,这里使用 'uvicorn'。
- 'args': 启动命令的参数,包括主应用文件路径 'src.main:app' 和热重载选项 '--reload' (开发环境建议开启)。
- 'host': 服务器主机地址,默认为 'http://localhost'。
- 'port': 服务器端口号,默认为 '8000'。
- 'protocol': 服务器使用的协议,这里是 'http'。
- 'endpoints': 服务器提供的端点信息,包括:
- 'healthCheck': 健康检查接口路径。
- 'context': 获取上下文接口路径。
- 'description': 服务器描述信息,可以自定义。
注意: MCP 客户端需要根据实际情况修改 'host' 和 'port' 等配置信息,确保能够正确连接到 MCP 服务器。
基本使用方法
-
启动服务器: 按照安装步骤中的说明启动 MCP 服务器。
-
发送上下文请求: 使用 HTTP 客户端工具 (如 'curl'、Postman 等) 向服务器的 '/context' 接口发送 POST 请求。请求体应为 JSON 格式,包含 'prompt_id' 和 'parameters' 字段。
示例请求 (使用 curl):
curl -X POST http://localhost:8000/context \ -H "Content-Type: application/json" \ -d '{"prompt_id": "greeting", "parameters": {"time": "12:00 PM"}}'请求参数说明:
- 'prompt_id': Prompt 模板的 ID,例如示例中的 '"greeting"' 或 '"data_analysis"'。
- 'parameters': Prompt 模板中占位符的参数,以键值对形式表示。例如 '{"time": "12:00 PM"}' 用于替换 'greeting' 模板中的 '{time}' 占位符。
-
接收上下文响应: 服务器会返回 JSON 格式的响应,包含 'context' 字段,表示渲染后的上下文信息。
示例响应:
{ "context": "Hello! I am an AI assistant. The current time is 12:00 PM.", "metadata": { "prompt_id": "greeting" } }响应字段说明:
- 'context': 渲染后的上下文信息字符串。
- 'metadata': 可选的元数据,例如 'prompt_id',用于标识请求的 Prompt 模板。
通过以上步骤,MCP 客户端可以向该 MCP 服务器请求上下文信息,并根据返回的上下文与 LLM 进行交互。
信息
分类
开发者工具