How to Get on the Marketplace
Anyone can submit an MCP server to the FrootAI marketplace by opening a pull request. This walkthrough mirrors the maintainer process so your PR lands green the first time.
The marketplace data is open (CC0-1.0). A listing is an attach spec plus trust evidence β both reviewable in the PR.
Before you start
Youβll touch two directories in the frootai/ repo:
orchard/registry/mcp-specs/β the attach spec (<slug>.json).orchard/registry/mcp-trust-evidence/β the per-publisher evidence file.
Pick a slug: lowercase kebab-case, and slug === filename === tool_prefix.
1. Establish trust for the publisher
The specβs publisher must already be a knownPublishers key in trust.json.
If your publisher isnβt there yet, add the trust evidence first:
- Copy
mcp-trust-evidence/_template.mdto<publisher>.md. - Fill the frontmatter:
publisher,tier,servers_covered,last_reviewed,reviewer, and thesignalsblock. - Document at least one substantive positive signal for the
verified-publishertier (community servers attach behind a prompt and donβt require evidence).
Contact details never go in the committed file β they live in a gitignored
*.contact.local.mdoverlay.
2. Author the attach spec
cp _template.json <slug>.json # then fill every fieldRequired fields include transport (stdio command/args or an http-sse url),
version_pin, env_vars, auth, sample_tools, destructive_tools, and at
least one known_limitations entry. Keep slug === filename === tool_prefix.
Never put a literal secret in args or env_passthrough β pass variable
names only.
3. Validate locally
From frootai-core/:
node tests/marketplace/specs-live.smoke.test.js
node tests/marketplace/spec-schema.smoke.test.js
node tests/marketplace/validate-spec.smoke.test.js4. Seed the snapshot + docs
node scripts/marketplace/snapshot-tools.mjs <slug> --write
node scripts/marketplace/build-spec-docs.mjs --writeRun the snapshot with FAI_SNAPSHOT_LIVE=1 β¦ --live --write to capture the real
tools/list.
5. Add the attach E2E + run the full suite
Create tests/marketplace/specs/<slug>.test.mjs (a 2-line wrapper around
runAttachE2E) and add <slug> to the matrix in
.github/workflows/marketplace-attach-validate.yml, then:
node scripts/marketplace/run-marketplace-tests.jsCI invariants your PR must satisfy
slug === filename === tool_prefix.publisherresolves totrust.jsonat the declaredtrusttier.- No literal secrets in
args/env_passthrough. version_pinis well-formed andtested_versionis in range (orhosted).- At least one substantive limitation + its transport-derived gotcha.
- Committed docs + snapshots stay byte-fresh.
After it merges
Your server appears in the marketplaceΒ with
its trust badge, install count, and copy-ready mcp.json blocks.
See also
- Whatβs Federation? β why specs, namespacing, and trust exist.
- How to Attach a Server β the consumer-side attach guide.
- Trust Tiers β how publishers are classified and promoted.