A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/ravitemer/mcp-registry below:

ravitemer/mcp-registry: A community-maintained registry of Model Context Protocol (MCP) servers with structured installation configurations for easy integration.

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?

Whether 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
mcp-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:

  1. Visit the MCP Registry repository: https://github.com/ravitemer/mcp-registry
  2. Click the "Fork" button in the top-right corner
  3. This creates your own copy where you can make changes
git clone https://github.com/YOUR-USERNAME/mcp-registry.git
cd mcp-registry
npm install
3. Create Your Server Definition
  1. Create a new YAML file in the servers/ directory
  2. Use a descriptive filename (e.g., my-awesome-server.yaml)
  3. Follow the server definition format described above
  4. Include all required fields and at least one installation method

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 Changes
git add servers/my-server.yaml
git commit -m "Add My Awesome Server to registry"
git push origin main
  1. Go to the original repository: https://github.com/ravitemer/mcp-registry
  2. Click "Pull Requests" then "New Pull Request"
  3. Click "Compare across forks"
  4. Select your fork as the head repository
  5. Provide a clear title and description
  6. Submit the pull request

After submitting:

  1. Automated tests will run to validate your server definition
  2. Maintainers will review your submission
  3. They may request changes or improvements
  4. Once approved, your server will be merged and automatically deployed
  5. Your server will be available at: https://ravitemer.github.io/mcp-registry/registry.json
Automated Validation on Pull Requests

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:

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