Publish a skill to the index
Submissions enter a review queue where a maintainer checks the manifest, runs the fixture invocation, and confirms the safety note before the entry is listed. Provide the source repository and the metadata below.
A valid SKILL.md at the repository root
Frontmatter with name, technique, category and license; a scope section that states the limits of the skill.
A runnable MCP server or reference implementation
Typed tool definitions and a sample invocation that completes against the bundled fixture data.
An instrument safety note
Anything that moves a stage, changes beam conditions, or mills material must declare it in plain language.
Reproducible outputs
Pinned dependencies and a deterministic mode so a reviewer can reproduce your reported numbers.
Submit your skill
Indexing is not certification. Listed skills are references to read and adapt — verify every procedure against your own instrument and sample before running it unattended.
SKILL.md template & folder layout
The registry repository is emskills-mcp/em-skills. Add one folder per skill under skills/<slug>/ and open a pull request. On merge, the importer validates every manifest and drops it into the moderation queue — the folder name must equal the slug in front matter.
em-skills/
├── README.md
└── skills/
├── cryo2d-classify/
│ ├── SKILL.md # required — manifest + instructions
│ ├── skill.json # optional — overrides/extends front matter
│ ├── examples/
│ │ └── invoke.json # sample tool call + expected output
│ └── fixtures/
│ └── sample.mrc # small deterministic test input
└── edax-phase-map/
└── SKILL.md---
name: Cryo-EM 2D class triage
slug: cryo2d-classify
technique: cryo-EM
category: Segmentation
kind: MCP server
summary: Ranks 2D class averages and flags junk classes before 3D refinement
description: >
Scores RELION/cryoSPARC 2D class averages on resolution, particle count and
radial symmetry, then returns a keep/discard recommendation per class.
org: Example Structural Biology Lab
repo: emskills-mcp/em-skills
version: 0.1.0
license: MIT
runtime: python 3.11
tool_call: cryo2d_classify
mcp_endpoint: https://mcp.example.org/cryo2d
tags:
- cryo-em
- 2d-classification
- qc
---
# Cryo-EM 2D class triage
## Scope
What this skill does, the data it expects (format, pixel size, box size), and
what it explicitly does not do. State the limits an agent must not exceed.
## Safety
Declare any action that touches hardware: stage movement, beam or dose changes,
aperture or valve control, milling. Read-only analysis skills state
"Read-only — no instrument control".
## Usage
```json
{
"tool": "cryo2d_classify",
"arguments": {
"job_dir": "/data/relion/Class2D/job012",
"min_particles": 500
}
}
```
Expected output shape, units, and a deterministic example result produced from
the bundled fixture.
## Reproducibility
Pinned dependencies, seed/deterministic mode, and the command a reviewer runs
to reproduce the reported numbers.
{
"slug": "cryo2d-classify",
"technique": "cryo-EM",
"category": "Segmentation",
"tool_call": "cryo2d_classify",
"tags": ["cryo-em", "qc"]
}required front matter
- name
- Human-readable skill name, e.g. “Cryo-EM 2D class triage”.
- slug
- Lowercase kebab-case id; must match the folder name.
- technique
- One of the registry techniques, one of SEM, TEM, STEM, EDS, EELS, cryo-EM, FIB.
- category
- One of the registry categories, e.g. Segmentation, Image acquisition, Calibration.
- kind
- “MCP server” or “SKILL.md”.
- summary
- One sentence, 20–200 characters, no trailing period needed.
- license
- SPDX id such as MIT, Apache-2.0, BSD-3-Clause.
- version
- Semantic version such as 0.1.0.
- runtime
- Execution environment, e.g. “python 3.11” or “node 20”.
- tool_call
- Canonical tool name agents invoke, snake_case.
optional front matter
- org
- Publishing lab, group or company. Defaults to the repo owner.
- repo
- Upstream source repository if it differs from this registry.
- mcp_endpoint
- HTTPS endpoint for a hosted MCP server.
- tags
- Up to 12 short tags, YAML list or [a, b, c].
- description
- Longer prose; falls back to the first body paragraph.
required body sections
## Scope— what the skill does and the instruments/data it assumes.## Safety— beam dose, stage motion, or sample-damage limits an agent must respect.## Usage— the exact tool call, arguments, and expected output.
Validation rejects unknown techniques or categories, non-semver versions, summaries outside 20–200 characters, and missing sections — each error names the file, the field, and how to fix it.