使用说明
MCP演示:模型上下文协议与OpenAI的集成
对模型上下文协议(MCP)的全面演示。NET应用程序,展示如何创建MCP客户端和服务器,并将其与OpenAI的LLM功能集成。
什么是MCP?
模型上下文协议(MCP)是一个开放协议,它规范了应用程序如何向大型语言模型(LLM)提供上下文。它实现了LLM和各种数据源和工具之间的安全集成,允许以标准化的方式扩展LLM功能。
此演示展示了:
- 公开自定义工具的MCP服务器
- 可以连接到服务器的MCP客户端
- 与OpenAI集成,在对话中使用这些工具
溶液结构
MCP-Demo/
├── MCP.Server/ # MCP server with custom tools
├── MCP.Client/ # Simple client for testing tools
├── MCP.LlmIntegration/ # OpenAI integration with MCP tools
└── README.md # This documentation
特性
MCP服务器
展示了几个基于功能的工具:
- 回声:返回包含输入消息的问候语
- 添加:将两个数值相加
- GetDateTime:返回当前日期和时间
OpenAI集成
- 使用API密钥连接到OpenAI API
- 维护对话上下文
- 从AI响应中提取工具调用
- 通过MCP服务器执行工具
- 将工具结果返回给用户
入门指南
先决条件
- .NET 9.0 SDK
- OpenAI API密钥
- 像Visual Studio、VS code或JetBrains Rider这样的代码编辑器
安装
-
克隆存储库
git clone https://your-repository-url/MCP-Demo.git cd MCP-Demo -
构建解决方案
dotnet build -
设置OpenAI API密钥
cd MCP.LlmIntegration dotnet user-secrets set "OpenAI:ApiKey" "your-api-key-here"
运行演示
-
运行LLM集成应用程序
cd MCP.LlmIntegration dotnet run -
该应用程序将:
- 自动启动MCP服务器
- 连接到OpenAI API
- 展示交互式聊天界面
- 允许您通过OpenAI与MCP工具进行交互
使用示例
以下是一些如何与演示交互的示例:
基本计算
You: What is 42 plus 17?
AI: I'll calculate that for you using the Add tool.
[TOOL_CALL:Add(a=42, b=17)]
Executing tool: Add
Arguments:
a: 42
b: 17
Tool Result:
59
日期和时间检查
You: What time is it right now?
AI: Let me check the current time for you.
[TOOL_CALL:GetDateTime()]
Executing tool: GetDateTime
Arguments:
Tool Result:
Friday, April 4, 2025 3:45:21 PM
回声测试
You: Can you echo back the phrase "MCP is working!"
AI: I'll echo that phrase for you.
[TOOL_CALL:Echo(message="MCP is working!")]
Executing tool: Echo
Arguments:
message: MCP is working!
Tool Result:
hello MCP is working!
建筑
集成通过以下组件进行:
- MCP服务器:使用ModelContextProtocol托管工具实现。服务器命名空间
- MCP客户端:使用stdio连接到服务器,并提供工具执行功能
- OpenAI客户端:使用OpenAI Chat API处理对话
- 工具提取:使用正则表达式从AI响应中解析工具调用
- 工具执行:将工具调用路由到MCP服务器并返回结果
扩展项目
添加新工具
要向MCP服务器添加新工具,请向DemoTools类添加新方法:
[McpServerTool, Description("Calculates the square of a number")]
public static double Square(double number) => number * number;
该工具将被自动发现并提供给LLM。
自定义OpenAI集成
您可以通过以下方式修改OpenAI集成:
- 更改型号(例如,为了降低成本,改为“gpt-3.5-turbo”)
- 添加其他系统说明
- 实施更复杂的对话管理
故障排除
常见问题:
- 找不到服务器:确保LLM集成中的服务器路径正确
- API关键问题:验证您的OpenAI API密钥是否在用户机密中正确设置
- 工具执行错误:检查工具参数是否与AI试图发送的信息相匹配
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。