 
对MCP想法的天真但有趣的探索。..但被我的下一个努力所取代-看https://github.com/navicore/gamecode-mcp2
游戏代码MCP服务器
基于Rust的MCP(模型上下文协议)服务器,提供动态CLI工具 通过简单的YAML配置为Claude集成。
__小心__: _这对MCP来说还处于早期阶段,这可能是一种不负责任的天真 实现-相应地使用!!_
哲学:深思熟虑的工具设计
众所周知,LLM在巨大的上下文窗口中表现不佳,即使在技术上也是如此 支持它们-因此大量的工具数量会降低性能。
此外,类似于你应该如何围绕角色设计GraphQL模式并使用 您应该深思熟虑,而不是镜像所有数据库模式 选择并配置您的MCP工具。这就是为什么我们使用YAML配置 而不是自动使用OpenAPI规范或DB连接字符串 代码生成。
特性
动态CLI工具集成
服务器从加载所有工具 tools.yaml 配置文件。这意味着:
- 没有硬编码工具 -一切都是可配置的
- 添加任何CLI工具 返回JSON
- 包括内置工具 -基本的算术和文件操作是预先配置的
- 热重载 -编辑tools.yaml后,只需重新启动Claude Desktop
示例内置工具(来自Tools.yaml)
- 添加 -将两个数字相加
- 乘 -将两个数字相乘
- 列表文件 -列出目录中的文件
所有工具都在您的 tools.yaml file-删除你不需要的东西,添加你自己的!
安装
- 构建并安装服务器:
cargo install --path .这将安装 gamecode-mcp 二进制到您的货舱目录(通常 ~/.cargo/bin/).
- 确保您的货舱目录在PATH中:
echo $PATH | grep -q "$HOME/.cargo/bin" || echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.zshrc与Claude Desktop集成
- 使用提供的脚本配置Claude Desktop:
./scripts/configure_claude_code.sh或者手动添加到MCP配置中:
{
"mcpServers": {
"gamecode": {
"command": "gamecode-mcp",
"args": [],
"env": {}
}
}
}- 重新启动Claude Desktop以加载MCP服务器。
配置
服务器正在查找 tools.yaml 在这些位置(按顺序):
- 中指定的路径
$GAMECODE_TOOLS_FILE环境变量 ./tools.yaml(当前目录-用于项目特定工具)~/.config/gamecode-mcp/tools.yaml(用户默认设置)
开始:
# Create config directory
mkdir -p ~/.config/gamecode-mcp
# Copy the example configuration with all built-in tools and documentation
cp tools.yaml.example ~/.config/gamecode-mcp/tools.yaml
# Edit to customize and add your own tools
edit ~/.config/gamecode-mcp/tools.yaml添加自己的CLI工具
编辑您的 tools.yaml 添加新工具的文件:
tools:
- name: my_tool
description: Description of what the tool does
command: /path/to/your/tool
args:
- name: input
description: Input parameter
required: true
type: string
cli_flag: "--input"
example_output:
status: "success"
data: "example output"然后重新启动Claude Desktop以加载新工具。
请参阅 examples/ 目录:
- 完整的工具配置示例
- 输入/输出映射文档
- 现实世界中的工具定义
测试
集成后,您可以通过以下问题在Claude中测试这些工具:
- “使用游戏代码运行工具执行a=5和b=3的加法”
- “使用游戏代码运行工具执行a=4和b=7的乘法”
- “使用游戏代码运行工具执行路径为'.'的list_files。”
- “使用gamecode list_tools查看所有可用工具”
或者更自然:
- “列出所有可用的游戏代码工具”
- “使用游戏代码添加5和3”
- “使用游戏代码显示当前目录中的文件”
发展
对于开发,您可以直接运行服务器:
cargo run审计日志
服务器支持所有工具调用的可选审计日志记录:
# Enable audit logging when configuring the MCP server
claude mcp add gamecode -s local ~/.cargo/bin/gamecode-mcp -- --audit-log ~/.config/gamecode-mcp/audit/审计日志被写入指定目录中的每日轮换文件:
audit-2024-01-25.jsonl-每天一个文件audit-2024-01-26.jsonl-午夜自动旋转
审核日志记录:
- 时间戳 -调用工具时(UTC)
- 工具名称 -调用了哪个工具
- 用户 -系统用户名(来自$USER环境变量)
- 主机名 -用于与其他日志关联的设备标识符
审计条目示例:
{"timestamp":"2024-01-25T10:30:00Z","tool_name":"add","user":"jsmith","hostname":"jsmith-macbook.local"}
{"timestamp":"2024-01-25T10:30:01Z","tool_name":"list_files","user":"jsmith","hostname":"lab-desktop-03"}安全考虑
重要:出于安全和隐私原因,审计日志故意这样做 非 记录:
- 刀具输入参数
- 工具输出/结果
- 任何敏感数据
此设计确保敏感信息(密码、API密钥、个人 传递给工具的数据等永远不会持久化在审计日志中。组织 应将这些审计记录与其他访问控制和监控相关联 系统在保持安全的同时保持完全可见性。
故障排除
- 服务器未出现在Claude中:确保二进制文件在您的PATH中,并且Claude Desktop已重新启动。
- 没有可用的工具:如果没有,服务器将显示带有说明的错误消息
tools.yaml找到了。检查您的文件是否位于预期的位置之一。
- 工具不工作:检查Claude Desktop日志(使用
--mcp-debug标志)显示错误消息。验证您的CLI工具是否返回有效的JSON。
- 配置未加载:确保
tools.yaml是有效的YAML。您可以使用以下方式进行测试:cat tools.yaml | yq '.'
许可证
MIT许可证-有关详细信息,请参阅许可证文件
