gamecode-mcp2
mcp in rust both client and server
Documentation
> **This repository has moved to https://git.navicore.tech/navicore/gamecode-mcp2.**
>
> The GitHub copy is archived and no longer maintained.
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-mcp2Using 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 toolsProtocol
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".
Frequently asked questions
What is gamecode-mcp2?
gamecode-mcp2 is mcp in rust both client and server
How do I install gamecode-mcp2?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is gamecode-mcp2 open source?
Yes — it is hosted on GitHub at https://github.com/navicore/gamecode-mcp2 and has 2 stars.
Related MCP tools
an open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM
Search infrastructure for AI
YC (S26) | Open Computer History | Record your screen continuously locally and provide context to your agents (Claude, Codex, Openclaw, Hermes, Runner...)
The fastest and the most accurate file search SDK for AI agents, Neovim, Rust, C, Python, Bun and NodeJS
Semantic version control => entity-level diffs, blame, and impact analysis on top of git. 28 languages via tree-sitter. Built for coding agents.
Fast, local-first web content extraction for LLMs. Scrape, crawl, extract structured data — all from Rust. CLI, REST API, and MCP server.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP