OpenMcp
  ](https://hub.docker.com/u/openmcpserver) 
OpenMcp 是一个开源的企业级实现 模型上下文协议(MCP)它提供Docker化的MCP服务器和高性能。NET客户端SDK,可轻松将AI代理(如语义内核)连接到您的数据。
该项目将AI代理的工具与其核心逻辑解耦,允许您将沙盒、安全和独立可扩展的工具作为微服务运行。
特性
- 通用。NET SDK:
OpenMcp.Client可与任何符合MCP的服务器配合使用,并为开发人员提供高级API。 - Docker化服务器: 为PostgreSQL、FileSystem和Web搜索(包括自定义查询、新闻、特定站点和页面获取)预构建的Python服务器。
- 语义内核就绪: 这个。NET客户端被设计为Microsoft语义内核的即插即用插件,可立即为您的代理提供新功能。
- 安全和沙盒: 这些服务器的设计考虑到了安全性,具有只读数据库模式和“监禁”文件系统,以防止未经授权的访问。
- 语言无关: 而SDK是为。NET,Docker化的MCP服务器可以被用任何语言(Python、Go、TypeScript等)编写的客户端使用。
快速开始
根据您的用例,本指南分为两条路径。
______________________________________________________________________
路径A:为。NET开发人员(使用SDK)
如果你正在建造一个。NET应用程序或具有语义内核的AI代理,并希望使用预构建的工具。
步骤1:运行MCP服务器
运行预构建的MCP服务器的最简单方法是使用Docker Compose。您只需要一个文件即可开始。
# 1. Download the Docker Compose file for consumers.
# You can save the raw content from this URL:
https://raw.githubusercontent.com/rahulanand428/OpenMcp/main/docker-compose.hub.yml
# 2. (Optional) Create a .env file in the same directory to customize ports or other settings.
# You can use the .env.example file in this repository as a template.
# 3. Start all servers.
# This command pulls the latest images from Docker Hub and runs them.
docker compose -f docker-compose.hub.yml up -d这将启动您计算机上的PostgreSQL、FileSystem和DuckDuckGo MCP服务器。
投稿人须知: 如果你打算修改Python服务器代码,你应该克隆完整的存储库并使用开发docker-compose.yml文件代替。此文件从本地源代码构建映像,允许您测试更改。 ``bash # For contributors only git clone https://github.com/rahulanand428/OpenMcp.git cd OpenMcp docker compose up --build -d``
步骤2:安装NuGet包
在你的。NET项目,从NuGet安装客户端SDK。
dotnet add package OpenMcp.Client步骤3:在应用程序中使用客户端
现在,您可以实例化客户端并直接使用它们,或者将它们作为插件导入语义内核。
// See the full example in: /samples/dotnet/ConsoleClient/Program.cs
using Microsoft.SemanticKernel;
using OpenMcp.Client.Plugins;
// 1. Setup HttpClient and Logger
var httpClient = new HttpClient();
var logger = /* your ILogger instance */;
// 2. Initialize the MCP Client for a specific server
var ddgClient = new DuckDuckGoMcpClient(httpClient, "http://localhost:8083", logger);
// 3. Import into Semantic Kernel
var kernel = Kernel.CreateBuilder().Build();
kernel.Plugins.AddFromObject(ddgClient, "DuckDuckGo");
// 4. Let the agent use the tool!
var result = await kernel.InvokeAsync("DuckDuckGo", "Search", new()
{
["query"] = "Latest news on .NET 9"
});
Console.WriteLine(result);______________________________________________________________________
路径B:面向Docker和其他语言用户
如果您只想运行安全的沙盒工具服务器并从非连接到它们,请遵循此路径。NET应用程序(例如,使用LangChain的Python代理)。
步骤1:运行MCP服务器
您可以直接从Docker Hub运行预构建的镜像。
# 1. Download the consumer-focused Docker Compose file:
# https://raw.githubusercontent.com/rahulanand428/OpenMcp/main/docker-compose.hub.yml
# 2. Start the services
docker compose -f docker-compose.hub.yml up -d服务器现在正在运行,可以在以下默认端点访问:
- PostgreSQL:
http://localhost:8081 - 文件系统:
http://localhost:8082 - DuckDuckGo:
http://localhost:8083
步骤2:从应用程序连接
您可以连接到 /sse 支持服务器发送事件的任何语言的任何服务器的端点。这将建立一个会话并提供 session_id.
您可以通过以下方式测试连接 curl:
# You should see a "session_id=..." message
curl -N http://localhost:8083/sse一旦你有了会话,你就可以通过发送 POST 请求 /messages 端点,遵循JSON-RPC 2.0和MCP规范。
配置
您可以通过创建一个 .env 项目根目录中的文件(复制自 .env.example).这允许您更改主机端口、数据库连接字符串和其他服务器设置,而无需修改 docker-compose.yml 文件。
存储库结构
sdk/dotnet/:C#客户端SDK源代码。
- SDK自述文件 -NuGet包的详细指南。
src/:Python MCP服务器(Postgres、FileSystem、DuckDuckGo)的源代码。
- 服务器README -Docker镜像的详细指南。
samples/:示例。NET控制台应用程序演示SDK使用。
- 示例代码
tests/:单元和集成测试。
贡献
我们欢迎所有的贡献!无论您是在修复错误、添加新功能还是改进文档,我们都会感谢您的帮助。请阅读我们的 贡献指南 开始吧。
该项目采用了《贡献者公约》 行为准则.
安全
安全是首要任务。如果您发现漏洞,请按照我们的说明进行操作 安全策略 私下报告。
许可证
该项目根据 MIT许可证.
🔗 实用链接
- GitHub存储库:
- NuGet包: OpenMcp。客户
- Docker Hub: openmcpserver
- 文档:
- 样品:
