SnapState
Estado persistente para fluxos de trabalho de agentes de IA. Salve, retome e reproduza fluxos de trabalho de várias etapas entre sessões, falhas e transferências de agentes. Camada gratuita incluída.
Documentação
Registro MCP
O registro MCP fornece aos clientes MCP uma lista de servidores MCP, como uma loja de aplicativos para servidores MCP.
📤 Publicar meu servidor MCP | ⚡️ Documentação da API ao vivo | 👀 Visão do ecossistema | 📖 Documentação completa
Status de Desenvolvimento
Atualização de 24/10/2025: A API do Registro entrou em congelamento de API (v0.1) 🎉. Pelo próximo mês ou mais, a API permanecerá estável sem mudanças que quebrem compatibilidade, permitindo que integradores implementem suporte com confiança. Este congelamento se aplica à v0.1 enquanto o desenvolvimento continua na v0. Usaremos este período para validar a API em integrações do mundo real e coletar feedback para moldar a v1 para disponibilidade geral. Agradecemos a todos pelas contribuições e paciência—sua participação foi fundamental para chegarmos até aqui!
Atualização de 08/09/2025: O registro foi lançado em pré-visualização 🎉 (postagem do blog de anúncio). Embora o sistema esteja agora mais estável, esta ainda é uma versão de pré-visualização e mudanças que quebram compatibilidade ou redefinições de dados podem ocorrer. Uma versão de disponibilidade geral (GA) será lançada posteriormente. Adoraríamos seu feedback nas discussões do GitHub ou no #registry-dev Discord (detalhes de participação aqui).
Principais mantenedores atuais:
- Adam Jones (Anthropic) @domdomegg
- Tadas Antanavicius (PulseMCP) @tadasant
- Toby Padilla (GitHub) @toby
- Radoslav (Rado) Dimitrov (Stacklok) @rdimitrov
Contribuindo
Usamos múltiplos canais para colaboração - veja modelcontextprotocol.io/community/communication.
Frequentemente (mas nem sempre) as ideias fluem por este pipeline:
- Discord - Discussões da comunidade em tempo real
- Discussões - Propor e discutir requisitos de produto/técnicos
- Issues - Rastrear trabalho técnico bem definido
- Pull Requests - Contribuir trabalho para as issues
Início rápido:
Pré-requisitos
- Docker
- Go 1.24.x
- ko - Construtor de imagens de contêiner para Go (instruções de instalação)
- golangci-lint v2.4.0
Executando o servidor
# Start full development environment
make dev-compose
Isso inicia o registro em localhost:8080 com PostgreSQL. O banco de dados usa armazenamento efêmero e é redefinido a cada reinicialização dos contêineres, garantindo um estado limpo para desenvolvimento e testes.
Nota: O registro usa ko para construir imagens de contêiner. O comando make dev-compose automaticamente constrói a imagem do registro com ko e a carrega no seu daemon Docker local antes de iniciar os serviços.
Por padrão, o registro é populado a partir da API de produção com um subconjunto filtrado de servidores (para manter a inicialização rápida). Isso garante que seu ambiente local espelhe o comportamento de produção e que todos os dados de seed passem na validação. Para desenvolvimento offline, você pode popular a partir de um arquivo sem validação com MCP_REGISTRY_SEED_FROM=data/seed.json MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION=false make dev-compose.
A configuração pode ser ajustada com variáveis de ambiente em docker-compose.yml - veja .env.example como referência.
Alternativa: Executando uma imagem Docker pré-construída
Imagens Docker pré-construídas são publicadas automaticamente no GitHub Container Registry:
# 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
Tags disponíveis:
- Releases:
latest,v1.0.0,v1.1.0, etc. - Contínuo:
main(build mais recente do branch main) - Desenvolvimento:
main-<date>-<sha>(builds de commits específicos)
Publicando um servidor
Para publicar um servidor, criamos uma CLI simples. Você pode usá-la com:
# Build the latest CLI
make publisher
# Use it!
./bin/mcp-publisher --help
Veja o guia do publicador para mais detalhes.
Outros comandos
# Run lint, unit tests and integration tests
make check
Existem também alguns comandos adicionais úteis para desenvolvimento. Execute make help para saber mais, ou consulte o Makefile.
Arquitetura
Estrutura do Projeto
├── 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
Autenticação
A publicação suporta múltiplos métodos de autenticação:
- GitHub OAuth - Para publicar fazendo login no GitHub
- GitHub OIDC - Para publicar a partir do GitHub Actions
- Verificação DNS - Para provar propriedade de um domínio e seus subdomínios
- Verificação HTTP - Para provar propriedade de um domínio
O registro valida a propriedade do namespace ao publicar. Por exemplo, para publicar...:
io.github.domdomegg/my-cool-mcpvocê deve fazer login no GitHub comodomdomegg, ou estar em uma GitHub Action nos repositórios de domdomeggme.adamjones/my-cool-mcpvocê deve provar propriedade deadamjones.mevia desafio DNS ou HTTP
Projetos da Comunidade
Confira projetos da comunidade para explorar trabalhos notáveis relacionados ao registro criados pela comunidade.
Mais documentação
Veja a documentação para mais detalhes se sua pergunta não foi respondida aqui!