Skip to main content
Glama

MCP Server for Agent8

A server implementing the Model Context Protocol (MCP) to support Agent8 SDK development. Developed with TypeScript and pnpm, supporting stdio and SSE transports.

Features

This Agent8 MCP Server implements the following MCP specification capabilities:

Prompts

  • System Prompt for Agent8 SDK: Provides optimized guidelines for Agent8 SDK development through the system-prompt-for-agent8-sdk prompt template.

Tools

  • Code Examples Search: Retrieves relevant Agent8 game development code examples from a vector database using the search_code_examples tool.

Related MCP server: Coding Agent MCP Server

Installation

# Install dependencies
pnpm install

# Build
pnpm build

Using Docker

You can run this application using Docker in several ways:

# Pull the latest image
docker pull ghcr.io/planetarium/mcp-agent8:latest

# Run the container
docker run -p 3333:3333 --env-file .env ghcr.io/planetarium/mcp-agent8:latest

Option 2: Build Locally

# Build the Docker image
docker build -t agent8-mcp-server .

# Run the container with environment variables
docker run -p 3333:3333 --env-file .env agent8-mcp-server

Docker Environment Configuration

There are three ways to configure environment variables when running with Docker:

  1. Using --env-file (Recommended):

    # Create and configure your .env file first
    cp .env.example .env
    nano .env
    
    # Run with .env file
    docker run -p 3000:3000 --env-file .env agent8-mcp-server
  2. Using individual -e flags:

    docker run -p 3000:3000 \
      -e SUPABASE_URL=your_supabase_url \
      -e SUPABASE_SERVICE_ROLE_KEY=your_service_role_key \
      -e OPENAI_API_KEY=your_openai_api_key \
      -e MCP_TRANSPORT=sse \
      -e PORT=3000 \
      -e LOG_LEVEL=info \
      agent8-mcp-server
  3. Using Docker Compose (for development/production setup):

    The project includes a pre-configured docker-compose.yml file with:

    • Automatic port mapping from .env configuration

    • Environment variables loading

    • Volume mounting for data persistence

    • Container auto-restart policy

    • Health check configuration

    To run the server:

    docker compose up

    To run in detached mode:

    docker compose up -d

Required Environment Variables:

  • SUPABASE_URL: Supabase URL for database connection

  • SUPABASE_SERVICE_ROLE_KEY: Supabase service role key for authentication

  • OPENAI_API_KEY: OpenAI API key for AI functionality

The Dockerfile uses a multi-stage build process to create a minimal production image:

  • Uses Node.js 20 Alpine as the base image for smaller size

  • Separates build and runtime dependencies

  • Only includes necessary files in the final image

  • Exposes port 3000 by default

Usage

Command Line Options

# View help
pnpm start --help

# View version information
pnpm start --version

Supported options:

  • --debug: Enable debug mode

  • --transport <type>: Transport type (stdio or sse), default: stdio

  • --port <number>: Port to use for SSE transport, default: 3000

  • --log-destination <dest>: Log destination (stdout, stderr, file, none)

  • --log-file <path>: Path to log file (when log-destination is file)

  • --log-level <level>: Log level (debug, info, warn, error), default: info

  • --env-file <path>: Path to .env file

Using Environment Variables

The server supports configuration via environment variables, which can be set directly or via a .env file.

  1. Create a .env file in the project root (see .env.example for reference):

# Copy the example file
cp .env.example .env

# Edit the .env file with your settings
nano .env
  1. Run the server (it will automatically load the .env file):

pnpm start
  1. Or specify a custom path to the .env file:

pnpm start --env-file=/path/to/custom/.env

Configuration Priority

The server uses the following priority order when determining configuration values:

  1. Command line arguments (highest priority)

  2. Environment variables (from .env file or system environment)

  3. Default values (lowest priority)

This allows you to set baseline configuration in your .env file while overriding specific settings via command line arguments when needed.

Supported Environment Variables

Variable

Description

Default

MCP_TRANSPORT

Transport type (stdio or sse)

stdio

PORT

Port to use for SSE transport

3000

LOG_LEVEL

Log level (debug, info, warn, error)

info

LOG_DESTINATION

Log destination (stdout, stderr, file, none)

stderr (for stdio transport), stdout (for sse transport)

LOG_FILE

Path to log file (when LOG_DESTINATION is file)

(none)

DEBUG

Enable debug mode (true/false)

false

SUPABASE_URL

Supabase URL for database connection

(required)

SUPABASE_SERVICE_ROLE_KEY

Supabase service role key for authentication

(required)

OPENAI_API_KEY

OpenAI API key for AI functionality

(required)

Using Stdio Transport

# Build and run
pnpm build
pnpm start --transport=stdio

Using SSE Transport

# Build and run (default port: 3000)
pnpm build
pnpm start --transport=sse --port=3000

Debug Mode

# Run in debug mode
pnpm start --debug

Available Prompts

  • systemprompt-agent8-sdk

Client Integration

Using with Claude Desktop

  1. Add the following to Claude Desktop configuration file (claude_desktop_config.json):

{
  "mcpServers": {
    "Agent8": {
      "command": "npx",
      "args": ["--yes", "agent8-mcp-server"]
    }
  }
}
  1. Restart Claude Desktop

Adding New Prompts

