Token导航 LogoToken导航TokenDH.com
Modelcontextprotocol Net logo
开发工具未说明官方级别未说明来源级核验

Modelcontextprotocol Net

MCP Server

一个C#实现的模型上下文协议(MCP)SDK,提供标准I/O通信、工具集成框架和原生AOT兼容等功能,适用于需要模型交互和工具集成的开发场景。

工具数

0

提示词数

0

GitHub Stars

80

资源数

0
模型交互C#协议实现

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

salty-flower

提供方

salty-flower

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

模型上下文协议。网

模型上下文协议(MCP)的C#SDK实现。

特性

准备使用

  • ✅ 标准I/O通信
  • ✅ 工具集成框架
  • ✅ 本地AOT兼容
  • ✅ 计算器演示实现

正在开发中

  • 🚧 WebSocket支持
  • 🚧 资源管理
  • 🚧 提示系统

演示

src/ModelContextProtocol.NET.Demo.Calculator 一个功能齐全的计算器演示,包括:

  • 日志记录设置
  • 工具处理程序实现
  • 请求/响应处理
  • 错误管理

入门指南

安装 服务器包:

dotnet add package ModelContextProtocol.NET.Server --prerelease

对于主机集成,请添加 服务器托管包:

dotnet add package ModelContextProtocol.NET.Server.Hosting --prerelease

A.没有主机

// Create server info
var serverInfo = new Implementation { Name = "Calculator Demo Server", Version = "1.0.0" };

// Configure and build server
var builder = new McpServerBuilder(serverInfo).AddStdioTransport();
builder.Services.AddLogging();
builder.Tools.AddHandler();
builder.Tools.AddFunction(
    name: "YourToolName",
    description: "YourToolDescription",
    parameterTypeInfo: YourParameterTypeJsonContext.Default.YourParameterType,
    handler: (YourParameterType parameters, CancellationToken ct) => {
        // Your tool implementation
    }
);
// ...

var server = builder.Build();
server.Start();
await Task.Delay(-1); // Wait indefinitely

B.托管

var builder = Host.CreateApplicationBuilder();
builder.Services.AddMcpServer(serverInfo, mcp => {
    mcp.AddStdioTransport();
    // same as without hosting
}, keepDefaultLogging: false); // clear default console logging
// ...

var host = builder.Build();
await host.RunAsync();

日志记录配置

McpServerBuilder 用途 Microsoft.Extensions.Logging.ILogger 作为日志记录界面。 使用stdio传输时,日志无法发送到控制台。 您需要配置一个写入其他日志目的地的日志提供程序。

如果没有配置日志提供程序,将使用空日志记录器,导致没有写入日志。

默认情况下,通用主机构建器将添加基于控制台的记录器,即 ILoggerFactoryILogger. AddMcpServer 将默认删除它们,原因与上述相同。 如果你仍然想保留它们,设置 keepDefaultLoggingtrue 在……里面 AddMcpServer.

// Using Serilog
.ConfigureLogging(logging => logging.AddSerilog(yourSerilogLogger))

// Using NLog
.ConfigureLogging(logging => logging.AddNLog())

实施工具

工具作为处理程序实现。 为了与NativeAOT兼容,a JsonTypeInfo 是参数类型所必需的。 然后,您可以实现一个处理程序类来享受依赖注入等。, 或者直接提供功能。

更多文档和实施指南即将发布。

技术细节

建筑

该项目由多个部分组成:

  • 核心库:包含基本协议实现
  • 服务器组件:处理通信和请求处理
  • 服务器托管:将MCP服务器集成到。NET通用主机
  • 演示:提供工作示例

- 计算器应用程序

开发状态

该项目正在积极开发中。虽然stdio通信和工具集成等核心功能已经完成并可用,但一些高级功能仍在实施中。

贡献

欢迎投稿!请随时提交pull请求或为bug和功能请求创建问题。

许可证

Apache 2.0

目录标签

目录标签

模型交互C#协议实现C#SDK本地部署工具集成原生AOT

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP