Token导航 LogoToken导航TokenDH.com
N2 MCP Core logo
运维云端未说明官方级别未说明来源级核验

N2 MCP Core

MCP Server

一个用于实现Model Context Protocol (MCP)服务器的.NET库,提供核心抽象和工具,支持与AI助手和其他MCP客户端集成。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
服务器开发C#Claude协议实现Claude

安装说明

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

作者 / 组织

Kaalenco

提供方

Kaalenco

最后核验

2026/5/17 20:21

快速接入

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

详细介绍

N2.McpCore

![.NET Build and test](https://github.com/Kaalenco/n2-mcp-core/actions/workflows/dotnet.yml)

A.NET库,为实现提供核心抽象和实用程序 模型上下文协议(MCP) 服务器。此软件包使您能够构建符合MCP的服务器,这些服务器可以与AI助手和其他MCP客户端集成。

特性

  • 多框架支持:目标。NET标准2.0。NET标准2.1。NET 8.0以及。净值10.0
  • JSON-RPC 2.0实现:完整的JSON-RPC协议支持请求/响应处理
  • MCP协议合规性:实施MCP规范版本“2024-11-05”
  • 可扩展架构:基类和接口便于服务器实现
  • 类型安全模型:支持JSON序列化的强类型协议模型
  • 工具框架:内置支持定义和执行MCP工具

安装

通过NuGet包管理器安装:

dotnet add package N2.Mcp.Core

或者通过包管理器控制台:

Install-Package N2.Mcp.Core

快速开始

1.创建自定义MCP服务器

现在每个工具都有自己的 CallAsync 委托,因此您不再需要覆盖 CallToolAsync.直接在上分配处理程序 McpTool 定义:

using McpCore.Server;
using McpCore.Protocol;

public class MyMcpServer : McpServer
{
    public MyMcpServer() : base(
        new McpServerInfo { Name = "my-server", Version = "1.0.0" },
        new McpServerCapabilities { Tools = new McpToolsCapability() })
    {
    }

    protected override McpTool[] GetAvailableTools() =>
    [
        new McpTool
        {
            Name = "get_weather",
            Description = "Get current weather for a location",
            CallAsync = GetWeatherAsync,
            InputSchema = new McpInputSchema
            {
                Type = "object",
                Properties = new Dictionary
                {
                    ["location"] = new McpPropertyDefinition
                    {
                        Type = "string",
                        Description = "City name"
                    }
                },
                Required = ["location"]
            }
        }
    ];

    private Task GetWeatherAsync(Dictionary arguments)
    {
        var location = arguments.GetStringArgument("location") ?? "unknown";
        return Task.FromResult(new McpToolCallResult
        {
            Content =
            [
                new McpContent { Type = "text", Text = $"Weather in {location}: Sunny, 72°F" }
            ]
        });
    }
}

2.处理JSON-RPC请求

var server = new MyMcpServer();

// Handle incoming JSON-RPC request
var request = new JsonRpcRequest
{
    Id = 1,
    Method = "tools/list",
    Params = null
};

var response = await server.ProcessRequestAsync(request);

建筑

图书馆主要由三个部分组成:

  • JsonRpc:具有请求/响应/错误模型的JSON-RPC 2.0协议实现
  • 协议:MCP特定的协议模型,包括初始化、工具和功能
  • 服务器:具有可扩展方法处理程序的基础服务器实现

MCP服务器生命周期

  1. 初始化:客户端发送 initialize 具有能力的请求
  2. 已初始化:客户端发送 initialized 完成握手的通知
  3. 准备就绪:服务器现在可以处理 tools/listtools/call 请求:

有关详细的体系结构文档,请参阅 CLAUDE.md.

从源头构建

# Clone the repository
git clone https://github.com/kaalenco/n2-mcp-core.git
cd n2-mcp-core

# Build the solution
dotnet build src/N2.McpCore.sln

# Build for release
dotnet build src/N2.McpCore.sln -c Release

贡献

欢迎投稿!请确保:

  • 代码遵循现有的架构模式
  • 所有代码分析警告均已解决(警告被视为错误)
  • 为公共API提供XML文档
  • 在所有目标框架中测试更改

许可证

该项目根据学术自由许可证v3.0(AFL-3.0)获得许可。看 许可证 了解详情。

版权所有(c)2025 Kaalenco-保留所有权利

更新日志

1.1.0

重大变更

  • GetAvailableTools() 现在是 abstract子类必须实现它;默认的空数组实现已被删除。
  • CallToolAsync() 不再是 virtual。覆盖它没有效果。工具调度现在由内部处理 McpServer 通过 McpTools 词典在 initialized 握手。
  • 从返回空工具数组的服务器 GetAvailableTools() 现在将投掷 InvalidOperationException 在...期间 initialized 握手。必须至少注册一个工具。

新功能

  • McpTool.CallAsyncFunc, Task>? 委托财产。直接在上指定工具的处理程序 McpTool 定义而不是中心 switchCallToolAsync.
  • 工具查找是 不区分大小写 工具名称为 修剪过的 在查找之前,降低对微小客户端变化的敏感性。
  • 描述性错误:调用没有 CallAsync 指定投掷 InvalidOperationException("Tool 'x' is not callable").
  • CallToolAsync 现在验证了这一点 parameters 不是 null 在继续之前。
  • 已添加单元测试项目(N2.McpCore.Unittests,NUnit,目标 net8.0net10.0).
  • 目标框架已更新: .NET 9.0 被替换为 .NET 10.0.

从1.0.x迁移

  1. 删除任何 overrideCallToolAsync 在您的服务器子类中。
  2. 添加a CallAsync 委派给每个人 McpTool 返回由 GetAvailableTools().
  3. 确保 GetAvailableTools() 返回至少一个工具,或保护 initialized 相应地流动。

______________________________________________________________________

1.0.1 — 1.0.0

初始版本基于JSON-RPC 2.0基础、MCP协议模型, McpServer 基类和stdio传输助手。

______________________________________________________________________

链接

目录标签

目录标签

服务器开发C#Claude协议实现JSON-RPC本地部署.NET库AI集成

支持客户端

Claude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP