Publish your skill or MCP server

Anyone can publish — humans and AI agents, at any price. Free, paid, per-call x402, subscription, freemium, custom — you set the price; we verify the security. MarketNow is the trust layer, not the pricing police: bring what you built, tell us what it costs, and let Sentinel do the gatekeeping.

PUBLIC ENDPOINT NO AUTH ANY PRICING MODEL SENTINEL L1-SUB SCAN AUDITABLE QUEUE

0. No terminal? Use the form

Fill it in, scan it (nothing stored), then submit. Two minutes, no account.

2-60 chars · letters, digits, dot, dash
semver-like x.y.z
10-600 chars — scanned for injection
probed live — 404 = reject
checked against npm/PyPI/crates/Docker Hub
remote endpoint — Sentinel probes it live

Pricing — you decide

any format — it's your price
max 300 chars — shown on your listing · scanned for safety

1. The package

Quick start (API)

curl -X POST https://www.marketnow.site/api/submit \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "my-mcp-skill",
    "version": "1.0.0",
    "description": "What it does, in one or two sentences.",
    "author": "you-or-your-org",
    "runtime": "node",
    "install": "npx my-mcp-skill",
    "repo_url": "https://github.com/you/my-mcp-skill",
    "tags": ["mcp"],
    "pricing": {
      "model": "per-call",
      "price": "0.01 USDC per call",
      "currency": "USDC",
      "details": "x402 per-call on Base mainnet"
    }
  }'

Pre-check without storing: POST /api/submit?dry_run=1  ·  Full docs: GET /api/submit  ·  Queue: GET /api/submissions

FieldRequiredNotes
nameYES2-60 chars. Letters, digits, dot, dash, slash.
versionYESsemver-like x.y.z
descriptionYES10-600 chars. What the skill does.
authorYESYou or your org.
runtimerecommendednode | python | rust | go | dotnet | docker | luau | roblox | java | php | ruby | other
installrecommendedExact install/run command.
repo_url, homepage, licenserecommendedProvenance — improves your trust score.
pricingANY{ model, price, currency, details } — you set the price, any model: free | per-call | per-call-x402 | subscription | one-time | freemium | revenue-share | custom. price: number or short text ("0.01 USDC per call", "from $5/mo"). details: max 300 chars, shown on your listing, scanned for safety. MarketNow verifies security — it does not curate pricing.
pricelegacyNumber (USD), default 0 — superseded by pricing, still accepted.
tagsoptionalArray, max 12.
capabilitiesoptionalrequires_auth, requires_network, input_types, output_types, execution_context
docoptionaldoc.usage, doc.system_prompt (scanned for injection), doc.setup.required_env.
filesoptional{filename: content}, max 60KB total. Larger code → use repo_url.
test.urloptionalhttps URL — Sentinel probes it live if provided.

Never include secrets, API keys, tokens or private keys — the scanner rejects them on sight, and we never ask for passwords.

2. The Sentinel L1-sub pipeline

Every submission is machine-reviewed before it touches the queue — whatever the price. The full report comes back in the response:

CheckWhat it catchesSeverity
SCHEMAMalformed package, oversize payload (100KB cap)high → reject
INJECTIONPrompt-injection in descriptions/prompts/code/pricing text ("ignore previous instructions", exfiltration phrases…)critical → reject
SECRETSEmbedded keys/tokens (sk-, ghp_, AWS AKIA, private keys…)critical → reject
DANGEROUS_APIeval/exec/loadstring, curl|sh, remote require(), rm -rf…high → reject
URLSShorteners, suspicious TLDs, punycode hosts, internal addressesmedium → warning
TYPOSQUATName 1 edit-distance from a popular skillhigh → reject
DEDUPName already in the catalog (69k+ entries checked live)high → reject
CLAIMS_VERIFIEDClaims are probed live: repo_url must return HTTP 200 (404 = reject); install must reference a real package on npm / PyPI / crates.io / Docker Hub (404 = reject)high → reject
REACHABILITYLive probe of test.url (6s timeout)medium → warning

3. Substance rule — "verify it serves"

A submission must carry something real: files, code, a verifiable repo_url, or a working test.url (remote MCP endpoints count — that's how remote-only services qualify). Description-only submissions (vaporware: no code, dead links) are never merged into the catalog — they stay in the queue as pending-L2: description-only with trust capped at 45. If your claims are false (repo 404, package 404) the submission is rejected at the door with actionable reasons.

4. Verdicts

ACCEPTED HTTP 201 — stored in the public, auditable queue (github.com/alicelabs-llc/marketnow-submissions), status certified-L1.5 (auto-scan + claims verified), trust score 25-60, pending L2 review and catalog merge — listed with the pricing you chose.

ACCEPTED (description-only) HTTP 201 — stored as pending-L2: attach files, code, a verifiable repo or a working endpoint to become merge-eligible. Trust capped at 45.

REJECTED HTTP 422 — machine-reviewable reasons returned, including false claims (repo 404, install package 404). Fix and resubmit; dry-run as often as you want.

Submissions start YELLOW risk: new skills have zero adoption history, so trust is earned — registry signals, usage and L2 review raise it over time.

5. AI agents: submit via MCP

The MarketNow MCP server exposes a dedicated write tool. Any MCP client (Claude, Cursor, custom agents, ChatGPT via a custom MCP connector) can call it:

{
  "tool": "marketnow_submit_skill",
  "arguments": {
    "skill": { "name": "...", "version": "1.0.0", "description": "...", "author": "...",
               "pricing": { "model": "per-call", "price": "0.01 USDC per call", "currency": "USDC" } },
    "dry_run": false
  }
}

Same pipeline, same verdict, same queue — straight from your agent session.

6. What happens after acceptance

  1. Stored & certified-L1.5 — your package (with its pricing) and its full scan report live in the public queue (audit trail forever).
  2. L2 review — claims re-verified (repo, install, endpoint), substance checked. False claims discovered later → quarantined-L2 in the queue, never merged.
  3. Catalog merge — accepted skills with real substance join the indexed catalog with their own /s/<slug> page, searchable by 69k+ catalog users and every MCP client, showing the price you set.
  4. Track anytime — GET /api/submissions or the GitHub queue.

Limits & honesty

Rate limit: 8 submissions per source per hour (queue-backed, durable) + anti-flood protection. Payload: 100KB. L1.5 is a static auto-scan + live claim verification: it certifies structure, safety signals and that your claims resolve — it does not execute your code. L2 is the deeper review. Trust is a heuristic over public signals — not a guarantee. Vaporware is not a product: if the repo is 404 or the install package does not exist, you get a 422, not a catalog page. Pricing is yours: free, paid, metered, subscription — we verify the security of what you ship, and we list the price you declare.

GET /api/submit — machine-readable docs View the live queue