MTA:SA文档MCP服务器

一个为AI助手提供可靠、结构化访问《侠盗猎车手:圣安地列斯》文档的模型上下文协议服务器,结合了快速关键词搜索、语义匹配和SQLite缓存功能。

  • by Luminaire1337
  • TypeScript
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 Luminaire1337/mtasa-docs-mcp

使用说明

MTA:SA文档MCP服务器

MCP(模型上下文协议)服务器, 结构化访问《Multi-Theft Auto:San Andreas》文档。

它结合了快速关键字搜索、语义匹配和SQLite支持的缓存,因此 代理可以发现正确的API并获取权威文档,而无需手动 维基抓取。

亮点

  • 11个MCP工具,用于发现、文档检索、缓存操作和工作流 指导
  • 事件优先发现(search_events, find_events_for_task)
  • 基于SQLite向量搜索的语义任务匹配
  • 智能关键字扩展(例如, database -> db* API)
  • 内置弃用检测和警告
  • 具有可配置生存期的本地SQLite缓存
  • CI验证门、烟雾测试和发布自动化

安装

要求:

  • Node.js 24+
  • Bun 1.3+(可选运行时)
  • pnpm 10+(用于当地发展)

启动器说明:

  • 您可以通过以下方式启动/安装 npx, pnpx, bunx,或纱线dlx风格的流动。
  • 运行时支持跨运行时:Node.js(通过 node:sqlite)和Bun(通过 bun:sqlite).

来自npm(推荐)

npm install -g mtasa-docs-mcp

或者:

pnpm add -g mtasa-docs-mcp

快速安装

来源

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

如果您的环境跳过可选的本机依赖关系,请运行:

pnpm install --force

MCP客户端设置

光标(手动)

全球的: ~/.cursor/mcp.json

项目: .cursor/mcp.json

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

VS代码(手动)

工作区: .vscode/mcp.json

用户:命令面板-> MCP: Open User Configuration

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

或者从终端添加:

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

克劳德代码(CLI)

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

OpenCode(手动)

全局配置文件: ~/.config/opencode/opencode.json

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

反重力(手动)

配置文件: ~/.gemini/antigravity/mcp_config.json

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

通用MCP客户端(手动)

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

如果 mtasa-docs-mcp 已发布,请将该命令替换为:

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

可用工具

  • 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

发展

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

有用的检查:

  • pnpm check:versions -保持 package.json 与MCP服务器版本对齐
  • pnpm check:changelog -确保 CHANGELOG.md 具有当前版本标题
  • pnpm check:tool-names -防止遗留工具命名回归
  • pnpm test:runtime -对Node和Bun烟雾路径运行集成运行时测试
  • pnpm smoke:cross-runtime -对Node和Bun运行时运行烟雾检查

脚本位于 scripts/ (建造、吸烟、释放警卫)。

释放流量

发布自动化由以下人员处理 .github/workflows/release.yml.

  1. 凹凸版本 package.json 和 src/index.ts.
  2. 从以下位置移动发行说明 Unreleased 进入中的版本化部分 CHANGELOG.md 使用 ## [x.y.z] - YYYY-MM-DD.
  3. 创建并推送发布标签: git tag v<version> && git push origin v<version>.

分支策略:

  • 之前 v1.0.0:直接推送 master 是允许的。
  • 开始于 v1.0.0:使用基于PR的开发进行所有更改 master.

发布标签推送(v*.*.*),发布工作流程:

  • 检查npm上是否已存在该版本
  • 跑 pnpm verify:full
  • 使用可信发布(OIDC)将源代码发布到npm
  • 发布 server.json 使用GitHub OIDC访问MCP注册表
  • 从以下位置创建/更新GitHub版本 CHANGELOG.md
  • 验证已发布包的可安装性并运行冒烟测试

npm可信发布的维护设置

在npm包设置中,为此存储库配置一个受信任的发布者,然后 工作流:

  • 存储库: Luminaire1337/mtasa-docs-mcp
  • 工作流文件: .github/workflows/release.yml
  • 环境(如果使用):匹配您的GitHub Actions配置

MCP注册表发布的维护程序设置

  • 确保 server.json 存在于存储库根目录,并使用以下包名: mtasa-docs-mcp
  • 为配置MCP注册表所有权 io.github.Luminaire1337/mtasa-docs-mcp
  • 发布工作流使用 mcp-publisher login github-oidc 仅发布 当npm发布门通过时

CI工作流

  • .github/workflows/ci.yml -推送/PR验证 master (Ubuntu+ macOS)和可选的标记PR上的实时wiki集成测试
  • .github/workflows/release.yml -自动发布和GitHub发布 释放标签(v*.*.*)

项目文档

  • AGENTS.md -架构和贡献者指南
  • FEATURES.md -路线图和想法
  • CHANGELOG.md -发布历史记录
  • SECURITY.md -漏洞披露政策

许可证

GNU通用公共许可证v3.0。看 LICENSE.