MCP server that serves cosmology analysis tools for power spectrum computation, MCMC parameter estimation, and visualization
This is a specialized cosmology/science MCP server with 24 tools across data loading, analysis, MCMC inference, visualization, and arXiv integration. The server shows SIGNIFICANT QUALITY GAPS across naming clarity, parameter descriptions, schema completeness, and error handling. While tool names are mostly action-oriented (e.g., compute_power_spectrum, load_observational_data), many parameter descriptions are minimal or missing context. Input schemas are present but often lack proper typing (parameters use bare 'string' types with dataset_name references rather than enumerated acceptable values). Output schemas are largely undocumented. Several tools accept positional dataset names instead of typed references, increasing hallucination risk. Error handling is minimal, tools do not guide LLM recovery or categorize failures. The design conflates data-passing patterns (agents expected to share dataset names) with stateful session management, which is fragile for multi-turn agent workflows. This server lands in the 'C-to-D' grade range, acceptable for a specialized research tool but well below production baseline for general-purpose agent use.
Clear all datasets from session.
Compute histogram for a dataset.
Compute percentiles for a dataset.
Compute matter power spectrum P(k) for given cosmological parameters using CLASS.
Compute summary statistics for a dataset.
Compute power spectrum suppression ratio P(k) / P_reference(k).
Create k-grid for theoretical power spectrum predictions.
Dataset-Name Parameters Lack Type Safety. Many tools accept 'k_values', 'Pk_obs', 'param_bounds_name' as STRING parameters that refer to dataset names stored in session state. No enum of valid dataset names is provided, and no validation confirms the dataset exists before passing to the tool. This pattern invites hallucinated dataset names and silent failures. Example: compute_power_spectrum(k_values='nonexistent_dataset') succeeds at schema validation but fails at runtime.
Minimal Parameter Descriptions in Compute/Analysis Tools. Parameters like 'P_k_max_h_Mpc', 'A_s', 'n_s', 'z_pk', 'm_ncdm' have descriptions that name the parameter but provide minimal guidance on valid ranges, typical values, or why an LLM would choose one value over another. Example: 'A_s' is described only as 'Scalar amplitude of primordial perturbations (default: 2.1e-9)', no guidance on the valid range (e.g., ~1e-10 to ~1e-8) or when a non-default value is appropriate.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 51 | - | v1 |
Delete a dataset from session.
Get detailed info about a dataset.
Download a paper PDF from arXiv by its ID.
Download arXiv paper PDF and extract full text to TXT file for easier reading.
List all files in the out/ directory with their absolute paths.
List all datasets in session.
List all files in a directory.
List available data files on the server.
Load eBOSS DR14 Lyman-alpha forest power spectrum data.
Load P(k) power spectrum data into session.
Create TWO-PANEL plot: power spectra comparison + ratio to first model.
Plot suppression ratios P(k)/P_reference(k) in standalone single-panel figure.
Preview first N values from a dataset.
Read and return the contents of a text file.
Run MCMC parameter estimation for cosmological power spectrum fitting.
Search arXiv for papers matching the query and return their metadata.
Set MCMC parameter bounds and store as DataFrame in session.
Output Schemas Undocumented. Most tools do not document what they return. Example: compute_power_spectrum returns a STRING (dataset_name?) but the description does not state this explicitly or describe the structure of the stored dataset. An LLM cannot plan downstream calls if it doesn't know what fields are available. This forces discovery via describe_dataset for every result.
No Error Guidance for Dataset Lookup Failures. If compute_power_spectrum is called with a non-existent k_values dataset, the tool likely raises a KeyError or AttributeError. The error message does not guide the LLM to call list_datasets() or create_theory_k_grid() to recover. This breaks the error classification pattern and forces trial-and-error.
No Idempotency Guarantees Documented. Tools like run_mcmc_cosmology execute expensive MCMC chains. If an LLM retries due to ambiguous error, a duplicate chain runs. No tool description indicates idempotency, and no idempotentHint annotation is present in the schema. Agents cannot safely retry.
Visualization Tools (plot_*) Accept 5 Optional Model Parameters Without Clear Guidance. plot_power_spectra accepts model1_pk through model5_pk with optional corresponding names. The tool does not state: (a) How many models can be plotted, (b) What happens if only model2_pk is provided but not model1_pk (ordering?), (c) Whether the order matches the legend, or (d) How the ratio panel chooses the reference. This ambiguity forces the LLM to guess or fail.
No Destructive/Confirmation Pattern on delete_dataset and clear_session. These tools irreversibly erase data. No tool description mentions this consequence, no confirmation step is offered, and no destructiveHint annotation is present in the schema. An agent could accidentally call clear_session() and lose all loaded cosmology results.
Pagination and Result Limits Absent. search_arxiv accepts max_results (default: 5) but provides no guidance on pagination for larger result sets. compute_statistics and compute_histogram do not document limits on dataset size or output rows. An agent could request histograms for a million-row dataset and exhaust context or cause timeouts.
Missing Tool Annotations (readOnlyHint, destructiveHint, idempotentHint). No tool in the server declares these MCP 2025-08+ schema properties. Tools like load_eboss_data should be readOnly; delete_dataset and clear_session should be destructive; idempotent tools should declare it. Without these hints, agents cannot make safe scheduling decisions.