模型上下文协议服务器注册表

一个社区维护的模型上下文协议(MCP)服务器注册表,提供结构化的安装配置以便于集成。

  • by ravitemer
  • HTML
  • 本地部署
  • 29 星标
  • 更新于
在 GitHub 查看 ravitemer/mcp-registry

使用说明

MCP注册表

[!小心] ⚠️ 进行中:该注册表目前正处于积极的开发和测试阶段。API和数据结构可能会发生变化。不建议用于生产。

实时注册表: https://ravitemer.github.io/mcp-registry/registry.json

一个由社区维护的模型上下文协议(MCP)服务器注册表,具有结构化的安装配置,便于集成。

欢迎

欢迎来到MCP注册表! 🚀

模型上下文协议(MCP)生态系统正在迅速发展,但查找和配置服务器可能具有挑战性。该注册表通过提供具有结构化安装配置的集中式、社区维护的MCP服务器集合来解决这个问题。

是什么让这个注册表与众不同?

  • 📦 一键安装:每台服务器都配有流行工具(NPX、Docker、Python等)的现成配置
  • 🔧 参数系统:智能占位符系统使用 ${VARIABLE} 易于自定义的语法
  • 🚦 交通信息:明确指示支持的协议(stdio、SSE、可流式传输的http)
  • ✅ 质量保证:全面的验证和测试确保所有定义正确工作
  • 🤝 社区驱动:通过GitHub pull请求轻松完成贡献过程
  • 🎯 集成就绪:专为与MCP客户端和集线器无缝集成而设计

无论您是在构建MCP客户端、管理服务器中心,还是只是想发现新的服务器,此注册表都能提供您所需的结构化数据!

注册表结构和功能

概述

  • 注册表中的每个MCP服务器都在一个YAML文件中定义
  • 每台服务器可以有多种安装方式(NPX、Docker、Python等)
  • 安装配置已准备好使用JSON模板
  • 参数使用 ${VARIABLE} 易于替换的语法

目录结构

mcp-registry/
├── servers/                     # Server definition files (YAML)
│   ├── filesystem.yaml
│   ├── github.yaml
│   └── ...
└── schemas/                     # Validation schemas
  └── server-entry.js

服务器定义格式

每个服务器都在YAML文件中定义 servers/ 目录具有以下结构:

# Basic Information
id: server_name                    # Unique identifier (alphanumeric + underscore, min 3 chars)
name: Display Name                 # Human-readable name
description: Brief description under 400 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

验证模式(Zod)

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(400),
  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();

安装方法

每台服务器都可以提供多种安装方法来适应不同的环境:

  • NPX:Node.js包执行
  • 码头工人:基于容器的执行
  • Python/UVX:基于Python的服务器
  • 远程:直接HTTP连接
  • 自定义:任何其他安装方法

参数系统

注册表使用 ${VARIABLE} 配置模板占位符系统:

  • 如果存在,应为每种安装方法声明参数
  • 每个参数都包括名称、描述、占位符和必需的标志
  • 消费者在安装过程中将占位符替换为实际值

贡献过程

贡献一个新的MCP服务器很容易!请按照以下步骤操作:

1.分叉存储库

  1. 访问MCP注册表存储库: https://github.com/ravitemer/mcp-registry
  2. 点击右上角的“叉”按钮
  3. 这将创建您自己的副本,您可以在其中进行更改

2.克隆你的叉子

git clone https://github.com/YOUR-USERNAME/mcp-registry.git
cd mcp-registry
npm install

3.创建服务器定义

  1. 在中创建一个新的YAML文件 servers/ 目录
  2. 使用描述性文件名(例如。, my-awesome-server.yaml)
  3. 遵循上述服务器定义格式
  4. 包括所有必填字段和至少一种安装方法

4.测试您的服务器

提交之前,请验证您的服务器定义:

# Validate your server definition
npm run validate

# Run all tests
npm test

在继续之前,请修复所有验证错误。

5.承诺并推动你的改变

git add servers/my-server.yaml
git commit -m "Add My Awesome Server to registry"
git push origin main

6.创建拉取请求

  1. 转到原始存储库: https://github.com/ravitemer/mcp-registry
  2. 点击“Pull Requests”,然后点击“New Pull Request”
  3. 点击“跨叉比较”
  4. 选择您的fork作为头部存储库
  5. 提供清晰的标题和描述
  6. 提交拉取请求

7.审查过程

提交后:

  1. 将运行自动测试来验证您的服务器定义
  2. 维护人员将审查您的提交
  3. 他们可能会要求更改或改进
  4. 一旦获得批准,您的服务器将被合并并自动部署
  5. 您的服务器将在以下位置可用: https://ravitemer.github.io/mcp-registry/registry.json

Pull请求的自动验证

对此存储库的每个拉取请求都会触发一个全面的验证工作流。
只有通过以下所有检查,您的提交才会被接受:

  • 架构验证:
    每个服务器的YAML文件都必须与 严格的Zod模式.

    • 不允许有额外的字段。
    • 所有必填字段都必须存在。
  • 唯一ID和名称:
    所有服务器必须具有唯一 id 和 name.
    文件中重复的ID或名称将导致验证失败。

  • 配置中的有效JSON:
    每个安装 config 字段必须是有效的JSON字符串。

  • 参数占位符一致性:
    每 ${VARIABLE} 安装中的占位符 config 必须在该安装中声明相应的参数 parameters 阵列。

如果这些检查中的任何一项失败,您的PR将被标记为失败,您将在PR日志中看到详细的错误消息。

最佳实践

  • 清晰的描述:在400个字符以内写简洁、翔实的描述
  • 综合标签:使用相关标签使您的服务器可被发现
  • 多种安装方式:尽可能为不同环境提供选项
  • 准确的先决条件:清楚地列出所有系统要求
  • 参数文档:包括有用的描述和示例值
  • 测试:提交前彻底测试服务器定义
  • 高质量URL:确保存储库URL准确

准备好贡献了吗?首先分叉存储库并添加您的MCP服务器! 🚀