MCP服务器OpenAI兼容端点工具

一个简单的C#应用程序,演示如何使用MCP服务器与OpenAI兼容端点,使AI助手能够与工具交互。

  • by dranger003
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 dranger003/mcptools

使用说明

使用具有OpenAI兼容端点的MCP服务器(即Ollama)

一个简单的C#应用程序,使用具有OpenAI兼容端点的MCP服务器进行演示,使AI助手能够与工具进行交互。

> list all the files in /tmp/
[TOOLCALL_START] list_directory
[TOOLCALL_END] list_directory (52ms)
  [ARGS] {"path":"/tmp/"}
  [RESULT] {"content":[{"type":"text","text":"[FILE] adventures_of_a_clumsy_clown.txt\n[FILE] bananas_gone_wild...
Here is a list of the files in the `/tmp/` directory:

1. adventures_of_a_clumsy_clown.txt
2. bananas_gone_wild.txt
3. bigfoot_s_baby_photos.txt
4. dancing_p_Enguins_in_disneyland.txt
5. life_according_to_potato.txt
6. mysterious_case_of_the_missing_cupcake.txt
7. stupendous_squirrel_antics.txt
8. TEST.txt
9. the_grumpy_cow_diaries.txt
10. the_little_taco_that_could.txt
11. the_mysterious_case_of_the_missing_socks.txt
>

快速概览

演示如何:

  • 连接到MCP服务器(特别是官方MCP服务器文件系统)
  • 与OpenAI兼容的API集成(通过Ollama为本地模型配置)
  • 通过函数调用使语言模型能够使用MCP工具
  • 创建具有流式响应的交互式聊天界面

先决条件

  • .NET 8.0或更高版本
  • Node.js和npm/npx(用于运行MCP服务器)
  • Ollama(或另一个与OpenAI兼容的API端点)
  • 兼容的语言模型(例如。, Mistral-Small-3.2-24B-Instruct-2506)

依赖项

此项目使用以下NuGet包:

  • Microsoft.Extensions.AI -用于AI抽象和聊天客户端功能
  • ModelContextProtocol.Client -用于MCP客户端实现
  • OpenAI -对于OpenAI API兼容性

配置

应用程序已预先配置为:

  1. 通过npx运行MCP文件系统服务器(相应地调整Node.js路径)
  2. 在上连接到本地兼容OpenAI的API http://127.0.0.1:11434/v1/ (即默认Ollama端点)
  3. 使用 mistral-small3.2:24b-instruct-2506-q4_K_M Ollama注册表中的模型

定制

要修改配置,请执行以下操作:

MCP服务器:更改服务器类型或参数 McpClientFactory.CreateAsync 更新以下内容(您可以在以下网址找到参考服务器https://github.com/modelcontextprotocol/servers?tab=readme-ov文件#-参考服务器):

Command = @"npx",
Arguments = ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],

API端点:更新OpenAI客户端配置:

Endpoint = new("http://127.0.0.1:11434/v1/")

模型:在中更改模型名称 GetChatClient 如下所示(您可以在以下网址查看Ollama模型支持工具https://ollama.com/search?c=tools)

.GetChatClient("your-model-name")

用法

  1. 克隆存储库:

    git clone https://github.com/dranger003/McpTools.git
    cd McpTools
    
  2. 确保Ollama使用您想要的型号运行:

    ollama run mistral-small3.2:24b-instruct-2506-q4_K_M
    
  3. 运行应用程序:

    dotnet run
    
  4. 与聊天界面交互:

    > List the files in /tmp
    [AI responds with file listing]
    > Read the contents of example.txt
    [AI reads and displays file contents]
    
  5. 按 <Enter> 在空行上退出控制台应用程序。

运作原理

  1. MCP连接:应用程序生成一个MCP文件系统服务器作为子进程,提供对文件系统操作的访问。

  2. 工具注册:可用的MCP工具会自动被发现并在聊天客户端注册。

  3. 函数调用:当AI需要执行文件操作时,它使用函数调用来调用相应的MCP工具。

  4. 流媒体响应:聊天界面实时流式传输响应,以获得更好的用户体验。

平台说明

当前配置包括Node.js的Windows特定路径。如果在Linux或macOS上运行,您可能需要调整PATH配置。