- Reliability 11/20
- Evidence is limited to the README and server.json, both non-executable; no CI workflows and no committed tests are present, and the static rubric caps reliability at 12 without verifiable execution evidence. Positive signals: the manifest declares a single PyPI package with stdio transport and a version matching the README, the seven declared tools map cleanly to the README tool table, and the README describes a transport-agnostic core (server.py) shared by stdio and HTTP with a single schema source (ticket_service.MCP_TOOLS). Deductions: there are no tests, CI, error-code taxonomy, or failure-scenario coverage; dependence on live unofficial 12306 endpoints is unmitigated and unverified; runtime claims (loaded station count, active sessions) cannot be confirmed from files; and tool argument boundaries and return shapes are unproven. Score 11.
- Security and permissions 13/20
- No red-line behavior found: no malware, credential theft, covert exfiltration, irreversible delete/pay/deploy defaults, or fabricated identity. All tools are read-only queries (tickets, price, stations, transfer, route stops, train number, time), so privilege exposure is intrinsically low and no confirmation flows are needed. Risks and deductions: all traffic targets external 12306 endpoints, i.e. unofficial third-party data scraping that may trigger throttling, IP bans, or account restriction, which the README itself warns about; there is no authn/authz, rate limiting, caching, or audit logging documented; in HTTP mode the default SERVER_HOST=0.0.0.0 exposes /mcp, /health and /schema/tools with no authentication, which is an open invocation surface if deployed publicly; input-validation, SSRF and injection surfaces are not addressed; and there is no data-flow or privacy disclosure beyond a vague 'no storage/no tampering' statement. Given the low-sensitivity read-only scope but incomplete scoping and confirmation controls, score 13.
- Maintenance 13/20
- An MIT license is present, server.json declares version 0.5.0.post20260822, and the README shows PyPI/Docker/GitHub badges plus release commands (python -m build, twine upload), indicating a release pipeline. The repo is not archived, shows 386 stars and one open issue, and uses uv.lock, pydantic-settings, strict mypy, black and isort, indicating some engineering discipline. Deductions: commit cadence, issue response latency, dependency update cadence, maintainer identity, security-response channel, and contributor governance are unverifiable from static material; there is no SECURITY.md, no CHANGELOG and no CI record; the version string embeds a future-style date (post20260822) that looks odd but cannot be confirmed as wrong; and no security disclosure path is stated. Score 13.
- Documentation 15/20
- Documentation is fairly layered: the README includes a capability table, three deployment modes (stdio, Streamable HTTP, Docker), a table of seven tools with required parameters, an environment-variable table (SERVER_HOST/SERVER_PORT/DEBUG/LOG_LEVEL), a project-structure tree, a development guide, and a disclaimer, plus six per-tool documents under docs/ said to cover parameters, return examples and usage. Deductions: no tool return-shape examples, no error-code or troubleshooting section, no rate/quota/cost disclosure; authentication and data-flow disclosures are absent; the docs/ contents are not supplied as evidence so their accuracy cannot be verified; and the 0.0.0.0 default ships without a secure-deployment warning. Positioned as 'usable with hidden assumptions and troubleshooting gaps', score 15.
- Setup experience 14/20
- Install paths are clear and multiple: one-line uvx mcp-server-12306, pip/pipx alternatives, one-line docker run -p 8000:8000, plus source install via uv sync and scripts/start_server.py. The README provides Claude Desktop-style stdio config, a Streamable HTTP url config, and Docker examples with custom ports and env vars, and prerequisites are explicit (Python >=3.10,<3.14, uv recommended, reachable 12306). Deductions: installation success is not verified under static review; packaging claims versus implementation cannot be confirmed; HTTP mode requires the user to manage ports, deployment and security boundaries; Docker tag/version sync with PyPI is unknown; and there is no troubleshooting guidance for Windows or network-restricted/proxy failures. Positioned as 'works but manual and network-dependent', score 14.