MCP OAuth Sample
Uma implementação de servidor MCP OAuth de exemplo usando Next.js, fornecendo autenticação OAuth 2.1 com Google e PostgreSQL.
Documentação
MCP OAuth Sample no Vercel e Analytics
Uma implementação de servidor MCP (Model Context Protocol) OAuth 2.1 pronta para produção, construída com Next.js 15, fornecendo autenticação segura e analytics para clientes MCP.
Visão Geral
Este projeto foi construído usando run-llama/mcp-nextjs como implementação de referência e significativamente aprimorado para ser totalmente compatível com a Especificação de Autorização MCP ou aqui.
Principais Aprimoramentos
✅ Conformidade com OAuth 2.1 - Implementação completa da especificação de autorização MCP
✅ Refresh Tokens OAuth - Atualização automática de tokens para experiência de usuário contínua
✅ Painel de Analytics DIY - Analytics em tempo real com monitoramento de segurança
✅ Segurança Aprimorada - Detecção abrangente de ameaças e monitoramento
Início Rápido
# Install dependencies
pnpm install
# Setup environment variables (see docs/setup.md)
cp .env.example .env
# Setup database
pnpm prisma generate
pnpm prisma db push
# Start development server
pnpm dev
Capturas de Tela
Painel

Métricas de Uso OAuth

Monitoramento de Segurança DIY

Uso de Ferramentas pelos Clientes MCP

Recursos
- Servidor OAuth 2.1 Completo com suporte a PKCE e refresh tokens
- Fluxo de Autorização MCP compatível com a especificação MCP mais recente
- Painel de Analytics com monitoramento de segurança em tempo real
- Autenticação Google integrada via NextAuth.js
- Registro Dinâmico de Clientes para integração contínua de clientes MCP
- Monitoramento de Segurança com detecção de ameaças e alertas
- Banco de Dados PostgreSQL com limpeza automatizada e gerenciamento de TTL
Documentação
📚 Ver Documentação Completa - Site interativo Material for MkDocs
Desenvolvimento Local da Documentação
# Serve documentation locally with hot reload
./docs-serve.sh
# Or on Windows
docs-serve.bat
# Manual setup
pip install -r requirements.txt
mkdocs serve
Conformidade com a Especificação MCP
Tentamos implementar todos os requisitos obrigatórios especificados na Especificação de Autorização MCP.
O Que Torna Isso Diferente
- Endpoints de Descoberta - Implementação adequada de RFC 8414 e RFC 9728
- Suporte a Parâmetros de Recurso - Implementação de RFC 8707 Resource Indicators
- Validação de Audiência de Tokens - Aplicação rigorosa de limites de segurança
- Fluxo de Refresh Token - Atualização de tokens compatível com OAuth 2.1
- Cabeçalhos WWW-Authenticate - Tratamento adequado de respostas 401
- Registro Dinâmico de Clientes - Suporte RFC 7591 para clientes MCP
Links Rápidos
- Demonstração ao Vivo: mcp-oauth-sample.vercel.app (O painel de analytics requer lista de permissões de endereços Gmail)
- Painel de Analytics:
/analytics(suporta múltiplos endereços Gmail) - Endpoints MCP:
- SSE:
/mcp/sse - HTTP:
/mcp/mcp
- SSE:
- Descoberta OAuth:
/.well-known/oauth-authorization-server
Integração com Clientes MCP
Para Claude Desktop/Web
{
"mcpServers": {
"raxIT-oauth": {
"url": "https://your-domain.com/mcp/sse",
"transport": "sse"
}
}
}
Para Cursor
{
"mcpServers": {
"raxIT-oauth": {
"url": "https://your-domain.com/mcp/mcp",
"transport": "http-stream"
}
}
}
Contribuindo
Acolhemos calorosamente contribuições da comunidade! Este projeto é open source e incentivamos desenvolvedores a ajudar a torná-lo ainda melhor.
Formas de Contribuir
🐛 Reportar Bugs - Encontrou um problema? Abra um relatório de bug
✨ Solicitar Recursos - Tem uma ideia? Envie uma solicitação de recurso
📝 Melhorar Documentação - Ajude a tornar nossa documentação mais clara e abrangente
🔧 Enviar Código - Corrija bugs, adicione recursos ou melhore o desempenho
🧪 Adicionar Testes - Ajude a aumentar a cobertura de testes e a confiabilidade
🎨 Aprimorar UI/UX - Torne o painel de analytics ainda melhor
Começando
- Faça um fork do repositório para sua conta GitHub
- Clone seu fork:
git clone https://github.com/your-username/mcp-oauth-sample.git - Instale as dependências:
pnpm install - Configure o ambiente: Siga nosso Guia de Configuração
- Crie uma branch:
git checkout -b feature/your-feature-name - Faça suas alterações e teste minuciosamente
- Commit: Use o formato de Conventional Commits
- Envie e crie um Pull Request
Diretrizes de Desenvolvimento
- Estilo de Código: Siga os padrões existentes e use ESLint/Prettier
- Testes: Adicione testes para novos recursos e garanta que os testes existentes passem
- Documentação: Atualize a documentação relevante para quaisquer alterações
- Segurança: Siga as melhores práticas de segurança, especialmente para fluxos OAuth
- Desempenho: Considere o impacto em analytics e monitoramento
Comunidade
- 💬 Discussões: Participe das conversas em GitHub Discussions
- 💼 LinkedIn: Siga-nos no LinkedIn
- 🐦 X (Twitter): Siga @raxit_ai para atualizações
- 🦋 Bluesky: Conecte-se no Bluesky
Todos os contribuidores são bem-vindos! Seja corrigindo erros de digitação, adicionando recursos importantes ou ajudando com a documentação - toda contribuição importa. 🙏
Licença
Este projeto é licenciado sob a Apache License 2.0 - consulte o arquivo LICENSE para detalhes.
Suporte
- Issues: GitHub Issues
- Documentação: docs/
Construído com ❤️ por raxIT AI
Baseado em run-llama/mcp-nextjs com aprimoramentos para aprender sobre autorização MCP.