Data · dataset · 2026
Replication package: the MCP server ecosystem
Listed in ScienceDB
Description
Replication package: the MCP server ecosystemCode, samples, generated tables and human validation material for:The Model Context Protocol Server Ecosystem: An Empirical Study of Quality, Security, and Evolution — Junan Chen, University of Electronic Science and Technology of China.What is hereDirectoryContentssrc/, scripts/The pipeline: harvest, analysis, enrichment, validation, packagingconfig/config.yamlEvery run parameter, including the freeze dateresults/tables/The 30 result tables the manuscript reportsresults/validation/Coding worksheets, evidence packs, agreement statistics, the T1 testresults/figures/Figures 1–4 as generateddocs/Research plan, all three codebook versions, threats to validity, human task listpaper/Manuscript source, fact sheet, style and compliance toolingdata/interim/Seeded sample records and the harvest cursorWhat is not here, and whyThe raw registry harvest (data/raw/registry.jsonl, 131 MB and growing) is not redistributed.
The upstream registry at registry.modelcontextprotocol.io is its authoritative copy, and re-publishing a snapshot invites the two copies to diverge. MANIFEST.csv records the SHA-256 of the snapshot this study used, so a fresh harvest can be checked against it.The HTTP cache under data/cache/ is also omitted: it is a performance artefact, and every entry can be regenerated from the public sources.Reproducing the studycd mcp-ecosystem-replication python -m pip install -r requirements.txt python scripts/01_harvest_registry.py # data/raw/registry.jsonl python scripts/02_analyze_registry.py # results/tables python scripts/03_enrich_packages.py --workers 8 python scripts/04_extract_tools.py --sample 1200 --seed 20260924 python scripts/05_enrich_github.py --releases --sample 800 --seed 20260927 python scripts/06_cross_analysis.py python scripts/10_ingest_part_a.py --codes results/validation/T1.txt python scripts/11_ingest_part_b.py python scripts/12_ingest_part_c.py python scripts/13_interrater.py python scripts/16_version_vs_release.py python scripts/17_build_facts.py Steps 1–7 rebuild every raw input from public sources and need network access.
Read the rest (3 more)
Steps 8–18 run offline against what those produce. Every step is resumable and caches its HTTP responses, so an interrupted run continues where it stopped.The reproduce GitHub workflow runs the offline steps and verifies MANIFEST.csv on every push.Verifying the packagepython scripts/verify_manifest.py This recomputes the SHA-256 of every file listed in MANIFEST.csv and fails on any mismatch. Line endings matter: .gitattributes normalises the repository to LF, and the manifest was generated on a check-out in that state.DeterminismBoth sampling steps use recorded seeds (20260924 for tool extraction, 20260927 for repository enrichment), and the drawn sets are stored under data/interim/.
Re-running with the same registry snapshot reproduces the same samples. Re-running against a newer snapshot will not, which is why the freeze date is a configuration value rather than a constant in the code.LicenceCode under MIT (LICENSE); data, tables and documents under CC-BY-4.0 (LICENSE-DATA.md).Building the manuscript PDFpaper/latex/mcp-ecosystem.tex compiles with Elsevier's CAS bundle (cas-dc.cls, cas-common.sty, cas-model2-names.bst).
Those files are the publisher's copyrighted material and are deliberately not redistributed here; download them from the journal's own template page and place them beside the .tex before running:powershell -ExecutionPolicy Bypass -File paper/build.ps1 The build also runs the journal-compliance audit, the citation check and the style metrics, so a clean run confirms the manuscript still meets the requirements the paper reports.
Links
Where it is published
- DOI doi.org/10.57760/sciencedb.013wx ↗
DOI / persistent id · from scidb cn
Catalogue records · 1
- OAI-PMH record scidb.cn/oai?verb=GetRecord&metadataPrefix=oai_dc&identifier=10.57760%2… ↗
metadata API · from scidb cn
Topics
- From keywords
- Earth & Environmental Science · Engineering · Humanities · Life Sciences · Social Science
- Inferred from text
- Bioinformatics and computational biology 71%
Provenance · 1 source records, 11 field assertions
| Source | Key | Last seen | Raw |
|---|---|---|---|
| ScienceDB | 10.57760/sciencedb.013wx | 9 d ago | JSON v1 |
| Field | Assertion | Extractor | Evidence |
|---|---|---|---|
| access_level | source · scidb cn | connector:scidb_cn@1.0.0 | |
| concepts[field].anzsrc:group:3102 | enrichment · scidb cn | taxonomy-embedding@1.0.0 | title+keywords+description (71%) |
| concepts[field].local:field:earth-environmental | mapping · scidb cn | connector:scidb_cn@1.0.0 | |
| concepts[field].local:field:engineering | mapping · scidb cn | connector:scidb_cn@1.0.0 | |
| concepts[field].local:field:humanities | mapping · scidb cn | connector:scidb_cn@1.0.0 | |
| concepts[field].local:field:life-sciences | mapping · scidb cn | connector:scidb_cn@1.0.0 | |
| concepts[field].local:field:social-science | mapping · scidb cn | connector:scidb_cn@1.0.0 | |
| description | source · scidb cn | connector:scidb_cn@1.0.0 | /metadata/dc/description |
| license | source · scidb cn | connector:scidb_cn@1.0.0 | /metadata/dc/rights |
| publication_date | source · scidb cn | connector:scidb_cn@1.0.0 | |
| title | source · scidb cn | connector:scidb_cn@1.0.0 | /metadata/dc/title |