Publishing Servers
Requirements
Section titled “Requirements”A publishable server must:
- Implement the MCP handshake for at least one supported transport.
- Declare every tool with a JSON Schema for its arguments and a
sideEffectclass ofnone,readorwrite. - Declare the credential scopes it needs. Servers that request scopes they never use are rejected at review.
- Ship a
velerion.mcp.jsonmanifest at the package root.
The manifest
Section titled “The manifest”{ "id": "acme/ticketing", "version": "1.0.0", "displayName": "Acme Ticketing", "description": "Read and update tickets in Acme's internal ticketing system.", "transport": "streamable-http", "entry": "dist/server.js", "scopes": ["tickets:read", "tickets:write"], "tools": [ { "name": "search_tickets", "sideEffect": "read" }, { "name": "add_comment", "sideEffect": "write" }, { "name": "close_ticket", "sideEffect": "write" } ]}Validate locally
Section titled “Validate locally”velerion mcp validate .velerion mcp inspect . --call search_tickets --args '{"query":"billing"}'validate checks the manifest against the running server: a tool present in one but not the other is
an error, not a warning. inspect starts the server with a temporary connection so you can exercise
tools without deploying.
Publish
Section titled “Publish”# Private to your workspace — no review required.velerion mcp publish . --visibility workspace
# Submit for public listing — enters the review queue.velerion mcp publish . --visibility publicPublic submissions are reviewed for credential handling, prompt-injection surface and schema
accuracy. Expect one to two weeks, and expect to be asked about any write tool that has no
idempotency guarantee.
Versioning rules
Section titled “Versioning rules”| Change | Required bump |
|---|---|
| New tool added | minor |
| Tool argument made optional | minor |
| Tool argument made required, or removed | major |
| Tool removed or renamed | major |
| Behaviour fix, no schema change | patch |
