Skip to content

3aKHP/prts-mcp

vts/v1.4.1 Feature

This release adds 1 notable feature for engineering teams evaluating rollout.

Published 15d MCP Data & Storage
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ai-agent anthropic arknights claude fanfiction game-data
+5 more
mcp mcp-server model-context-protocol prts prts-wiki

Affected surfaces

auth

Summary

AI summary

Fixed story search timeout caused by redundant zip parsing and session memory leak eviction.

Changes in this release

Feature Medium

Added E2E test suite covering MCP handshake, all 21 tools, operator data, and graceful degradation.

Added E2E test suite covering MCP handshake, all 21 tools, operator data, and graceful degradation.

Source: granite4.1:8b-q6_K@2026-05-19

Confidence: high

Dependency Medium

Installation instructions updated for direct npx run or global npm install of [email protected].

Installation instructions updated for direct npx run or global npm install of [email protected].

Source: granite4.1:8b-q6_K@2026-05-19

Confidence: low

Bugfix Medium

Session memory leak fixed by evicting MCP transports after SESSION_IDLE_TIMEOUT_MS inactivity.

Session memory leak fixed by evicting MCP transports after SESSION_IDLE_TIMEOUT_MS inactivity.

Source: granite4.1:8b-q6_K@2026-05-19

Confidence: high

Bugfix Medium

ZipStore zip instance caching now uses cached AdmZip instead of re-instantiating on each call.

ZipStore zip instance caching now uses cached AdmZip instead of re-instantiating on each call.

Source: granite4.1:8b-q6_K@2026-05-19

Confidence: low

Bugfix Medium

HTML entity decoding uses String.fromCodePoint and expanded lookup table for non-BMP Unicode.

HTML entity decoding uses String.fromCodePoint and expanded lookup table for non-BMP Unicode.

Source: granite4.1:8b-q6_K@2026-05-19

Confidence: low

Bugfix Medium

Story search robustness improved with page validation in read_activity and narrowed exception handling in search_stories and read_activity.

Story search robustness improved with page validation in read_activity and narrowed exception handling in search_stories and read_activity.

Source: granite4.1:8b-q6_K@2026-05-19

Confidence: low

Bugfix Medium

Enemy blackboard parity corrected; slice order matches Python before null filtering.

Enemy blackboard parity corrected; slice order matches Python before null filtering.

Source: granite4.1:8b-q6_K@2026-05-19

Confidence: low

Bugfix Medium

ZipStore now caches AdmZip instances instead of recreating them on each call.

ZipStore now caches AdmZip instances instead of recreating them on each call.

Source: granite4.1:30b@2026-05-19-audit

Confidence: low

Bugfix Medium

HTML entity decoding uses String.fromCodePoint and a larger lookup table with regex fallback for unknown entities.

HTML entity decoding uses String.fromCodePoint and a larger lookup table with regex fallback for unknown entities.

Source: granite4.1:30b@2026-05-19-audit

Confidence: low

Bugfix Low

Story search now validates page >= 1 in read_activity and narrows exception handling to expected error types.

Story search now validates page >= 1 in read_activity and narrows exception handling to expected error types.

Source: granite4.1:30b@2026-05-19-audit

Confidence: low

Full changelog

Fixed

  • ZipStore zip instance caching. AdmZip is now cached instead of
    re-instantiated on every exists()/readText() call. In search_stories
    without an event_id filter this was ~3000 redundant zip parses,
    exceeding the 120 s MCP client timeout.
  • Session memory leak. SESSION_IDLE_TIMEOUT_MS (default 30 min)
    evicts MCP transports left behind by clients that disconnect without
    cleanly closing their session, preventing unbounded memory growth.
  • Enemy blackboard parity. Filter/slice order corrected to match
    Python: slice first 6 entries, then filter null values.
  • HTML entity decoding. String.fromCodePoint replaces
    String.fromCharCode for correct non-BMP Unicode handling. Named entity
    table extended from 6 hardcoded replacements to a lookup table with
    regex-based fallback for unrecognized entities.
  • Story search robustness. read_activity gains page >= 1 validation.
    Exception handling in search_stories and read_activity narrowed from
    bare catch {} to expected error types. Convenience wrappers
    (searchStories, getEventSummary, getStorySummary) now use
    storyStore() for consistency.

Added

  • E2E test suite. MCP protocol-level test (e2e.test.ts) covering
    handshake, tool surface (all 21 tools), operator data, and graceful
    degradation when optional data is unavailable.

Install

# Run directly (Streamable HTTP on :3000)
npx prts-mcp-ts

# Or install globally
npm install -g [email protected]

MCP endpoint: http://localhost:3000/mcp

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track 3aKHP/prts-mcp

Get notified when new releases ship.

Sign up free

About 3aKHP/prts-mcp

MCP Server for Arknights, querying the PRTS Wiki API and serving auto-synced operator archives and voice lines from game data. Designed for fan-creation (同人創作) AI agents. Python (stdio/Docker) and TypeScript (Streamable HTTP) implementations.

All releases →

Related context

Earlier breaking changes

  • vts/v1.0.0 Public tool surface frozen; 9 MCP tool names, parameters, and response formats locked.

Beta — feedback welcome: [email protected]