GameCode MCP2
A Model Context Protocol (MCP) server for tool integration, configured using a tools.yaml file.
GameCode MCP2
A clean (and possibly naive) implementation of the Model Context Protocol (MCP) for tool integration.
Motivation - as few dependencies as possible, as simple and auditable a configuration as possible.
⚠️ Security Notice
MCP is early technology. Allowing LLMs to execute system commands is inherently risky. This implementation prioritizes auditability over features - you can read every line that processes LLM requests. Even so, proceed with caution. Only time will tell if MCP's approach is sound.
Key Features
- Direct tool exposure - Tools defined in
tools.yamlare exposed directly via MCP, not through meta-tools - Clean protocol implementation - Pure JSON-RPC 2.0 over stdio without external dependencies
- Dynamic tool loading - Configure tools via YAML without recompiling
- Built-in and external tools - Support for both internal handlers and external commands
Architecture
This workspace contains two crates:
mcp-server- The MCP server that loads tools fromtools.yamland exposes them via the protocolmcp-client- A client library for testing and integration
Usage
Running the Server
# Build the server
cargo build --release --bin gamecode-mcp2
# Create a tools.yaml file (see examples/tools.yaml)
cp examples/tools.yaml .
# Run the server (it communicates via stdio)
./target/release/gamecode-mcp2
Using with Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"gamecode": {
"command": "/path/to/gamecode-mcp2"
}
}
}
Using with gamecode-cli
The mcp-client crate can be used as a dependency in gamecode-cli for MCP integration.
Tool Configuration
Tools are defined in tools.yaml:
tools:
- name: my_tool
description: Description for the LLM
command: /path/to/command # or "internal" for built-in
args:
- name: param1
description: Parameter description
required: true
type: string
cli_flag: --param # null for positional
internal_handler: handler_name # for internal tools
Protocol
This implementation follows the MCP specification:
initialize- Handshake with clienttools/list- Returns all available toolstools/call- Execute a specific tool
Tools are exposed directly, not through meta-tools like "run".
Related Servers
GitHub Actions
An MCP Server for the GitHub Actions API, enabling AI assistants to manage and operate GitHub Actions workflows.
Apktool
A server for Android APK analysis and reverse engineering using Apktool.
Cygnus MCP Server
An MCP server demonstrating Cygnus tools for reading text files and invoking local APIs.
PyAutoGUI Server
An MCP server for PyAutoGUI that enables automated GUI testing and control, including mouse and keyboard actions, screenshots, and screen information.
Whistle MCP Server
Manage local Whistle proxy servers through AI assistants, simplifying network debugging, API testing, and rule management.
AC to Automation Converter
An AI-powered system that converts Acceptance Criteria (AC) from QA specifications into automated browser testing workflows.
Django MCP Server
A Django extension to enable AI agents to interact with Django apps through the Model Context Protocol.
Dify MCP HTTP Tools
Fetch and call tools via MCP over HTTP with SSE or Streamable transport. Supports configuration of multiple MCP services.
MCPShell
A secure bridge for LLMs to safely execute command-line tools via the Model Context Protocol (MCP).
Devici MCP Server
Manage threat models, components, and security data on the Devici platform.