Skip to main content
Glama
MTA:SA Documentation MCP Server

MTA:SA Documentation MCP Server

MTA:SA Documentation MCP Server

An MCP (Model Context Protocol) server that gives AI assistants reliable, structured access to Multi Theft Auto: San Andreas documentation.

It combines fast keyword search, semantic matching, and SQLite-backed caching so agents can discover the right APIs and fetch authoritative docs without manual wiki scraping.

Highlights

  • 11 MCP tools for discovery, docs retrieval, cache operations, and workflow guidance

  • Event-first discovery (search_events, find_events_for_task)

  • Semantic task matching with SQLite vector search

  • Smart keyword expansion (for example, database -> db* APIs)

  • Built-in deprecation detection and warnings

  • Local SQLite cache with configurable lifetime

  • CI verification gates, smoke tests, and release automation

Related MCP server: Documentation Retrieval MCP Server (DOCRET)

Installation

Requirements:

  • Node.js 24+

  • Bun 1.3+ (optional runtime)

  • pnpm 10+ (for local development)

Launcher note:

  • You can launch/install via npx, pnpx, bunx, or yarn dlx-style flows.

  • Runtime support is cross-runtime: Node.js (via node:sqlite) and Bun (via bun:sqlite).

npm install -g mtasa-docs-mcp

or:

pnpm add -g mtasa-docs-mcp

Quick install

Add mtasa-docs MCP server to Cursor

From source

git clone https://github.com/Luminaire1337/mtasa-docs-mcp.git
cd mtasa-docs-mcp
pnpm install
pnpm build

If your environment skips optional native dependencies, run:

pnpm install --force

MCP Client Setup

Cursor (manual)

Global: ~/.cursor/mcp.json

Project: .cursor/mcp.json

{
  "mcpServers": {
    "mtasa-docs": {
      "command": "npx",
      "args": ["-y", "mtasa-docs-mcp"]
    }
  }
}

VS Code (manual)

Workspace: .vscode/mcp.json

User: Command Palette -> MCP: Open User Configuration

{
  "servers": {
    "mtasa-docs": {
      "command": "npx",
      "args": ["-y", "mtasa-docs-mcp"]
    }
  }
}

Or add it from terminal:

code --add-mcp "{\"name\":\"mtasa-docs\",\"command\":\"npx\",\"args\":[\"-y\",\"mtasa-docs-mcp\"]}"

Claude Code (CLI)

claude mcp add-json mtasa-docs '{"type":"stdio","command":"npx","args":["-y","mtasa-docs-mcp"]}'

OpenCode (manual)

Global config file: ~/.config/opencode/opencode.json

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mtasa-docs": {
      "type": "local",
      "command": ["npx", "-y", "mtasa-docs-mcp"],
      "enabled": true
    }
  }
}

Antigravity (manual)

Config file: ~/.gemini/antigravity/mcp_config.json

{
  "mcpServers": {
    "mtasa-docs": {
      "command": "npx",
      "args": ["-y", "mtasa-docs-mcp"]
    }
  }
}

Generic MCP clients (manual)

{
  "mcpServers": {
    "mtasa-docs": {
      "command": "node",
      "args": ["/absolute/path/to/mtasa-docs-mcp/build/index.js"]
    }
  }
}

If mtasa-docs-mcp is already published, replace the command with:

{
  "mcpServers": {
    "mtasa-docs": {
      "command": "npx",
      "args": ["-y", "mtasa-docs-mcp"]
    }
  }
}

Available Tools

  • search_functions

  • search_events

  • find_functions_for_task

  • find_events_for_task

  • get_function_docs

  • get_multiple_function_docs

  • get_function_examples

  • list_functions_by_category

  • get_cache_stats

  • recommend_doc_workflow

  • clear_cache

Development

pnpm build
pnpm test
pnpm test:runtime
pnpm smoke
pnpm smoke:cross-runtime
pnpm verify
pnpm verify:full

Useful checks:

  • pnpm check:versions - keep package.json and MCP server version aligned

  • pnpm check:changelog - ensure CHANGELOG.md has current release heading

  • pnpm check:tool-names - prevent legacy tool naming regressions

  • pnpm test:runtime - run integration runtime tests for Node and Bun smoke paths

  • pnpm smoke:cross-runtime - run smoke checks against both Node and Bun runtimes

Scripts are located in scripts/ (build, smoke, release guards).

Release Flow

Release automation is handled by .github/workflows/release.yml.

  1. Bump version in package.json and src/index.ts.

  2. Move release notes from Unreleased into a versioned section in CHANGELOG.md using ## [x.y.z] - YYYY-MM-DD.

  3. Create and push a release tag: git tag v<version> && git push origin v<version>.

