MCP-POC
使用简单API的MCP(模型上下文协议)服务器的概念证明。
项目结构
该项目分为三个主要部分:
1.API(/api)
使用FastAPI实现的简单REST API为项目管理提供端点。
- 自动Swagger文档
- 5个RESTful端点
- 内存数据库
2.MCP服务器(/mcp)
使用API并公开工具和资源的MCP服务器的实现。
- 标准MCP服务器(stdio)
- 可视化web界面 测试服务器(类似于Swagger)
3.代理人(/agent)
演示如何正确使用MCP服务器的代理 ChatGPT这是MCP的真正用途:一个使用LLM解释自然语言并自动决定使用哪个MCP工具的代理。
4.油墨MCP服务器(/mcp-ink)
Ink API的MCP服务器,具有73+个工具,涵盖所有飞行操作终点。
快速开始
1.设置并运行API
cd api
pip install -r requirements.txt
python main.pyAPI将于 http://localhost:8000
- Swagger用户界面:http://localhost:8000/docs
- 重新记录:http://localhost:8000/redoc
2.设置并运行MCP服务器
在新终端中:
cd mcp
pip install -r requirements.txt
python mcp_server.py您将看到一条消息,指示服务器正在运行并准备就绪。
MCP服务器的Web界面
要使用可视化web界面(类似于Swagger)测试MCP服务器:
cd mcp
python web_ui.py然后打开浏览器: http://localhost:8001
web界面允许您:
- 查看所有可用工具
- 查看所有可用资源
- 使用参数执行工具
- 阅读资源
- 以JSON格式查看结果
备注:确保API运行在 http://localhost:8000 在使用web界面之前。
3.将MCP代理与ChatGPT一起使用(正确使用)
代理演示如何正确使用MCP: ChatGPT自动决定使用哪个工具 基于用户的自然语言。
初始设置:
- 配置您的OpenAI API密钥:
cd agent
cp env.example .env
# Edit .env and add your OPENAI_API_KEY
# Get your API key at: https://platform.openai.com/api-keys- 安装依赖项:
pip install -r requirements.txt交互模式:
python main.py你可以自然地说话:
- “有哪些可用项目?”
- “显示ID为1的项目”
- “创建一个名为笔记本电脑的新项目,价格为1200”
- “删除第5项”
LLM会自动决定使用哪个工具。
演示模式:
python main.py demo流线型UI(推荐):
streamlit run app.py代理人允许:
- ✅ ChatGPT决定使用哪个工具 -无需特定命令
- ✅ 自然对话 -像和别人说话一样说话
- ✅ 函数调用 -使用OpenAI函数调用来执行MCP工具
- ✅ 对话历史 -在会话期间保持上下文
- ✅ 自动连接到MCP服务器
- ✅ 使用所有可用的工具和资源
备注:确保API运行在 http://localhost:8000 在使用该试剂之前。
4.油墨MCP服务器
Ink MCP服务器提供对所有Ink API端点的访问。看 /mcp-ink/README.md 了解详情。
API终点
GET /-API信息GET /items-获取所有项目GET /items/{id}-按ID获取项目POST /items-创建新项目PUT /items/{id}-更新项目DELETE /items/{id}-删除项目
可用的MCP工具
- 获取项目 -从API获取所有项目
- 获取项目 -按ID获取特定项
- 创建项目 -创建新项目
- update_item -更新现有项目
- 删除项目 -删除项目
可用MCP资源
api://items-JSON格式的所有项目列表
与Claude Desktop集成
要将此MCP服务器与Claude Desktop一起使用,请将以下配置添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mcp-api-client": {
"command": "python",
"args": ["/full/path/to/mcppoc/mcp/mcp_server.py"]
}
}
}需求
- Python 3.8+
- 点
备注
- API使用内存中的数据库,因此数据在重新启动时丢失
- MCP服务器配置为连接到
http://localhost:8000默认情况下
