MCP-Demo: Model Context Protocol Integration with OpenAI

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

安装

  1. 克隆存储库

    git clone https://your-repository-url/MCP-Demo.git
    cd MCP-Demo
    
  2. 构建解决方案

    dotnet build
    
  3. 设置您的 OpenAI API 密钥

    cd MCP.LlmIntegration
    dotnet user-secrets set "OpenAI:ApiKey" "your-api-key-here"
    

运行演示

  1. 运行 LLM 集成应用程序

    cd MCP.LlmIntegration
    dotnet run
    
  2. 应用程序将:

    • 自动启动 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!

架构

集成通过以下组件工作:

  1. MCP 服务器: 使用 ModelContextProtocol.Server 命名空间托管工具实现
  2. MCP 客户端: 使用 stdio 连接到服务器并提供工具执行功能
  3. OpenAI 客户端: 使用 OpenAI Chat API 处理对话
  4. 工具提取: 使用正则表达式从 AI 响应中解析工具调用
  5. 工具执行: 将工具调用路由到 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

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

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

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript