{"adoption": {"forks": 194, "observed_at": "2026-08-28T04:04:01.916710+00:00", "stars": 1220}, "canonical_url": "https://ross.abutalabs.com/products/12306-mcp", "card": {"archived": false, "artifact_type": "service", "description": "This is a 12306 ticket search server based on the Model Context Protocol (MCP).", "domain": ["travel", "apis", "large-language-models", "developer-tools"], "enriched": true, "function": ["mcp", "search-engine", "api-framework", "http-server"], "health_score": 97, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["Joooook/12306-mcp"], "name": "Joooook/12306-mcp", "platform": ["cli", "cross-platform"], "pushed_at": "2026-07-31T06:22:59+00:00", "repo": "Joooook/12306-mcp", "stars": 1220, "tags": ["12306", "train-tickets", "mcp-server", "china-railway", "ticket-search", "nodejs", "docker"], "topics": ["12306", "mcp", "mcp-server", "train-tickets"], "urls": [], "use_cases": ["search 12306 train tickets from an LLM chat", "query train ticket availability via MCP", "find transfer routes on China Railway 12306", "check train stops at intermediate stations", "connect Claude or other MCP clients to 12306 ticket data"], "what_it_is": "A Model Context Protocol (MCP) server that exposes 12306 (China Railway) ticket search capabilities to large language models. It provides API tools for querying tickets, filtering trains, transfer queries, and station-stop lookups over stdio or HTTP.", "when_to_avoid": ["you need actual ticket purchasing or booking, not just search", "you don't use MCP-compatible clients", "you need train booking outside China's 12306 system"], "when_to_choose": ["you want an LLM to search China Railway 12306 tickets through MCP", "you need a ready-made MCP server for train ticket queries", "you want stdio or HTTP transport with Docker support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/12306-mcp", "repo": "Joooook/12306-mcp", "role": "main", "score": 83}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.916710+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:15:55.626076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d85d24b9d266d44ba9687ba165d91109198bb1f53987d131029cc98b8288bbe", "fetched_at": "2026-08-28T04:04:01.916710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Joooook/12306-mcp"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.916710+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:15:55.626076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d85d24b9d266d44ba9687ba165d91109198bb1f53987d131029cc98b8288bbe", "fetched_at": "2026-08-28T04:04:01.916710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Joooook/12306-mcp"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:15:55.626076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d85d24b9d266d44ba9687ba165d91109198bb1f53987d131029cc98b8288bbe", "fetched_at": "2026-08-28T04:04:01.916710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Joooook/12306-mcp"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.916710+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.916710+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.916710+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:15:55.626076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d85d24b9d266d44ba9687ba165d91109198bb1f53987d131029cc98b8288bbe", "fetched_at": "2026-08-28T04:04:01.916710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Joooook/12306-mcp"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.916710+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.916710+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:15:55.626076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d85d24b9d266d44ba9687ba165d91109198bb1f53987d131029cc98b8288bbe", "fetched_at": "2026-08-28T04:04:01.916710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Joooook/12306-mcp"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.916710+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.916710+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.916710+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:15:55.626076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d85d24b9d266d44ba9687ba165d91109198bb1f53987d131029cc98b8288bbe", "fetched_at": "2026-08-28T04:04:01.916710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Joooook/12306-mcp"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.916710+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:01.916710+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:15:55.626076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d85d24b9d266d44ba9687ba165d91109198bb1f53987d131029cc98b8288bbe", "fetched_at": "2026-08-28T04:04:01.916710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Joooook/12306-mcp"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:15:55.626076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d85d24b9d266d44ba9687ba165d91109198bb1f53987d131029cc98b8288bbe", "fetched_at": "2026-08-28T04:04:01.916710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Joooook/12306-mcp"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:15:55.626076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d85d24b9d266d44ba9687ba165d91109198bb1f53987d131029cc98b8288bbe", "fetched_at": "2026-08-28T04:04:01.916710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Joooook/12306-mcp"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:15:55.626076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9d85d24b9d266d44ba9687ba165d91109198bb1f53987d131029cc98b8288bbe", "fetched_at": "2026-08-28T04:04:01.916710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Joooook/12306-mcp"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 36, "rhythm": 95}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 506, "days_push": 33, "days_rel": 34, "gap_med": 10, "n_releases_24m": 16}, "score": 83, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}