SnapState
Estado persistente para flujos de trabajo de agentes de IA. Guarda, reanuda y reproduce flujos de trabajo de múltiples pasos entre sesiones, fallos y traspasos de agentes. Nivel gratuito incluido.
Documentación
Registro MCP
El registro MCP proporciona a los clientes MCP una lista de servidores MCP, como una tienda de aplicaciones para servidores MCP.
📤 Publicar mi servidor MCP | ⚡️ Documentación de API en vivo | 👀 Visión del ecosistema | 📖 Documentación completa
Estado de desarrollo
Actualización 2025-10-24: La API del Registro ha entrado en una congelación de API (v0.1) 🎉. Durante el próximo mes o más, la API permanecerá estable sin cambios disruptivos, permitiendo a los integradores implementar soporte con confianza. Esta congelación se aplica a v0.1 mientras el desarrollo continúa en v0. Usaremos este período para validar la API en integraciones del mundo real y recopilar comentarios para dar forma a v1 para disponibilidad general. Gracias a todos por sus contribuciones y paciencia: su participación ha sido clave para llegar hasta aquí.
Actualización 2025-09-08: El registro se ha lanzado en vista previa 🎉 (publicación de anuncio en el blog). Aunque el sistema ahora es más estable, esta sigue siendo una versión de vista previa y pueden ocurrir cambios disruptivos o restablecimientos de datos. Una versión de disponibilidad general (GA) seguirá más adelante. Nos encantaría recibir sus comentarios en discusiones de GitHub o en el #registry-dev Discord (detalles para unirse aquí).
Mantenedores clave actuales:
- Adam Jones (Anthropic) @domdomegg
- Tadas Antanavicius (PulseMCP) @tadasant
- Toby Padilla (GitHub) @toby
- Radoslav (Rado) Dimitrov (Stacklok) @rdimitrov
Contribuciones
Usamos múltiples canales para la colaboración: consulte modelcontextprotocol.io/community/communication.
A menudo (pero no siempre) las ideas fluyen a través de este proceso:
- Discord - Discusiones comunitarias en tiempo real
- Discussions - Proponer y discutir requisitos de producto/técnicos
- Issues - Rastrear trabajo técnico bien definido
- Pull Requests - Contribuir trabajo hacia los issues
Inicio rápido:
Requisitos previos
- Docker
- Go 1.24.x
- ko - Constructor de imágenes de contenedor para Go (instrucciones de instalación)
- golangci-lint v2.4.0
Ejecutar el servidor
# Start full development environment
make dev-compose
Esto inicia el registro en localhost:8080 con PostgreSQL. La base de datos utiliza almacenamiento efímero y se restablece cada vez que reinicia los contenedores, garantizando un estado limpio para el desarrollo y las pruebas.
Nota: El registro utiliza ko para construir imágenes de contenedor. El comando make dev-compose construye automáticamente la imagen del registro con ko y la carga en su daemon de Docker local antes de iniciar los servicios.
Por defecto, el registro se siembra desde la API de producción con un subconjunto filtrado de servidores (para mantener un inicio rápido). Esto asegura que su entorno local refleje el comportamiento de producción y que todos los datos de siembra pasen la validación. Para desarrollo sin conexión, puede sembrar desde un archivo sin validación con MCP_REGISTRY_SEED_FROM=data/seed.json MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION=false make dev-compose.
La configuración se puede ajustar con variables de entorno en docker-compose.yml - consulte .env.example como referencia.
Alternativa: Ejecutar una imagen Docker preconstruida
Las imágenes Docker preconstruidas se publican automáticamente en el Registro de Contenedores de GitHub:
# Run latest stable release
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:latest
# Run latest from main branch (continuous deployment)
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main
# Run specific release version
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
# Run development build from main branch
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d
Etiquetas disponibles:
- Lanzamientos:
latest,v1.0.0,v1.1.0, etc. - Continuo:
main(compilación de la rama principal más reciente) - Desarrollo:
main-<date>-<sha>(compilaciones de confirmaciones específicas)
Publicar un servidor
Para publicar un servidor, hemos creado una CLI simple. Puede usarla con:
# Build the latest CLI
make publisher
# Use it!
./bin/mcp-publisher --help
Consulte la guía del publicador para más detalles.
Otros comandos
# Run lint, unit tests and integration tests
make check
También hay algunos comandos más útiles para el desarrollo. Ejecute make help para obtener más información, o consulte Makefile.
Arquitectura
Estructura del proyecto
├── cmd/ # Application entry points
│ └── publisher/ # Server publishing tool
├── data/ # Seed data
├── deploy/ # Deployment configuration (Pulumi)
├── docs/ # Documentation
├── internal/ # Private application code
│ ├── api/ # HTTP handlers and routing
│ ├── auth/ # Authentication (GitHub OAuth, JWT, namespace blocking)
│ ├── config/ # Configuration management
│ ├── database/ # Data persistence (PostgreSQL)
│ ├── service/ # Business logic
│ ├── telemetry/ # Metrics and monitoring
│ └── validators/ # Input validation
├── pkg/ # Public packages
│ ├── api/ # API types and structures
│ │ └── v0/ # Version 0 API types
│ └── model/ # Data models for server.json
├── scripts/ # Development and testing scripts
├── tests/ # Integration tests
└── tools/ # CLI tools and utilities
└── validate-*.sh # Schema validation tools
Autenticación
La publicación admite múltiples métodos de autenticación:
- GitHub OAuth - Para publicar iniciando sesión en GitHub
- GitHub OIDC - Para publicar desde GitHub Actions
- Verificación DNS - Para demostrar la propiedad de un dominio y sus subdominios
- Verificación HTTP - Para demostrar la propiedad de un dominio
El registro valida la propiedad del espacio de nombres al publicar. Por ejemplo, para publicar...:
io.github.domdomegg/my-cool-mcpdebe iniciar sesión en GitHub comodomdomegg, o estar en una GitHub Action en los repositorios de domdomeggme.adamjones/my-cool-mcpdebe demostrar la propiedad deadamjones.memediante un desafío DNS o HTTP
Proyectos de la comunidad
Consulte proyectos de la comunidad para explorar trabajos notables relacionados con el registro creados por la comunidad.
Más documentación
Consulte la documentación para más detalles si su pregunta no ha sido respondida aquí.