MCP-Demo: Model Context Protocol Integration with OpenAI
初步的 C# MCP SDK 客户端-服务器 示例
lomaxc
README
MCP-Demo:模型上下文协议与 OpenAI 集成
这是一个针对 .NET 应用程序的模型上下文协议 (MCP) 的全面演示,展示了如何创建 MCP 客户端和服务器,以及如何将它们与 OpenAI 的 LLM 功能集成。
什么是 MCP?
模型上下文协议 (MCP) 是一个开放协议,它标准化了应用程序如何向大型语言模型 (LLM) 提供上下文。它实现了 LLM 与各种数据源和工具之间的安全集成,从而提供了一种标准化的方式来扩展 LLM 的功能。
此演示展示了:
- 一个公开自定义工具的 MCP 服务器
- 一个可以连接到服务器的 MCP 客户端
- 与 OpenAI 的集成,以便在对话中使用这些工具
解决方案结构
MCP-Demo/
├── MCP.Server/ # 带有自定义工具的 MCP 服务器
├── MCP.Client/ # 用于测试工具的简单客户端
├── MCP.LlmIntegration/ # OpenAI 与 MCP 工具的集成
└── README.md # 此文档
功能
MCP 服务器
公开了几个基于函数的工具:
- Echo: 返回带有输入消息的问候语
- Add: 将两个数值相加
- 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 工具进行交互
使用示例
以下是一些与演示交互的示例:
基本计算
你:42 加 17 等于多少?
AI:我将使用 Add 工具为您计算。
[TOOL_CALL:Add(a=42, b=17)]
正在执行工具:Add
参数:
a: 42
b: 17
工具结果:
59
日期和时间检查
你:现在几点?
AI:让我为您查看当前时间。
[TOOL_CALL:GetDateTime()]
正在执行工具:GetDateTime
参数:
工具结果:
2025年4月4日星期五 下午3:45:21
Echo 测试
你:你能回显短语“MCP 正在工作!”吗?
AI:我将为您回显该短语。
[TOOL_CALL:Echo(message="MCP is working!")]
正在执行工具:Echo
参数:
message: MCP is working!
工具结果:
hello MCP is working!
架构
集成通过以下组件工作:
- MCP 服务器: 使用 ModelContextProtocol.Server 命名空间托管工具实现
- MCP 客户端: 使用 stdio 连接到服务器并提供工具执行功能
- OpenAI 客户端: 使用 OpenAI Chat API 处理对话
- 工具提取: 使用正则表达式从 AI 响应中解析工具调用
- 工具执行: 将工具调用路由到 MCP 服务器并返回结果
扩展项目
添加新工具
要向 MCP 服务器添加新工具,请向 DemoTools 类添加一个新方法:
[McpServerTool, Description("计算一个数的平方")]
public static double Square(double number) => number * number;
该工具将被自动发现并提供给 LLM 使用。
自定义 OpenAI 集成
您可以通过以下方式修改 OpenAI 集成:
- 更改模型(例如,更改为“gpt-3.5-turbo”以降低成本)
- 添加额外的系统指令
- 实施更复杂的对话管理
故障排除
常见问题:
- 服务器未找到: 确保 LLM 集成中的服务器路径正确
- API 密钥问题: 验证您的 OpenAI API 密钥是否在用户机密中正确设置
- 工具执行错误: 检查工具参数是否与 AI 尝试发送的内容匹配
许可证
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
致谢
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。