Skip to main content
Glama

GameMaker Documentation MCP Server

by Petah

GameMaker Documentation Tools

A comprehensive toolkit for GameMaker Language (GML) documentation management, featuring an MCP server, CLI tools, and HTML-to-Markdown conversion utilities.

Includes GameMaker Documentation: This package comes with GameMaker Language documentation built-in. No additional setup or file downloads required!

Features

  • MCP Server: Model Context Protocol server for programmatic documentation access
  • CLI Documentation Tool: Search, lookup, and browse GameMaker documentation from the command line
  • HTML Converter: Convert GameMaker HTML documentation to clean Markdown format
  • Modern Node.js: Built with ES modules, structured error handling, and performance monitoring

Requirements

  • Node.js: >= 22.0.0
  • npm: Latest version recommended

Installation

No installation needed! Run directly with npx:

# Run MCP server npx @petah/gamemaker-mcp # Run CLI tool npx @petah/gamemaker-mcp gm-cli --help # Alternative command names npx @petah/gamemaker-mcp gamemaker-mcp # MCP server npx @petah/gamemaker-mcp gm-docs lookup draw_sprite # CLI tool

Global Installation

# Install globally npm install -g @petah/gamemaker-mcp # Then use directly gamemaker-mcp gm-cli --help gm-docs lookup draw_sprite

Local Development

# Clone the repository git clone <repository-url> cd gm-mcp # Install dependencies npm install

Usage

CLI Documentation Tool

The CLI provides comprehensive GameMaker documentation lookup and search capabilities:

# Using npx (recommended) npx @petah/gamemaker-mcp gm-cli --help npx @petah/gamemaker-mcp gm-docs lookup draw_sprite # Alternative npx usage npx @petah/gamemaker-mcp gm-cli lookup draw_sprite npx @petah/gamemaker-mcp gm-docs search collision # Global installation gm-cli --help gm-docs lookup draw_sprite # All CLI commands work the same way: # Look up a specific function gm-docs lookup draw_sprite # Search documentation gm-docs search collision # List functions by pattern gm-docs list draw # Show available categories gm-docs categories # List functions in a category gm-docs category Drawing # Get specific file content gm-docs file GameMaker_Language/GML_Reference/Drawing/Sprites_And_Tiles/draw_sprite.md # Convert HTML docs to Markdown gm-docs convert gm-docs convert ./html ./markdown # Local development npm run cli -- --help npm run cli lookup draw_sprite
Development Mode

Use watch mode for development with automatic reloading:

# Local development only npm run cli:dev -- --help
Custom Documentation Path (Optional)

The package includes GameMaker documentation by default. If you need to use custom docs:

# Using npx npx @petah/gamemaker-mcp gm-docs --path /path/to/docs lookup draw_sprite # Global installation gm-docs --path /path/to/docs lookup draw_sprite # Local development npm run cli -- --path /path/to/docs lookup draw_sprite

MCP Server

Start the Model Context Protocol server for programmatic access:

# Using npx (recommended) - includes built-in GameMaker docs npx @petah/gamemaker-mcp # Or with alternative command npx @petah/gamemaker-mcp gamemaker-mcp # Global installation gamemaker-mcp gamemaker-docs-server # Local development npm run mcp node src/gamemaker-docs-server.js # Custom documentation path (optional) npx @petah/gamemaker-mcp /path/to/custom/docs

The MCP server provides 5 tools:

  • lookup_gamemaker_function - Look up specific GML functions
  • search_gamemaker_docs - Search documentation content
  • list_gamemaker_functions - List functions by pattern or category
  • get_gamemaker_file - Retrieve specific documentation files
  • init_gamemaker_agent - Initialize with comprehensive GML coding guide
MCP Configuration

For Claude Desktop or other MCP clients, add this to your configuration:

Claude Desktop (claude_desktop_config.json):

{ "mcpServers": { "gamemaker-docs": { "command": "npx", "args": ["@petah/gamemaker-mcp"], "env": {} } } }

VS Code (.vscode/settings.json):

{ "mcp.servers": { "gamemaker-docs": { "command": "npx", "args": ["@petah/gamemaker-mcp"], "cwd": "${workspaceFolder}" } } }

With custom documentation path (optional):

{ "mcpServers": { "gamemaker-docs": { "command": "npx", "args": ["@petah/gamemaker-mcp", "/path/to/your/gamemaker/docs"], "env": {} } } }

Note: The package includes GameMaker documentation by default, so no path configuration is needed for standard usage.

HTML to Markdown Conversion

Convert GameMaker HTML documentation to clean Markdown:

# Convert with default paths (docs -> md) npm run convert # Convert with custom paths npm run cli convert /path/to/html /path/to/output

Project Structure

src/ ├── cli.js # Main CLI entry point ├── gamemaker-docs-server.js # MCP server implementation ├── commands/ # CLI command implementations │ ├── base-command.js # Shared command functionality │ ├── lookup.js # Function lookup command │ ├── search.js # Documentation search command │ ├── list.js # Function listing command │ ├── categories.js # Category browsing command │ ├── category.js # Category-specific listing │ ├── file.js # File retrieval command │ ├── convert.js # HTML conversion command │ └── index.js # Command registry ├── lib/ # Shared libraries │ ├── docs-indexer.js # Documentation indexing and search │ ├── gamemaker-cli.js # GameMaker CLI functionality │ ├── html-converter.js # HTML to Markdown converter │ └── errors.js # Structured error handling docs/ # Raw HTML documentation md/ # Converted Markdown documentation init.txt # GameMaker coding guide for LLM agents .vscode/mcp.json # VS Code MCP configuration

Key Features

Modern Node.js Architecture

  • ES Modules: Full ESM support with proper import/export syntax
  • Node.js Built-ins: Uses node: prefix for built-in modules
  • Structured Error Handling: Rich error context and logging
  • Performance Monitoring: Automatic timing and slow operation detection

Documentation Management

  • Smart Indexing: Efficient function and content indexing
  • Fuzzy Search: Find functions even with partial or misspelled names
  • Category Organization: Browse documentation by logical categories
  • Link Conversion: Automatic conversion of HTML links to Markdown paths

Development Experience

  • Watch Mode: Hot reloading during development (npm run cli:dev)
  • Structured Logging: Rich error context and debugging information
  • Performance Insights: Automatic timing measurements for operations
  • Comprehensive Error Handling: Clear error messages with context

Examples

Function Lookup

$ npm run cli lookup draw_sprite # draw_sprite(sprite, subimg, x, y) Draws a sprite at the given position. **Parameters:** - sprite: The sprite to draw - subimg: The sub-image of the sprite - x: The x coordinate - y: The y coordinate **Example:** ```gml draw_sprite(spr_player, 0, x, y);
### Documentation Search ```bash $ npm run cli search "collision detection" Found 15 result(s) for "collision detection": ## Result 1: GameMaker_Language/GML_Reference/Movement_And_Collisions/Collisions/collision_point.md **Category:** Movement and Collisions **Relevance Score:** 8.5 Returns true if there is a collision at the specified point...

Performance Monitoring

$ npm run cli convert ./docs ./output Starting conversion from ./docs to ./output Found 1247 HTML files to convert ... Conversion complete! Converted 1247 files. htmlConversion: 15.43s

Development

Architecture Principles

  1. Modular Design: Each command is self-contained in its own file
  2. Shared Utilities: Common functionality in the lib/ directory
  3. Error Handling: Structured error classes with rich context
  4. Performance: Built-in timing and monitoring capabilities

Adding New Commands

  1. Create a new command file in src/commands/
  2. Extend BaseCommand for shared functionality
  3. Register the command in src/commands/index.js
  4. Follow the existing pattern for error handling and performance monitoring

Error Handling

The project uses structured error handling with contextual information:

import { ErrorHandler, ValidationError } from './lib/errors.js'; // Wrap async operations await ErrorHandler.wrapAsync(async () => { // Your async code here }, { operation: 'myOperation', context: 'additional info' }); // Handle specific errors throw new ValidationError('Invalid input', 'fieldName', inputValue);

License

MIT License - see LICENSE file for details.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes following the existing code style
  4. Submit a pull request
-
security - not tested
F
license - not found
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Provides programmatic access to GameMaker Language (GML) documentation through MCP tools for function lookup, documentation search, and comprehensive coding guidance. Includes built-in GameMaker documentation with no additional setup required.

  1. Features
    1. Requirements
      1. Installation
        1. Quick Start with npx (Recommended)
        2. Global Installation
        3. Local Development
      2. Usage
        1. CLI Documentation Tool
        2. MCP Server
        3. HTML to Markdown Conversion
      3. Project Structure
        1. Key Features
          1. Modern Node.js Architecture
          2. Documentation Management
          3. Development Experience
        2. Examples
          1. Function Lookup
          2. Performance Monitoring
        3. Development
          1. Architecture Principles
          2. Adding New Commands
          3. Error Handling
        4. License
          1. Contributing

            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/Petah/gamemaker-mcp'

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