Branching policy:

  • Before v1.0.0: direct pushes to master are allowed.

  • Starting at v1.0.0: use PR-based development for all changes to master.

On release tag pushes (v*.*.*), the release workflow:

  • checks whether the version already exists on npm

  • runs pnpm verify:full

  • publishes to npm with provenance using trusted publishing (OIDC)

  • publishes server.json to the MCP Registry using GitHub OIDC

  • creates/updates the GitHub Release from CHANGELOG.md

  • verifies installability of the published package and runs smoke tests

Maintainer setup for npm trusted publishing

In npm package settings, configure a trusted publisher for this repository and workflow:

  • Repository: Luminaire1337/mtasa-docs-mcp

  • Workflow file: .github/workflows/release.yml

  • Environment (if used): match your GitHub Actions configuration

Maintainer setup for MCP Registry publishing

  • Ensure server.json exists at repository root and uses this package name: mtasa-docs-mcp

  • Configure MCP Registry ownership for io.github.Luminaire1337/mtasa-docs-mcp

  • Release workflow uses mcp-publisher login github-oidc and publishes only when the npm publish gate passes

CI Workflows

  • .github/workflows/ci.yml - verification on push/PR to master (Ubuntu + macOS) and optional live wiki integration tests on labeled PRs

  • .github/workflows/release.yml - automated publish and GitHub release on release tags (v*.*.*)

Project Docs

  • AGENTS.md - architecture and contributor guidance

  • FEATURES.md - roadmap and ideas

  • CHANGELOG.md - release history

  • SECURITY.md - vulnerability disclosure policy

License

GNU General Public License v3.0. See LICENSE.

Available Tools

11 tools
clear_cacheB

Clear the MTA:SA documentation cache for a specific function or all functions.

Inputs: function_name (required).

find_events_for_taskA

Task-to-events matcher. Use when you need event names for handlers/triggers (e.g., resource lifecycle, player joins, marker hits). Returns ranked MTA:SA events only.

Inputs: task_description (required), side, limit.

find_functions_for_taskA

Task-to-functions matcher. Use this FIRST when user intent is high-level (e.g., 'vehicle dealership', 'login panel'). Returns ranked MTA:SA functions/events optimized for follow-up documentation retrieval.

Inputs: task_description (required), limit.

get_cache_statsB

Get statistics about the MTA:SA documentation cache.

Inputs: no named parameters.

get_function_docsA

Fetch authoritative docs for exactly ONE MTA:SA function/event by canonical name. Preferred over manual web browsing. For multiple names, use get_multiple_function_docs in one call.

Inputs: function_name (required), use_cache, include_optional_arguments.

get_function_examplesA

Get only code examples for one function/event after docs lookup. Use when writing implementation snippets and tests.

Inputs: function_name (required).

get_multiple_function_docsA

Batch docs retrieval for implementation phase. Provide exact function/event names (ideally from search/find tools) and get combined authoritative docs in one response.

Inputs: function_names (required), include_examples, include_optional_arguments.

list_functions_by_categoryA

Enumerate canonical function/event names in a category. Useful for discovery when query terms are vague.

Inputs: category (required), limit.

recommend_doc_workflowA

Planner tool that tells LLMs exactly which mtasa-docs tools to call next for a given task. Use this to enforce MCP-first workflows and avoid manual wiki scraping.

Inputs: task_description (required), known_function_names.

search_eventsA

Event discovery tool. Search MTA:SA client/server events only (not regular functions), then chain into docs tools with exact event names.

Inputs: query (required), side, limit.

search_functionsA

Primary discovery tool. Search MTA:SA functions and events by name or keyword before coding. Returns canonical function names with side/category so LLMs can reliably chain into docs tools.

Inputs: query (required), side, limit.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 11 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: search tools (search_functions, search_events) differ from task matchers (find_functions_for_task, find_events_for_task), retrieval tools handle single/batch/examples, and cache/listing/planner serve unique roles. No overlap or confusion.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun snake_case pattern (e.g., clear_cache, search_functions, get_function_docs). No mixing of cases or verb styles, making the pattern predictable and easy to navigate.

    Tool Count5/5

    With 11 tools, the server is well-scoped for its documentation purpose. Each tool earns its place, covering search, retrieval, cache management, category listing, and workflow planning without excess or deficiency.

    Completeness5/5

    The tool surface provides a complete workflow: discover (search/task matchers), retrieve (docs, examples, batch), manage (cache stats/clear), explore (category listing), and plan (workflow recommender). No obvious gaps for a documentation server.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers