Mcp Server Developer Tool

Mcp Server Developer Tool

🚀 模块化 MCP 服务器

这是一个使用 github.com/metoro-io/mcp-golang 库实现的 Model Context Protocol (MCP) 服务器的 Go 实现,采用模块化方式重构,为用户提供了更灵活、可扩展的 MCP 服务器解决方案。

🚀 快速开始

构建和运行

# 构建服务器
cd cmd/mcp-server
go build -o mcp-server

# 运行服务器
./mcp-server

📦 项目结构

mcp-server/
├── cmd/
│   └── mcp-server/
│       └── main.go           # 入口点
├── internal/
│   ├── config/
│   │   └── config.go         # 服务器配置
│   ├── server/
│   │   ├── server.go         # MCP 服务器实现
│   │   └── server_test.go    # 服务器测试
│   ├── tools/
│   │   ├── tool.go           # 工具接口
│   │   ├── execute.go        # 执行 shell 命令工具
│   │   ├── showfile.go       # 显示文件工具
│   │   ├── searchfile.go     # 在文件中搜索工具
│   │   └── writefile.go      # 写入文件工具
│   └── utils/
│       └── response.go       # 响应公用工具
├── go.mod
├── go.sum
└── README.md

✨ 主要特性

安全特性

该服务器现在包含路径限制功能,以限制文件操作仅限于指定目录。

配置允许的路径

你可以通过以下几种方式配置允许的路径:

  • 使用命令行标志
# 只允许在特定目录中执行操作
./mcp-server --paths=/home/user/safe:/tmp/workspace

# 即使在允许的路径内,显式拒绝某些路径
./mcp-server --paths=/home/user --deny-paths=/home/user/.ssh:/home/user/credentials
  • 使用环境变量
# 设置允许的路径
export MCP_ALLOWED_PATHS=/home/user/safe:/tmp/workspace

# 设置拒绝的路径
export MCP_DENIED_PATHS=/home/user/.ssh:/home/user/credentials

# 运行服务器
./mcp-server
  • 程序matic 配置 你也可以创建一个自定义配置:
cfg := config.DefaultConfig()
cfg.AddAllowedPath("/path/to/allow")
cfg.AddDeniedPath("/path/to/deny")

server, err := server.NewServerWithConfig(cfg)

默认行为

  • 如果没有指定路径,默认情况下服务器只允许当前工作目录。
  • 常见敏感目录(如 .git.env)会自动添加到拒绝列表中。

Shell 命令安全

对于 execute_shell_command 工具:

  • 命令受限于一个 whitelist 的常见实用程序
  • 自定义可执行路径必须经过允许路径配置的检查
  • 工作目录必须在允许的路径内

可扩展性

可以方便地添加新工具,具体步骤如下:

  1. internal/tools/ 目录下创建一个新的 Go 文件。
  2. 实现 Tool 接口(定义在 tool.go 中)。
  3. 将工具注册到服务器,通常在 server.go 中进行。

例如,添加一个新工具:

// new_tool.go
package tools

import (
"internal/tools"
)

type NewTool struct{}

func (n *NewTool) Execute(args []string) error {
// 实现具体的执行逻辑
return nil
}

func init() {
tools.Register("new_tool", &NewTool{})
}

💻 使用示例

测试服务器

要测试服务器,请运行以下命令:

# 运行测试
go test -v ./...
  • 0 关注
  • 0 收藏,10 浏览
  • system 提出于 2025-09-29 19:51

相似服务问题