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.yaml
are 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.yaml
and 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
Context Portal MCP (ConPort)
A server for managing structured project context using SQLite, with support for vector embeddings for semantic search and Retrieval Augmented Generation (RAG).
Unity MCP
An MCP server and plugin for connecting the Unity Editor and games to MCP clients like Claude Desktop.
MCP Expr Lang
MCP Expr-Lang provides a seamless integration between Claude AI and the powerful expr-lang expression evaluation engine.
MetaTrader 4
Integrate with the MetaTrader 4 trading platform to access trading functions and data via an HTTP bridge and Expert Advisor.
mcp-installer
Installs other MCP servers from their source repositories, requiring npx for Node.js and uv for Python.
Vibe-Coder
A structured development workflow for LLM-based coding, including feature clarification, planning, phased development, and progress tracking.
Bruno MCP Server
Execute Bruno collections using the Bruno CLI, with support for environment files and detailed test results.
Profile MCP Server
An example MCP server deployable on Cloudflare Workers without authentication.
GXtract
GXtract is a MCP server designed to integrate with VS Code and other compatible editors. It provides a suite of tools for interacting with the GroundX platform, enabling you to leverage its powerful document understanding capabilities directly within your development environment.
Claude Code Memory Server
A Neo4j-based MCP server providing persistent memory and contextual assistance for Claude Code.