Caution
⚠️ Work in Progress: This registry is currently in active development and testing phase. The API and data structure may change. Not recommended for production use yet.
Live Registry: https://ravitemer.github.io/mcp-registry/registry.json
A community-maintained registry of Model Context Protocol (MCP) servers with structured installation configurations for easy integration.
Welcome to the MCP Registry! 🚀
The Model Context Protocol (MCP) ecosystem is growing rapidly, but finding and configuring servers can be challenging. This registry solves that problem by providing a centralized, community-maintained collection of MCP servers with structured installation configurations.
What makes this registry special?
${VARIABLE}
syntax for easy customizationWhether you're building an MCP client, managing a server hub, or just want to discover new servers, this registry provides the structured data you need!
Registry Structure and Features${VARIABLE}
syntax for easy replacementmcp-registry/
├── servers/ # Server definition files (YAML)
│ ├── filesystem.yaml
│ ├── github.yaml
│ └── ...
└── schemas/ # Validation schemas
└── server-entry.js
Each server is defined in a YAML file in the servers/
directory with the following structure:
# Basic Information id: server_name # Unique identifier (alphanumeric + underscore, min 3 chars) name: Display Name # Human-readable name description: Brief description under 200 characters author: Author Name # Author or organization url: https://github.com/author/repo # Documentation or repository URL license: MIT # Software license (optional) # Classification category: development # Primary category tags: # Searchable keywords - tag1 - tag2 # Installation Methods installations: - name: NPX # Installation method name description: Run using NPX # Brief description config: | # JSON configuration template { "command": "npx", "args": ["-y", "package-name", "${PARAM}"] } prerequisites: # System requirements - Node.js parameters: # Parameters for this installation - name: Parameter Name key: PARAM description: Parameter description placeholder: example-value required: true transports: # Supported transport methods for this installation - stdio - sse - streamable-http # Quality Indicators featured: false # Featured/recommended server verified: false # Verified by maintainers
import { z } from 'zod'; export const ParameterSchema = z.object({ name: z.string().min(1), key: z.string().min(1), description: z.string().optional(), placeholder: z.string().optional(), required: z.boolean().default(true), }).strict(); export const InstallationSchema = z.object({ name: z.string().min(1), description: z.string().optional(), config: z.string().min(1), prerequisites: z.array(z.string()).optional(), parameters: z.array(ParameterSchema).optional(), transports: z.array(z.enum(['stdio', 'sse', 'streamable-http'])).optional(), }).strict(); export const ServerSchema = z.object({ id: z.string().min(1), name: z.string().min(1), description: z.string().min(1).max(200), author: z.string(), url: z.string().url(), license: z.string().optional(), category: z.string(), tags: z.array(z.string()), installations: z.array(InstallationSchema).min(1), featured: z.boolean().default(false), verified: z.boolean().default(false), }).strict();
Each server can provide multiple installation methods to accommodate different environments:
The registry uses a ${VARIABLE}
placeholder system for configuration templates:
Contributing a new MCP server is easy! Follow these steps:
git clone https://github.com/YOUR-USERNAME/mcp-registry.git cd mcp-registry npm install3. Create Your Server Definition
servers/
directorymy-awesome-server.yaml
)Before submitting, validate your server definition:
# Validate your server definition npm run validate # Run all tests npm test
Fix any validation errors before proceeding.
5. Commit and Push Your Changesgit add servers/my-server.yaml git commit -m "Add My Awesome Server to registry" git push origin main
After submitting:
https://ravitemer.github.io/mcp-registry/registry.json
Every pull request to this repository triggers a comprehensive validation workflow.
Your submission will only be accepted if it passes all of the following checks:
Schema Validation:
Every server YAML file must match the strict Zod schema.
Unique IDs and Names:
All servers must have a unique id
and name
.
Duplicate IDs or names across files will cause validation to fail.
Valid JSON in Config:
Each installation’s config
field must be a valid JSON string.
Parameter Placeholder Consistency:
Every ${VARIABLE}
placeholder in an installation’s config
must have a corresponding parameter declared in that installation’s parameters
array.
If any of these checks fail, your PR will be marked as failing and you will see detailed error messages in the PR logs.
Ready to contribute? Start by forking the repository and adding your MCP server! 🚀
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4