Token导航 LogoToken导航TokenDH.com
MCP Tool Plugin logo
AI代理stdio官方级别未说明来源级核验

MCP Tool Plugin

MCP Server

一个用于创建和分享Model Context Protocol(MCP)工具的开源平台,支持工具开发、测试、打包和发布。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
开源工具C#AI代理

安装说明

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

作者 / 组织

Shubhrmcf-07

提供方

Shubhrmcf-07

最后核验

2026/5/17 20:21

运行时

Docker

快速接入

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

命令预览

docker run -p 5000:5000 mcp-server:latest

详细介绍

MCP工具-开放式贡献平台

为模型上下文协议(MCP)创建和共享工具。此存储库包含用于构建与MCP服务器集成的工具的模板和示例。

快速开始

构建工具

dotnet build

创建您的工具

工具_TEMPLATE.md 完整的指南。

基本示例:

public class MyTool : IMCPTool {
    public string ToolId => "my-tool";
    public ToolMetadata GetMetadata() => new() { Name = "My Tool", Version = "1.0.0" };
    public List GetFunctions() => new() { /* functions */ };
    public Task ExecuteAsync(string function, Dictionary parameters) => /* ... */;
}

项目结构

├── src/
│   ├── MCPServer.ToolTemplate/  # Tool interfaces & base classes
│   └── MCPServer.Examples/      # Example tool implementations
├── docs/                         # Documentation
└── .github/workflows/            # CI/CD - builds and publishes tools

工作流程:贡献工具

  1. 分叉 此存储库
  2. 创建 新工具 src/MCPServer.YourToolName/
  3. 跟随工具_TEMPLATE.md 指南
  4. 提交 使用您的工具进行公关
  5. CI验证 工具(构建、测试、结构)
  6. 合并 → 工具已发布到您的自定义提要
  7. MCP服务器 通过NuGet安装您的工具

示例:文本处理工具

位于 src/MCPServer.Examples/,实现:

  • 统计单词和字符
  • 转换案例(上/下)
  • 反转文本
  • 删除空白

文档

工具如何发布

  1. 构建与测试 -GitHub Actions验证所有PR(公共)
  2. 自动包装 -作为工件创建和上传的NuGet包
  3. 本地下载 -从GitHub操作获取包
  4. 私下发布 -使用凭据推送到您的自定义提要(本地)

所有凭证保留 私有的。从未存储在GitHub中。

公共位置.md 用于发布步骤。

获取工具详细信息

GET /api/tools/{toolId}

获取工具功能

GET /api/tools/{toolId}/functions

执行工具功能

POST /api/tools/{toolId}/execute
Content-Type: application/json

{
  "functionName": "FunctionName",
  "parameters": {
    "param1": "value1",
    "param2": "value2"
  }
}

创建你的第一个工具

工具_TEMPLATE.md 有关创建和发布工具的详细说明。

示例:文本处理工具

public class MyTool : MCPToolBase
{
    public MyTool(ILogger logger) : base(logger) { }

    public override ToolMetadata GetMetadata() => new()
    {
        ToolId = "my-tool",
        Name = "My Tool",
        Version = "1.0.0",
        Author = "Your Name",
        Description = "What it does"
    };

    public override List GetFunctions() => new()
    {
        new ToolFunction 
        { 
            Name = "Process",
            Description = "Process some data",
            Parameters = new() 
            {
                new ToolParameter { Name = "input", Type = "string", Required = true }
            }
        }
    };

    public override async Task ExecuteAsync(string functionName, Dictionary parameters)
    {
        return functionName switch
        {
            "Process" => Success(new { result = "processed" }),
            _ => Failure("Unknown function")
        };
    }
}

工具管理

工具发现

服务器会自动从以下位置发现并加载工具:

  1. .NET ServiceProvider (注册工具)
  2. ./plugins 目录(插件程序集)

插件目录结构

./plugins/
├── MyTool.dll
├── AnotherTool.dll
└── ThirdTool.dll

项目结构

├── src/
│   ├── MCPServer.Core/          # Main server application
│   ├── MCPServer.ToolTemplate/  # Tool template and interfaces
│   └── MCPServer.Examples/      # Example tool implementations
├── tools/                        # Community contributed tools
├── docs/                         # Documentation
├── .github/workflows/            # CI/CD pipelines
└── MCPServer.sln

CI/CD集成

工具验证工作流程

当您使用新工具提交PR时,CI/CD管道会自动:

  1. 验证结构 -确保所需的文件和接口
  2. 建筑 -编译工具
  3. 测试 -运行单元测试
  4. 分析 -静态代码分析
  5. 整合 -MCP服务器中的测试加载
  6. 包裹 -创建NuGet包
  7. 发布 -发布到NuGet注册表(在主分支上)

贡献

我们欢迎社区捐款!要添加新工具,请执行以下操作:

  1. 在下创建新目录 tools/ 使用您的工具名称
  2. 实施 IMCPTool 接口(使用 MCPToolBase 作为基础)
  3. 在a中添加单元测试 YourTool.Tests 目录
  4. 包含README.md和文档
  5. 提交PR

贡献.md 详细指南。

建筑

核心组件

工具管理器

  • 管理工具生命周期
  • 处理工具发现和加载
  • 将函数调用路由到适当的工具
  • 跟踪执行指标

MCPServer应用程序

  • HTTP API主机
  • REST端点定义
  • 请求/响应处理

IMCP工具界面

  • 所有工具的基础合同
  • 定义元数据、函数和执行

MCPToolBase

  • 抽象基类
  • 创建结果的辅助方法
  • 参数验证

配置

环境变量

  • ASPNETCORE_ENVIRONMENT:开发或生产
  • ASPNETCORE_URLS:服务器URL(默认值:http://localhost:5000)

应用程序设置

创建 appsettings.json 配置:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    }
  },
  "PluginDirectory": "./plugins"
}

发展

调试服务器

dotnet run --project src/MCPServer.Core --configuration Debug

运行测试

dotnet test MCPServer.sln

打包工具

dotnet pack src/MCPServer.ToolTemplate -c Release

部署

码头工人

docker build -t mcp-server:latest .
docker run -p 5000:5000 mcp-server:latest

Kubernetes

k8s/ 部署清单目录。

Azure

使用Azure容器实例或应用程序服务进行部署。

文档

演出

  • 异步I/O:所有操作都使用async/await
  • 依赖注入:高效的服务解决方案
  • 插件加载:工具组件的延迟加载
  • 缓存:加载后缓存的工具元数据

安全考虑

  • 验证所有输入参数
  • 使用具有已知安全补丁的托管依赖关系
  • 对生产部署实施速率限制
  • 要求对敏感工具进行身份验证

故障排除

工具未加载

  1. 检查插件目录: ./plugins/
  2. 验证DLL是否存在并以net8.0为目标
  3. 检查日志以获取详细的错误消息
  4. 确保机具 IMCPTool

函数执行失败

  1. 验证参数名称和类型
  2. 检查响应中的错误消息
  3. 查看工具日志
  4. 使用有效参数值进行测试

支持

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

致谢

内置:

  • .NET 8.0
  • ASP。NET核心
  • Serilog
  • 微软。扩展。依赖注入

目录标签

目录标签

开源工具C#AI代理本地部署MCP协议工具开发插件系统CI/CD集成

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP