Skip to main content
Glama
consigcody94

Pythia MCP

by consigcody94

CI MCP License: GPL v3 Node TypeScript Python

Constrain beyond-Standard-Model physics from LHC Higgs measurements — directly from Claude.

Pythia wraps the Lilith library as an MCP server, giving AI assistants access to 28 particle physics analysis tools.

Getting Started  •  Tools  •  Examples  •  Architecture  •  Citations

IMPORTANT

Lilith Attribution — All physics calculations are performed by Lilith-2, developed by Sabine Kraml and collaborators at LPSC Grenoble. Pythia is an MCP interface layer. Please star the original repo and cite the Lilith papers in any research output.

Overview

The 125 GeV Higgs boson, discovered at CERN in 2012, is the cornerstone of electroweak symmetry breaking. Precision measurements of its couplings to other particles provide one of the most powerful probes for physics beyond the Standard Model (BSM).

Pythia bridges this frontier physics with conversational AI. Instead of manually running Python scripts and parsing XML, you ask Claude:

"What constraints does LHC data place on a Type-II two-Higgs-doublet model with tan(beta) = 2?"

Under the hood, Pythia generates validated XML input, invokes Lilith's likelihood engine against the full ATLAS + CMS dataset, and returns structured results — all through the Model Context Protocol.

Getting Started

Prerequisites

Requirement

Version

Node.js

>= 18.0

Python

>= 3.6

NumPy + SciPy

latest

Install

git clone https://github.com/consigcody94/pythia-mcp.git cd pythia-mcp npm install npm run build pip install numpy scipy

Configure Claude Desktop

Add to your claude_desktop_config.json:

{ "mcpServers": { "pythia": { "command": "node", "args": ["/path/to/pythia-mcp/dist/index.js"], "env": { "LILITH_DIR": "/path/to/pythia-mcp/lilith", "PYTHON_CMD": "python3" } } } }

Verify

cd lilith python run_lilith.py userinput/example_couplings.xml

You should see a -2log(likelihood) value printed to stdout.

Tools

Pythia exposes 28 tools organized into four categories.

Core Analysis

Tool

Description

compute_likelihood

Compute -2 log(L) for any BSM coupling or signal-strength scenario

compute_sm_likelihood

Standard Model reference likelihood

compute_pvalue

P-value for model comparison against SM or best-fit

scan_1d

1D parameter scan with likelihood profile (parallel execution)

scan_2d

2D parameter scan for contour plots (parallel execution)

Data Management

Tool

Description

list_experimental_data

Browse Lilith's built-in ATLAS/CMS/Tevatron datasets

get_dataset_info

Inspect a specific experimental XML measurement file

search_hepdata

Query the HEPData repository for new results

fetch_hepdata_record

Download a HEPData record by INSPIRE ID or record number

update_database

Check HEPData for new signal-strength publications

get_latest_higgs_data

Aggregate latest measurements from HEPData + CERN Open Data

Physics Models

Tool

Description

analyze_2hdm

Two-Higgs-Doublet Model (Types I, II, Lepton-specific, Flipped)

analyze_singlet_extension

Higgs singlet extension with mixing angle

get_sm_predictions

SM cross sections and branching ratios at 7-14 TeV

convert_to_signal_strength

Convert reduced couplings to signal-strength values

validate_input

Validate Lilith XML input without running the full calculation

get_version_info

Library and database version information

CERN Open Data

Tool

Description

search_cern_opendata

Search the CERN Open Data portal

get_cern_opendata_record

Retrieve record metadata by ID

list_cern_opendata_files

List downloadable files for a record

Examples

Check SM Consistency

"Compute the Standard Model likelihood and tell me if the Higgs data is consistent with the SM."

Test Modified Couplings

"Calculate the likelihood for C_t = 0.9, C_V = 1.1"

{ "mode": "couplings", "Ct": 0.9, "CV": 1.1 }

Two-Higgs-Doublet Model

"Analyze a Type-II 2HDM with tan(beta) = 2 and sin(beta - alpha) = 0.99"

{ "type": "II", "tanBeta": 2, "sinBetaMinusAlpha": 0.99 }

Parameter Scan

"Scan the C_V–C_F plane from 0.8 to 1.2"

