<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="/static/oaitohtml.xsl"?>

<!--
<?xml-stylesheet type="text/xsl" href="/oaitohtml.xsl"?>
-->

<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <responseDate>2026-10-12T12:47:15Z</responseDate>
    <request verb="GetRecord" metadataPrefix="oai_dc" identifier="10.57760/sciencedb.013wx" >https://www.scidb.cn/oai</request>
<GetRecord>
    <record>
    <header >
    <identifier>10.57760/sciencedb.013wx</identifier>
    <datestamp>2026-09-28T09:52:00Z</datestamp>
</header>
    <metadata>
        
<oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
  <dc:date>2026-09-28</dc:date>
  <dc:title>Replication package: the MCP server ecosystem</dc:title>
  <dc:identifier>doi:10.57760/sciencedb.013wx</dc:identifier>
  <dc:language>en</dc:language>
  <dc: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 &amp;mdash; 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&amp;ndash;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&amp;ndash;7 rebuild every raw input from public sources and need network access. Steps 8&amp;ndash;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.</dc:description>
  <dc:subject>MCP; enrichment; validation</dc:subject>
  <dc:creator>陈俊安</dc:creator>
  <dc:rights>PUBLIC</dc:rights>
  <dc:rights>https://creativecommons.org/licenses/by-sa/4.0/</dc:rights>
  <dc:type>dataset</dc:type>
  <dc:publisher>Science Data Bank</dc:publisher>
</oai_dc:dc>

    </metadata>
</record>
</GetRecord>
</OAI-PMH>