PRTS MCP Server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**Language / 语言:** English | 中文
---
English
An MCP Server for Arknights fan creation (同人創作) AI agents. Powered by the PRTS Wiki MediaWiki API and auto-synced operator game data, it gives any MCP-compatible client — Claude Desktop, Claude Code, Chatbox, and more — live access to lore, operator archives, and voice lines from the world of Terra.
Implementations
This repository contains two independent implementations for different deployment scenarios:
| Directory | Language | Transport | Use case |
|-----------|----------|-----------|----------|
| python/ | Python 3.10+ | stdio + Streamable HTTP | Local Claude Desktop / Claude Code (stdio), self-hosted HTTP server |
| ts/ | TypeScript / Node.js + Bun | Streamable HTTP + stdio | Self-hosted HTTP server, local stdio for Claude Desktop / Code |
Release Lines
Two release lines ship in parallel:
| Line | Version | Tools | Status |
|------|---------|-------|--------|
| **2.8** (main) | 2.8.1 | 24 | Operator deep stats — level-specific panels, per-level skill effects, and per-tier talent effects via get_operator_basic_info actions — plus roguelike story discovery, reading, search, and character tracking. |
| **1.7 LTS** (lts/1.7) | 1.7.0 | 32 | Stable maintenance line. 1.7.x accepts only compatibility, security, data-sync, and critical bug fixes. |
The main and develop lines use the self-built arknights-data-pipeline Release exclusively for default Auto-Sync. The 1.7 LTS line retains its legacy upstream compatibility until a separate, backwards-compatible migration; changes to the new factory path must not be backported to LTS as an implicit source switch.
| Area | Python | TypeScript |
|------|--------|------------|
| MCP tools | Same 24 public tool names and required parameters (2.x) / 32 on 1.7 LTS | Same 24 (2.x) / 32 on 1.7 LTS |
| GameData | GAMEDATA_PATH or auto-synced zh_CN-excel.zip | GAMEDATA_PATH or auto-synced zh_CN-excel.zip |
| Level data | Auto-synced zh_CN-levels.zip beside GameData | Auto-synced zh_CN-levels.zip beside GameData |
| Story data | STORYJSON_PATH or auto-synced zh_CN.zip | STORYJSON_PATH or auto-synced zh_CN.zip |
| Image artwork (2.5) | Enabled by default; MediaWiki on-demand or AKDP local assets (LOCAL_IMAGE=true) | Enabled by default; MediaWiki on-demand or AKDP local assets (LOCAL_IMAGE=true) |
| Bundled fallback data | Docker image only | Docker image and published npm package (PyPI stays data-light) |
Auto-Sync data contract
Both implementations consume the self-built arknights-data-pipeline Release. New releases carry a manifest.json with the prts-mcp-data/v1 contract, source versionId, and SHA-256/size for each archive; a mismatch is rejected before activation, while pre-manifest releases remain readable during the transition. The last activated generation stays in place on download, schema, or manifest failure.
GITHUB_MIRRORS is an explicit fallback for GitHub URL access. Mirror entries have surrounding whitespace and trailing slashes normalized automatically in both implementations. In Node deployments, standard HTTP_PROXY/HTTPS_PROXY (including lowercase spellings) are honored via Undici; Bun keeps its native fetch path. Proxy support does not weaken manifest or ZIP validation.
See docs/migration-1.x-to-2.0.md for the 1.x → 2.0 breaking changes (tool consolidation, operator_name → name, output channel), and docs/migration-0.x-to-1.0.md for the 0.x → 1.0 transition.
MCP protocol compatibility
2.6.0 retains the established initialize/session flow for legacy MCP clients and adds opt-in support for the 2026-07-28 protocol era. Modern HTTP requests use the modern envelope and are stateless; they do not send Mcp-Session-Id. For stdio, the first request on a connection selects the era, so open a separate connection when changing protocol modes. See the 2.5 → 2.6 migration guide before switching a client to modern mode.
Tools
Both implementations expose the same tool set:
| Tool | Description |
|------|-------------|
| search_prts(query, limit) | Search PRTS Wiki by keyword, returns matching article titles |
| prts_page(page_title, action, ...) | Read a wiki page or metadata; template returns rendered fields from top-level templates |
| get_operator_archives(name) | Retrieve operator archive records (Chinese name) |