模型上下文协议集成工具

一个用于.NET应用程序的模型上下文协议(MCP)演示,展示如何创建MCP客户端和服务器,并与OpenAI的LLM能力集成。

  • by lomaxc
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 lomaxc/mcp-demo

使用说明

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这样的代码编辑器

安装

  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工具进行交互

使用示例

以下是一些如何与演示交互的示例:

基本计算

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!

建筑

集成通过以下组件进行:

  1. MCP服务器:使用ModelContextProtocol托管工具实现。服务器命名空间
  2. MCP客户端:使用stdio连接到服务器,并提供工具执行功能
  3. OpenAI客户端:使用OpenAI Chat API处理对话
  4. 工具提取:使用正则表达式从AI响应中解析工具调用
  5. 工具执行:将工具调用路由到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许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