{ "param1": { "name": "CV", "min": 0.8, "max": 1.2, "steps": 50 }, "param2": { "name": "CF", "min": 0.8, "max": 1.2, "steps": 50 } }

Physics Reference

Reduced Couplings (kappa-framework)

The kappa-framework parameterizes deviations from SM Higgs couplings as multiplicative modifiers:

Parameter

Description

SM Value

C_V

Vector boson coupling (W, Z)

1.0

C_t

Top quark coupling

1.0

C_b

Bottom quark coupling

1.0

C_c

Charm quark coupling

1.0

C_tau

Tau lepton coupling

1.0

C_mu

Muon coupling

1.0

C_g

Effective gluon coupling (loop-induced)

1.0

C_gamma

Effective photon coupling (loop-induced)

1.0

Signal strength: μ = σ_obs / σ_SM. A value of μ = 1 is consistent with the Standard Model.

Supported Production & Decay Modes

Production: ggH, VBF, WH, ZH, ttH, tH, bbH

Decay: γγ, ZZ, WW, bb, ττ, μμ, cc, Zγ, gg, invisible

Architecture

pythia-mcp/ ├── src/ │ ├── index.ts # MCP server, request handlers, tool dispatch │ ├── utils.ts # Validation, XML generation, physics models │ └── utils.test.ts # Unit tests (71 tests via Vitest) ├── lilith/ # Bundled Lilith-2 library │ ├── run_lilith.py # CLI entry point │ ├── lilith/ # Core Python package │ │ ├── main.py # Lilith class — likelihood engine │ │ └── internal/ # Couplings, BRs, likelihood computation │ ├── data/ # Experimental database (ATLAS, CMS, Tevatron) │ └── userinput/ # Example XML input files ├── .github/workflows/ # CI: build (Node 18/20/22) + test ├── package.json ├── tsconfig.json └── vitest.config.ts

Security

  • Input validation — All coupling, mass, and branching-ratio parameters are range-checked before use.

  • XML injection prevention — All user-supplied values are escaped before embedding in XML.

  • Path traversal protection — Dataset paths are resolved and verified against a base directory.

  • ReDoS prevention — User-supplied regex patterns are length-limited and checked for dangerous constructs.

  • API safety — HTTP requests enforce 30s timeouts, redirect depth limits, and response caching with TTL.

  • Subprocess limits — Python process output is capped at 1 MB to prevent memory exhaustion.

Development

npm install # Install dependencies npm run build # Compile TypeScript npm test # Run unit tests npm run test:watch # Run tests in watch mode npm run dev # Run with ts-node (development)

Environment Variables

Variable

Default

Description

LILITH_DIR

../lilith (relative to dist)

Path to Lilith installation

PYTHON_CMD

python3

Python interpreter command

Citations

If you use Pythia in research, you must cite the Lilith papers:

@article{Bernon:2015hsa, author = "Bernon, J\'er\'emy and Dumont, B\'eranger", title = "{Lilith: a tool for constraining new physics from Higgs measurements}", journal = "Eur. Phys. J. C", volume = "75", pages = "440", year = "2015", doi = "10.1140/epjc/s10052-015-3645-9", eprint = "1502.04138", archivePrefix = "arXiv" } @article{Kraml:2019sis, author = "Kraml, Sabine and others", title = "{Lilith-2: improved constraints on new physics from Higgs measurements}", year = "2019", eprint = "1908.03952", archivePrefix = "arXiv" }

Acknowledgments

Sabine Kraml & Lilith Team

LPSC Grenoble — physics engine

ATLAS & CMS Collaborations

Higgs boson measurements

HEPData

Durham / CERN — data archive

Anthropic

Model Context Protocol

References

Resource

Link

Lilith-2 source

github.com/sabinekraml/Lilith-2

Lilith paper

arXiv:1502.04138

HEPData

hepdata.net

CERN Open Data

opendata.cern.ch

LHC Higgs XS WG

twiki.cern.ch/LHCPhysics/LHCHWG

Model Context Protocol

modelcontextprotocol.io

License

GNU General Public License v3.0 — Pythia and the bundled Lilith library are both GPL-3.0 licensed.

"The Higgs boson is the key to understanding the origin of mass in the universe." — Peter Higgs

Built for open science and particle physics research.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/consigcody94/pythia-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server