Skip to content

NexusForgeAI/Weave-Toolkit

Repository files navigation

Weave-Toolkit

Go Version Tool MCP

基于 Golang 高性能 MCP (Model Context Protocol) 服务器,可为 Weave 平台提供可扩展服务


🚀 特性

  • 完整 MCP 协议支持 - 支持 tools、resources、prompts、roots 等协议
  • 流式响应支持 - Server-Sent Events (SSE) 流式工具调用
  • 高性能架构 - 基于 Gin 框架,连接池管理,优化路由性能
  • 模块化中间件 - 日志、崩溃恢复、请求ID追踪等中间件
  • 配置驱动 - 灵活的配置管理和环境变量支持
  • 安全防护 - 连接限制、错误处理、结构化日志

📦 快速开始

环境要求

  • Go 1.24+
  • 支持 MCP 协议的客户端

安装运行

# 克隆项目
git clone https://github.com/NexusForgeAI/Weave-Toolkit.git
cd Weave-Toolkit

# 配置环境变量(.env)、工具配置(tool-config.json)

# 启动服务
go run ./cmd/mcp-server

🔧 工具集成

添加新工具

  1. internal/tools/ 目录创建新工具文件
  2. 实现 Tool 接口:
type Tool interface {
    Name() string
    Description() string 
    Category() ToolCategory
    Execute(ctx context.Context, args json.RawMessage) (json.RawMessage, error)
}
  1. manager.go 中注册工具

🌐 接口

MCP 协议端点

  • POST /mcp - MCP 协议主端点
  • GET /health - 健康检查端点
  • GET /health/stats - 服务器统计信息端点

支持的协议方法

核心方法

  • initialize - 初始化连接
  • tools/list - 获取可用工具列表
  • tools/call - 调用具体工具
  • tools/call (流式) - 流式调用工具,支持实时输出

扩展方法

  • resources/list - 获取资源列表
  • resources/read - 读取资源内容
  • prompts/list - 获取提示词列表
  • prompts/get - 获取特定提示词
  • roots/list - 获取根目录列表

项目结构

Weave-Toolkit/
├── cmd/mcp-server/     # 启动入口
├── config/             # 配置管理
├── internal/           # 核心实现
│   ├── logger/         # 日志系统
│   ├── mcp/            # MCP 协议
│   └── tools/          # 工具管理
├── middleware/         # 中间件
├── .env                # 环境配置
└── tool-config.json    # 工具配置

构建部署

# 构建
go build -o mcp-server ./cmd/mcp-server

# 运行
./mcp-server

# Docker 运行
docker build -t mcp-server:1.0.0 .
docker run -p 8888:8888 -v $(pwd)/.env:/app/.env -v $(pwd)/tool-config.json:/app/tool-config.json mcp-server:1.0.0

🤝 贡献指南

欢迎对项目进行贡献!感谢!

  1. Fork 仓库并克隆到本地
  2. 创建分支进行开发(git checkout -b feature/your-feature
  3. 提交代码并确保通过测试
  4. 创建 Pull Request 描述您的更改
  5. 等待代码审查并根据反馈进行修改

✨ 持续更新完善中... ✨

About

Weave MCP_Server 扩展功能/工具库

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published