MCP server repo naming: -mcp suffix
MCP server repo naming
Rule
Own MCP server repos use the <name>-mcp suffix pattern.
- ✅
fetch-mcp,searxng-mcp,codebase-memory-mcp - ❌
mcp-fetch,mcp-server-fetch,oriz-mcp-fetch
One MCP server = one repo. No monorepo for own servers.
Why suffix, not prefix
Matches existing category-suffix convention across the fleet:
| Category | Example |
|---|---|
| Browser extension | bookmark-mind-bs-ext |
| VS Code extension | sops-lens-vsc-ext |
| Static API | rto-api, dynasties-api |
| Mobile/PWA | oriz-janaushdhi-app |
| Static book | oriz-janaushdhi-book |
| MCP server (new) | fetch-mcp |
The suffix makes ls repos/own/ group naturally by category.
When to create the repo
Per ponytail and atomic-packages-lazy:
- Create the repo only when you start writing the MCP server code.
- Don't create stubs for the 3rd-party MCP servers you only consume.
- Reference: 6 servers currently in
.mcp.json(fetch, searxng, open-websearch, mcp-crawl, serena, codebase-memory) — none are own code yet; all are 3rd-party.
NPM publishing
If the MCP server is JS/TS and gets published:
- Package name:
@oriz/<name>-mcp(scoped) or<name>-mcp(unscoped, if available). - Binary name:
<name>-mcp(matches repo name peruser-prefers-same-name-repo-and-npm).
Cross-refs
repo-naming— general repo naming rulerepo-naming-drop-oriz-prefix-2026-06-25— drop-prefix decision this builds onatomic-packages-lazy— when to extract a new package