About Server
Server is an MCP server published by libra412 in the Developer Tools category: go mcp server. It has been installed 0 times through Conduid.
Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.
Install
npx mcp-serverThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Server
Powered by Claude · Grounded in docs
Security checks
- ·README presentNot checked yet.
- ·License declaredNot checked yet.
- ·Tests presentNot checked yet.
- ·Dependencies pinnedNot checked yet.
- ·No dynamic code executionNot checked yet.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
MCP Server with Self-Awareness
一个具有自我意识的MCP Server,支持文件操作、代码补丁、命令执行和LSP语义分析等功能。
功能特性
核心功能
- 文件操作工具:读取、写入、列出、搜索文件
- 代码补丁工具:应用和验证代码修改
- 命令执行工具:运行命令和沙箱执行
- LSP语义工具:符号提取、引用查找、签名获取、调用者查找
Agent状态机
- 规划器(Planner):将复杂任务分解为可执行的步骤
- 补丁器(Patcher):应用精确的代码修改
- 验证器(Verifier):验证修改的正确性和完整性
工程上下文
- 工作空间管理:根目录和忽略规则
- 文件集管理:文件白名单和扩展名过滤
- 依赖管理:解析Go、Node.js、Cargo、Python项目依赖
约束与安全
- 文件修改限制:访问控制和文件大小限制
- Diff限制:行数、添加、删除限制
- 规则限制:安全规则检查(硬编码密钥、调试语句等)
安装
从源码构建
# 克隆仓库
git clone <repository-url>
cd mcp-server
# 构建服务器
go build -o mcp-server ./cmd/server
# 运行服务器
./mcp-server
使用配置文件
# 使用自定义配置
./mcp-server --config config.json
配置
默认配置
服务器使用以下默认配置:
{
"server": {
"host": "localhost",
"port": 8080,
"protocol": "http",
"enableStdio": true,
"enableHTTP": true
},
"agent": {
"maxRetries": 3,
"timeoutSeconds": 300,
"enableSelfCheck": true
},
"guard": {
"maxFileSize": 10485760,
"maxPatchLines": 1000,
"maxAdditions": 500,
"maxDeletions": 500,
"allowedPaths": [],
"forbiddenPaths": [
"/etc",
"/usr",
"/bin",
"/sbin"
]
},
"tools": {
"file": {
"enabled": true
},
"patch": {
"enabled": true,
"maxPatchSize": 1000
},
"exec": {
"enabled": true,
"maxTimeout": 60,
"enableSandbox": true
},
"lsp": {
"enabled": true
}
},
"prompts": {
"plannerPath": "prompts/planner.md",
"patcherPath": "prompts/patch.md",
"verifierPath": "prompts/verify.md"
}
}
自定义配置
创建 config.json 文件并修改配置项:
{
"server": {
"host": "0.0.0.0",
"port": 9000
},
"guard": {
"allowedPaths": [
"/path/to/project",
"/another/path"
]
}
}
使用方法
HTTP模式
./mcp-server
服务器将在 http://localhost:8080 启动。
可用的HTTP端点:
POST /initialize- 初始化MCP连接POST /tools/list- 列出所有可用工具POST /tools/call- 调用工具
Stdio模式
./mcp-server --stdio
服务器将通过标准输入/输出进行通信。
可用工具
文件工具
file_read- 读取文件内容file_write- 写入文件file_list- 列出目录文件file_search- 搜索文件内容
补丁工具
patch_apply- 应用代码补丁
执行工具
exec_run- 执行命令
LSP工具
lsp_symbols- 获取文件符号lsp_references- 查找引用lsp_signature- 获取函数签名lsp_callers- 查找调用者
Agent工具
agent_process- 处理任务agent_diagnose- 诊断Agent状态
自我检测
Agent具有自我检测能力,可以:
- 诊断状态:检查Agent是否处于错误状态
- 识别问题:识别初始化问题、配置问题等
- 请求升级:当发现能力不足时,请求必要的权限或功能升级
运行诊断:
# 通过HTTP
curl -X POST http://localhost:8080/tools/call \
-H "Content-Type: application/json" \
-d '{"name": "agent_diagnose", "arguments": {}}'
测试
运行测试套件:
# 运行所有测试
go test ./...
# 运行测试脚本
./scripts/run-tests.sh
# 格式化代码
./scripts/gofmt.sh
安全性
文件访问控制
- 默认禁止访问系统目录(/etc, /usr, /bin, /sbin)
- 支持配置允许的路径
- 文件大小限制
代码修改限制
- 最大补丁行数限制
- 最大添加/删除行数限制
- 禁止包含敏感信息的补丁
命令执行安全
- 命令黑名单(rm -rf /等)
- 沙箱执行模式
- 超时控制
规则检查
- 硬编码密钥检测
- 调试语句检测
- TODO注释检测
开发
项目结构
mcp-server/
├── cmd/server/ # 服务器入口
├── internal/
│ ├── protocol/ # MCP协议层
│ ├── tools/ # 工具实现
│ ├── agent/ # Agent状态机
│ ├── project/ # 工程上下文
│ ├── guard/ # 约束与安全
│ └── config/ # 配置管理
├── prompts/ # Prompt文件
└── scripts/ # 测试脚本
添加新工具
- 在
internal/tools/下创建新包 - 实现工具函数
- 在
cmd/server/main.go中注册工具 - 添加测试
贡献
欢迎贡献!请:
- Fork项目
- 创建特性分支
- 提交更改
- 推送到分支
- 创建Pull Request
许可证
MIT License
联系方式
如有问题或建议,请提交Issue。
README mirrored from the source repository 4 months ago. The original is authoritative.