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

Dashboard

Métricas de Uso OAuth

OAuth Usage

Monitoramento de Segurança DIY

Security Monitoring

Uso de Ferramentas pelos Clientes MCP

MCP Integration

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
  • 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

  1. Faça um fork do repositório para sua conta GitHub
  2. Clone seu fork: git clone https://github.com/your-username/mcp-oauth-sample.git
  3. Instale as dependências: pnpm install
  4. Configure o ambiente: Siga nosso Guia de Configuração
  5. Crie uma branch: git checkout -b feature/your-feature-name
  6. Faça suas alterações e teste minuciosamente
  7. Commit: Use o formato de Conventional Commits
  8. 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

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


Construído com ❤️ por raxIT AI

Baseado em run-llama/mcp-nextjs com aprimoramentos para aprender sobre autorização MCP.