MCP Server with Google OAuth & Analytics
Um servidor MCP remoto com autenticação OAuth do Google e rastreamento de análises integrados.
Documentação
Servidor Model Context Protocol (MCP) + Google OAuth + Analytics
Este é um servidor Model Context Protocol (MCP) que suporta conexões MCP remotas, com Google OAuth integrado e rastreamento abrangente de analytics.
Você pode implantá-lo na sua própria conta Cloudflare e, após criar seu próprio aplicativo de cliente OAuth do Google Cloud, você terá um servidor MCP remoto totalmente funcional com rastreamento automático de analytics que você pode usar como base. Os usuários poderão se conectar ao seu servidor MCP fazendo login com a conta Google deles, enquanto você obtém insights detalhados sobre uso de ferramentas, desempenho e comportamento do usuário.
Você pode usar isto como exemplo de referência para integrar outros provedores OAuth a um servidor MCP implantado na Cloudflare, usando a biblioteca workers-oauth-provider e mcp-analytics para rastreamento abrangente.
O servidor MCP (alimentado por Cloudflare Workers):
- Atua como Servidor OAuth para seus clientes MCP
- Atua como Cliente OAuth para seu servidor OAuth real (neste caso, Google)
- Rastreia automaticamente uso de ferramentas, métricas de desempenho e comportamento do usuário
Recursos de Analytics
Este servidor inclui rastreamento automático de analytics via SDK mcp-analytics:
✅ Tempo de execução das ferramentas - Quanto tempo cada ferramenta leva para executar
✅ Status de sucesso/falha - Quais ferramentas têm sucesso ou falham
✅ Parâmetros de entrada - Quais dados os usuários fornecem (dados sensíveis são automaticamente ocultados)
✅ Resultados das ferramentas - Dados de saída das execuções das ferramentas (automaticamente sanitizados)
✅ Detalhes de erros - Informações completas de erro quando as ferramentas falham
✅ Informações do usuário - Identificação automática do usuário a partir das propriedades OAuth
✅ Rastreamento de sessão - Agrupa chamadas de ferramentas por sessão do usuário
✅ Metadados do servidor - Nome e versão do servidor detectados automaticamente
Começando
Clone o repositório e instale as dependências: npm install
Para Produção
Crie um novo Aplicativo OAuth do Google Cloud:
- Para a URL da página inicial, especifique
https://mcp-google-oauth.<your-subdomain>.workers.dev - Para a URL de callback de autorização, especifique
https://mcp-google-oauth.<your-subdomain>.workers.dev/callback - Anote seu ID de cliente e gere um segredo de cliente.
- Defina os segredos via Wrangler
wrangler secret put GOOGLE_CLIENT_ID
wrangler secret put GOOGLE_CLIENT_SECRET
wrangler secret put COOKIE_ENCRYPTION_KEY # add any random string here e.g. openssl rand -hex 32
wrangler secret put HOSTED_DOMAIN # optional: use this when restrict google account domain
wrangler secret put MCP_ANALYTICS_API_KEY # your analytics API key from mcpanalytics.dev
Configure um namespace KV
- Crie o namespace KV:
wrangler kv:namespace create "OAUTH_KV" - Atualize o arquivo Wrangler com o ID do KV
Implante e Teste
Implante o servidor MCP para disponibilizá-lo no seu domínio workers.dev
wrangler deploy
Teste o servidor remoto usando o MCP Playground:
- Visite mcpsplayground.com
- Insira a URL do seu servidor:
https://mcp-google-oauth.<your-subdomain>.workers.dev/sse - Clique em "Conectar" e complete o fluxo de autenticação OAuth do Google
- Após a autenticação, você verá suas ferramentas disponíveis na interface do playground
- Teste a ferramenta "add" fornecendo dois números e veja os resultados com rastreamento automático de analytics
Alternativamente, você também pode testar usando o Inspector tradicional:
npx @modelcontextprotocol/inspector@latest
Agora você tem um servidor MCP remoto implantado com analytics abrangente!
Controle de Acesso
Este servidor MCP usa Google Cloud OAuth para autenticação. Todos os usuários Google autenticados podem acessar ferramentas básicas como "add". Quando você restringir usuários com domínio hospedado, defina a variável de ambiente HOSTED_DOMAIN.
Acesse o servidor MCP remoto pelo Claude Desktop
Abra o Claude Desktop e navegue até Configurações -> Desenvolvedor -> Editar Configuração. Isso abre o arquivo de configuração que controla quais servidores MCP o Claude pode acessar.
Substitua o conteúdo pela seguinte configuração. Após reiniciar o Claude Desktop, uma janela do navegador abrirá mostrando sua página de login OAuth. Complete o fluxo de autenticação para conceder ao Claude acesso ao seu servidor MCP. Após conceder o acesso, as ferramentas ficarão disponíveis para uso.
{
"mcpServers": {
"math": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp-google-oauth.<your-subdomain>.workers.dev/sse"
]
}
}
}
Quando as Ferramentas (sob 🔨) aparecerem na interface, você pode pedir ao Claude para usá-las. Por exemplo: "Você poderia usar a ferramenta de matemática para somar 23 e 19?". O Claude deve invocar a ferramenta e mostrar o resultado gerado pelo servidor MCP, com todas as interações rastreadas automaticamente no seu painel de analytics.
Para Desenvolvimento Local
Se você quiser iterar e testar seu servidor MCP, pode fazê-lo em desenvolvimento local. Isso exigirá que você crie outro Aplicativo OAuth no Google Cloud:
- Para a URL da página inicial, especifique
http://localhost:8788 - Para a URL de callback de autorização, especifique
http://localhost:8788/callback - Anote seu ID de cliente e gere um segredo de cliente.
- Crie um arquivo
.dev.varsna raiz do seu projeto com:
GOOGLE_CLIENT_ID=your_development_google_cloud_oauth_client_id
GOOGLE_CLIENT_SECRET=your_development_google_cloud_oauth_client_secret
MCP_ANALYTICS_API_KEY=your_analytics_api_key
Desenvolva e Teste
Execute o servidor localmente para disponibilizá-lo em http://localhost:8788
wrangler dev
Para testar o servidor local, insira http://localhost:8788/sse no Inspector e clique em conectar. Após seguir os prompts, você poderá "Listar Ferramentas" com o rastreamento de analytics habilitado.
Usando Claude e outros Clientes MCP
Ao usar o Claude para conectar ao seu servidor MCP remoto, você pode ver algumas mensagens de erro. Isso acontece porque o Claude Desktop ainda não suporta servidores MCP remotos, então às vezes ele fica confuso. Para verificar se o servidor MCP está conectado, passe o mouse sobre o ícone 🔨 no canto inferior direito da interface do Claude. Você deve ver suas ferramentas disponíveis lá.
Usando Cursor e outros Clientes MCP
Para conectar o Cursor ao seu servidor MCP, escolha Type: "Comando" e no campo Command, combine os campos de comando e argumentos em um só (ex.: npx mcp-remote https://<your-worker-name>.<your-subdomain>.workers.dev/sse).
Observe que, embora o Cursor suporte servidores HTTP+SSE, ele não suporta autenticação, então você ainda precisa usar mcp-remote (e usar um servidor STDIO, não um HTTP).
Você pode conectar seu servidor MCP a outros clientes MCP como Windsurf abrindo o arquivo de configuração do cliente, adicionando o mesmo JSON usado na configuração do Claude e reiniciando o cliente MCP.
Como funciona?
Provedor OAuth
A biblioteca Provedor OAuth serve como uma implementação completa de servidor OAuth 2.1 para Cloudflare Workers. Ela lida com as complexidades do fluxo OAuth, incluindo emissão, validação e gerenciamento de tokens. Neste projeto, ela desempenha o papel duplo de:
- Autenticar clientes MCP que se conectam ao seu servidor
- Gerenciar a conexão com os serviços OAuth do Google Cloud
- Armazenar com segurança tokens e estado de autenticação no armazenamento KV
MCP Durável com Analytics
O MCP Durável estende a funcionalidade base do MCP com Durable Objects da Cloudflare e rastreamento de analytics, fornecendo:
- Gerenciamento de estado persistente para seu servidor MCP
- Armazenamento seguro do contexto de autenticação entre requisições
- Acesso a informações do usuário autenticado via
this.props - Suporte para disponibilidade condicional de ferramentas com base na identidade do usuário
- Rastreamento automático de analytics de todo o uso de ferramentas com contexto do usuário
- Métricas de desempenho e monitoramento de erros
- Insights abrangentes sobre comportamento do usuário e eficácia das ferramentas
MCP Remoto
A biblioteca MCP Remoto permite que seu servidor exponha ferramentas que podem ser invocadas por clientes MCP como o Inspector. Ela:
- Define o protocolo para comunicação entre clientes e seu servidor
- Fornece uma maneira estruturada de definir ferramentas
- Lida com serialização e desserialização de requisições e respostas
- Mantém a conexão Server-Sent Events (SSE) entre clientes e seu servidor
Painel de Analytics
Visite mcpanalytics.dev para ver seu painel de analytics e obter insights sobre:
- Padrões de uso e popularidade das ferramentas
- Engajamento do usuário e analytics de sessão
- Métricas de desempenho e gargalos
- Taxas de erro e análise de falhas
- Tendências de sucesso/falha ao longo do tempo