GameCode MCP2 - Secure MCP Server by ALMC Security 2025

GameCode MCP2

View on GitHub

Dependabot UpdatesRust CI

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 from tools.yaml and exposes them via the protocol
  • mcp-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 client
  • tools/list - Returns all available tools
  • tools/call - Execute a specific tool

Tools are exposed directly, not through meta-tools like "run".

Related in Development - Secure MCP Servers

ServerSummaryActions
Everything MCP ServerThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be...View
UUID MCP ProviderA simple Model Context Protocol (MCP) server that provides timestamp-based UUIDs whenever it's calle...View
PickapiconView
OpenAI GPT ImageA Model Context Protocol (MCP) tool server for OpenAI's GPT-4o/gpt-image-1 image generation and edit...View
TestRailView
Zero-Vector v3🚀 STATUS: PRODUCTION READY | Infrastructure: VALIDATED | LangGraph: OPERATIONALView