An integrated MCP server combining Azure DevOps, Gmail, Browser, and Gemini AI functionalities on a Node.js server.
Este guia ensina como configurar um servidor MCP integrado que combina 4 funcionalidades:
Resultado: Todos os MCPs funcionando nativamente no Claude Code através de um único servidor Node.js.
# Node.js (versão 18 ou superior)
node --version # v18.0.0+
# Python (versão 3.11 ou 3.12)
python3 --version # 3.11.x ou 3.12.x
# Azure CLI
az --version
# Git
git --version
# Claude Code
# Instalar via: https://claude.ai/code
# Login no Azure
az login --tenant SEU_TENANT.onmicrosoft.com
# Configurar organização padrão
az devops configure --defaults organization=https://dev.azure.com/SUA_ORGANIZACAO/
# Instalar extensão Azure DevOps
az extension add --name azure-devops
# Testar listagem de projetos
az devops project list --organization https://dev.azure.com/SUA_ORGANIZACAO/
# Verificar token de acesso
az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798
# Criar diretório para MCP Gmail
mkdir -p ~/workspace/mcp-servers/gmail
cd ~/workspace/mcp-servers/gmail
credentials.json
# Criar virtual environment
python3 -m venv venv
source venv/bin/activate # Linux/Mac
# ou venv\Scripts\activate # Windows
# Instalar dependências
pip install google-auth google-auth-oauthlib google-api-python-client
# Criar script de autenticação
cat > test_auth.py << 'EOF'
import os
import json
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
SCOPES = [
'https://www.googleapis.com/auth/gmail.readonly',
'https://www.googleapis.com/auth/gmail.labels'
]
def authenticate_gmail():
creds = None
if os.path.exists('token.json'):
creds = Credentials.from_authorized_user_file('token.json', SCOPES)
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
creds = flow.run_local_server(port=0)
with open('token.json', 'w') as token:
token.write(creds.to_json())
service = build('gmail', 'v1', credentials=creds)
# Testar conexão
results = service.users().labels().list(userId='me').execute()
labels = results.get('labels', [])
print(f"✅ Gmail autenticado com sucesso!")
print(f"📧 Conta: {service.users().getProfile(userId='me').execute()['emailAddress']}")
print(f"🏷️ Labels encontrados: {len(labels)}")
return service
if __name__ == '__main__':
authenticate_gmail()
EOF
# Executar autenticação
python test_auth.py
mkdir -p ~/workspace/mcp-servers/browser
cd ~/workspace/mcp-servers/browser
# Criar virtual environment
python3 -m venv venv
source venv/bin/activate
# Instalar dependências
pip install playwright beautifulsoup4 requests lxml
# Instalar browsers do Playwright
playwright install chromium
# Criar script de teste
cat > test_browser.py << 'EOF'
from playwright.sync_api import sync_playwright
import requests
def test_browser():
print("🌐 Testando Browser MCP...")
# Teste 1: Playwright
try:
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://example.com")
title = page.title()
browser.close()
print(f"✅ Playwright funcionando - Título: {title}")
except Exception as e:
print(f"❌ Erro Playwright: {e}")
# Teste 2: Requests
try:
response = requests.get("https://httpbin.org/get", timeout=10)
if response.status_code == 200:
print("✅ Requests funcionando")
else:
print(f"❌ Requests erro: {response.status_code}")
except Exception as e:
print(f"❌ Erro Requests: {e}")
if __name__ == '__main__':
test_browser()
EOF
# Executar teste
python test_browser.py
mkdir -p ~/workspace/mcp-servers/gemini
cd ~/workspace/mcp-servers/gemini
# Criar virtual environment
python3 -m venv venv
source venv/bin/activate
# Instalar dependências
pip install google-generativeai
# Configurar API Key
echo "GEMINI_API_KEY=SUA_API_KEY_AQUI" > .env
# Criar script de teste
cat > test_gemini.py << 'EOF'
import os
import google.generativeai as genai
from dotenv import load_dotenv
load_dotenv()
def test_gemini():
print("🤖 Testando Gemini AI...")
api_key = os.getenv('GEMINI_API_KEY')
if not api_key:
print("❌ API Key não encontrada!")
return
try:
genai.configure(api_key=api_key)
model = genai.GenerativeModel('gemini-1.5-flash')
response = model.generate_content("Diga olá em português")
print(f"✅ Gemini funcionando!")
print(f"🤖 Resposta: {response.text}")
except Exception as e:
print(f"❌ Erro Gemini: {e}")
if __name__ == '__main__':
test_gemini()
EOF
# Instalar python-dotenv
pip install python-dotenv
# Executar teste
python test_gemini.py
# Navegar para diretório de trabalho
cd ~/workspace/projects/javascript
# Clonar o repositório MCP integrado
git clone https://github.com/SEU_USUARIO/azure-devops-mcp.git
cd azure-devops-mcp
# Instalar dependências
npm install
# Verificar estrutura
ls -la src/tools/
# Deve mostrar: core.ts, workitems.ts, gmail.ts, browser.ts, gemini.ts, etc.
Edite os arquivos de proxy para apontar para os diretórios corretos:
// src/tools/gmail.ts
const gmailPath = "/Users/SEU_USUARIO/workspace/mcp-servers/gmail";
// src/tools/browser.ts
const browserPath = "/Users/SEU_USUARIO/workspace/mcp-servers/browser";
// src/tools/gemini.ts
const geminiPath = "/Users/SEU_USUARIO/workspace/mcp-servers/gemini";
# Compilar TypeScript
npm run build
# Verificar se compilou
ls -la dist/
# Localizar arquivo de configuração do Claude
# Mac:
open ~/Library/Application\ Support/Claude/
# Linux:
~/.config/claude/
# Windows:
%APPDATA%/Claude/
{
"mcpServers": {
"azure-devops-unified": {
"command": "node",
"args": [
"/Users/SEU_USUARIO/workspace/projects/javascript/azure-devops-mcp/dist/index.js",
"SUA_ORGANIZACAO_AZURE_DEVOPS"
],
"env": {
"NODE_ENV": "production"
}
}
}
}
# Fechar completamente o Claude Code
# Reabrir Claude Code
# Os MCPs devem aparecer automaticamente
No Claude Code, digite:
ajuda mcp
Deve mostrar o banner com todos os 4 MCPs disponíveis.
Azure DevOps:
liste meus projetos azure devops
Gmail:
liste meus labels do gmail
Browser:
busque na web: Claude Code tips
Gemini:
generate com gemini: diga olá em português
mostre dashboard do projeto SEU_PROJETO
Solução:
# 1. Verificar se o servidor compila
cd azure-devops-mcp
npm run build
# 2. Verificar configuração
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
# 3. Testar manualmente
node dist/index.js SUA_ORGANIZACAO
Solução:
# Reautenticar
az logout
az login --tenant SEU_TENANT.onmicrosoft.com
Solução:
cd ~/workspace/mcp-servers/gmail
source venv/bin/activate
python test_auth.py
Solução:
# Verificar versão Python
python3 --version
# Se necessário, instalar pyenv
curl https://pyenv.run | bash
pyenv install 3.12.8
pyenv global 3.12.8
# Projetos
liste meus projetos azure devops
liste desenvolvedores do projeto [NOME]
# Work Items
liste tarefas em progresso do projeto [NOME]
liste tarefas fechadas do projeto [NOME]
mostre dashboard do projeto [NOME]
# Repositórios
liste repositórios do projeto [NOME]
mostre pull requests do projeto [NOME]
mostre builds do projeto [NOME]
liste meus labels do gmail
mostre meus emails recentes
busque emails de [REMETENTE]
leia o email [ID]
busque na web: [TERMO]
busque o conteúdo desta URL: [URL]
extraia conteúdo de: [URL]
capture screenshot de: [URL]
generate com gemini: [PROMPT]
analise este código com gemini: [CÓDIGO]
traduza com gemini: [TEXTO]
resuma com gemini: [TEXTO LONGO]
gemini chat: [MENSAGEM]
Após seguir este guia, você terá:
✅ Servidor MCP integrado funcionando
✅ 4 MCPs ativos (Azure DevOps, Gmail, Browser, Gemini)
✅ Claude Code conectado e funcional
✅ Comandos em português disponíveis
✅ Gestão completa de projetos e desenvolvimento
🚀 Agora você pode gerenciar seus projetos, emails, pesquisas web e IA diretamente no Claude Code!
Para dúvidas ou problemas:
node dist/index.js SUA_ORG
Última atualização: Dezembro 2024
Versão: 1.0.0
Analyzes Unreal Engine source code to provide context for AI assistants.
A platform-agnostic server for scalable mobile automation and development across iOS, Android, simulators, and emulators.
Interact with the Prefect API for workflow orchestration and management.
An MCP server and client implementation for the Swagger Petstore API.
An MCP server for generating images using the Pollinations AI API.
A GDB/MI protocol server based on the MCP protocol, providing remote application debugging capabilities with AI assistants.
Interact with CodeRabbit AI reviews on GitHub pull requests.
Search Apple's Developer Documentation with smart search and wildcard support.
Provides remote machine control capabilities, eliminating SSH overhead for token-efficient system operations.
A reasoning engine with multiple strategies, including Beam Search and Monte Carlo Tree Search.