Add new prompts to the registerSamplePrompts method in the src/prompts/provider.ts file.

License

MIT

Available Tools

1 tool
search_code_examplesA

Searches and retrieves relevant game development code examples from a vector database based on specific game development requirements or programming challenges. This tool performs semantic search to find code snippets and examples that match the user's game development needs. It analyzes both the user message and associated tags to identify the most appropriate game code examples from the database. [WHEN TO USE THIS TOOL] You should use this tool whenever the user asks about game implementation details, game programming patterns, specific game feature implementations, or requests examples of how to implement something in game development. USE THIS TOOL if the user mentions specific game programming tasks, asks "how do I code X in my game", or needs reference implementations for game mechanics, rendering, physics, AI, or other game-specific systems. The results are returned in a structured format containing game client code, game server code, and descriptive explanations when available. The userMessage parameter should include detailed context about the game programming challenge or implementation requirement, while the tags parameter should specify relevant game engines, frameworks, or concepts to narrow the search scope. Note: This tool does not generate complete games but rather provides existing code snippets and examples that address specific game implementation challenges. The quality of search results heavily depends on the clarity and specificity of the provided user message and tags. Examples typically demonstrate solutions to common game implementation problems and can be used as reference material for your own game development work. Common scenarios where this tool is useful include: 1) When a user asks "How do I implement character movement in Unity?", 2) When they need examples of game state management for specific operations, 3) When they want to see how others have implemented a specific game UI component, 4) When they need patterns for game networking, 5) When they request code for handling specific game physics edge cases. IMPORTANT: You should proactively offer to search for game code examples whenever a user is discussing game implementation details or asking how to build something in a game, even if they don't explicitly request examples. Always prefer showing existing, tested game code examples over generating new code when possible. If you are uncertain whether relevant game code examples exist for a user's question, it is better to use this tool and check rather than assume none are available. Even partial matches can provide valuable game implementation insights to users.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsYesAn array of specific keywords, game engines, frameworks, or game programming concepts that help narrow down the search. ALL TAGS MUST BE IN ENGLISH ONLY. Always include both general game technology categories (e.g., "Unity", "Unreal Engine") AND specific game concepts (e.g., "character controller", "collision detection") relevant to the query. If the user mentions any game technologies, ALWAYS include them as tags. Commonly useful tags include: "Unity", "Unreal Engine", "Godot", "Phaser", "game physics", "game AI", "pathfinding", "animation", "game networking", "procedural generation", "particle systems", "game UI", "state management", "input handling", etc. Each tag should be a string that precisely identifies a game technology (e.g., "Unity", "Unreal Engine", "WebGL"), a game programming concept (e.g., "physics", "AI", "rendering"), or a specific game feature (e.g., "character controller", "inventory system", "dialog system"). Tags are used to filter the vector database search and improve the relevance of returned game examples. Include both broad and specific tags to ensure comprehensive results.
userMessageYesA detailed description of the game programming problem or implementation challenge that requires code examples. THIS MUST BE PROVIDED IN ENGLISH ONLY. Extract the core game implementation requirements from the user's query, focusing on what they're trying to build or implement in their game. This should include context about what the user is trying to accomplish, specific technical requirements, game engines or technologies being used, and any constraints or edge cases that need to be addressed. The more specific and detailed this description is, the more relevant the returned game code examples will be. Examples of good messages include explaining a complex game mechanic integration, describing a game UI component behavior, detailing a game physics simulation, or requesting help with game AI implementation.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure and does a strong job. It discloses limitations ('does not generate complete games'), output format ('structured format containing game client code, game server code, and descriptive explanations'), and factors affecting quality (clarity of userMessage and tags). Minor omissions like rate limits or error behavior prevent a perfect score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly verbose and repetitive, with redundant statements about when to use the tool and the importance of search quality. While it is structured with sections, many sentences do not earn their place, making it less concise than ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no sibling tools, the description provides comprehensive context: it explains return format, limitations, scenarios, and proactive usage. It covers both what the tool does and how to best leverage it, making it contextually complete for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with detailed descriptions for both parameters, including usage guidance and examples. The description briefly reiterates that userMessage should be detailed and tags should narrow scope, but adds marginal semantic value beyond the schema. Per the baseline for high schema coverage, 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool 'searches and retrieves relevant game development code examples from a vector database' with a specific verb and resource. It clarifies the semantic search nature and the type of content returned, leaving no ambiguity about purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes an explicit '[WHEN TO USE THIS TOOL]' section with detailed scenarios, specific examples, and proactive guidance to search even when not explicitly requested. It clearly defines when to prefer this tool over generating new code, which is excellent usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.4/5.0
Disambiguation5/5

Only one tool exists, so there is no possibility of ambiguity or misselection. The single tool has a clearly defined purpose of searching for code examples.

Naming Consistency5/5

The tool name 'search_code_examples' follows the conventional snake_case verb_noun pattern. With only one tool, there are no naming inconsistencies to assess.

Tool Count4/5

A single tool feels slightly thin, but the server is purpose-built for one specific task: searching code examples. This narrow scope justifies having only one tool.

Completeness5/5

The tool fully covers the stated domain of retrieving relevant game development code examples. There are no obvious missing operations for this narrow purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/longfin/mcp-agent8-o'

If you have feedback or need assistance with the MCP directory API, please join our Discord server