Microsoft MCP
Acesse serviços da Microsoft como Outlook, Calendário e OneDrive através da API do Microsoft Graph.
GitHub
56
Experimente este MCPPatrocinadoDocumentação
Microsoft MCP
Poderoso servidor MCP para Microsoft Graph API - um conjunto completo de ferramentas de assistente de IA para Outlook, Calendário, OneDrive e Contatos.
Recursos
- Gerenciamento de Email: Ler, enviar, responder, gerenciar anexos, organizar pastas
- Inteligência de Calendário: Criar, atualizar, verificar disponibilidade, responder a convites
- Arquivos do OneDrive: Enviar, baixar, navegar com paginação
- Contatos: Pesquisar e listar contatos da sua agenda de endereços
- Múltiplas Contas: Suporte para várias contas Microsoft (pessoal, trabalho, escola)
- Pesquisa Unificada: Pesquisar em emails, arquivos, eventos e pessoas
Início Rápido com Claude Desktop
# Add Microsoft MCP server (replace with your Azure app ID)
claude mcp add microsoft-mcp -e MICROSOFT_MCP_CLIENT_ID=your-app-id-here -- uvx --from git+https://github.com/elyxlz/microsoft-mcp.git microsoft-mcp
# Start Claude Desktop
claude
Exemplos de Uso
# Email examples
> read my latest emails with full content
> reply to the email from John saying "I'll review this today"
> send an email with attachment to alice@example.com
# Calendar examples
> show my calendar for next week
> check if I'm free tomorrow at 2pm
> create a meeting with Bob next Monday at 10am
# File examples
> list files in my OneDrive
> upload this report to OneDrive
> search for "project proposal" across all my files
# Multi-account
> list all my Microsoft accounts
> send email from my work account
Ferramentas Disponíveis
Ferramentas de Email
list_emails- Listar emails com conteúdo opcional do corpoget_email- Obter email específico com anexoscreate_email_draft- Criar rascunho de email com suporte a anexossend_email- Enviar email imediatamente com CC/CCO e anexosreply_to_email- Responder mantendo o contexto da conversareply_all_email- Responder a todos os destinatários na conversaupdate_email- Marcar emails como lidos/não lidosmove_email- Mover emails entre pastasdelete_email- Excluir emailsget_attachment- Obter conteúdo de anexos de emailsearch_emails- Pesquisar emails por consulta
Ferramentas de Calendário
list_events- Listar eventos de calendário com detalhesget_event- Obter detalhes de evento específicocreate_event- Criar eventos com local e participantesupdate_event- Reagendar ou modificar eventosdelete_event- Cancelar eventosrespond_event- Aceitar/recusar/responder provisoriamente a convitescheck_availability- Verificar horários livres/ocupados para agendamentosearch_events- Pesquisar eventos de calendário
Ferramentas de Contatos
list_contacts- Listar todos os contatosget_contact- Obter detalhes de contato específicocreate_contact- Criar novo contatoupdate_contact- Atualizar informações de contatodelete_contact- Excluir contatosearch_contacts- Pesquisar contatos por consulta
Ferramentas de Arquivos
list_files- Navegar por arquivos e pastas do OneDriveget_file- Baixar conteúdo de arquivocreate_file- Enviar arquivos para o OneDriveupdate_file- Atualizar conteúdo de arquivo existentedelete_file- Excluir arquivos ou pastassearch_files- Pesquisar arquivos no OneDrive
Ferramentas Utilitárias
unified_search- Pesquisar em emails, eventos e arquivoslist_accounts- Mostrar contas Microsoft autenticadasauthenticate_account- Iniciar autenticação para uma nova conta Microsoftcomplete_authentication- Concluir o processo de autenticação após inserir o código do dispositivo
Configuração Manual
1. Registro de Aplicativo do Azure
- Vá para Azure Portal → Microsoft Entra ID → Registros de aplicativos
- Novo registro → Nome:
microsoft-mcp - Tipos de conta suportados: Pessoal + Trabalho/Escola
- Autenticação → Permitir fluxos de cliente público: Sim
- Permissões de API → Adicione estas permissões delegadas:
- Mail.ReadWrite
- Calendars.ReadWrite
- Files.ReadWrite
- Contacts.Read
- People.Read
- User.Read
- Copie o ID do Aplicativo
2. Instalação
git clone https://github.com/elyxlz/microsoft-mcp.git
cd microsoft-mcp
uv sync
3. Autenticação
# Set your Azure app ID
export MICROSOFT_MCP_CLIENT_ID="your-app-id-here"
# Run authentication script
uv run authenticate.py
# Follow the prompts to authenticate your Microsoft accounts
4. Configuração do Claude Desktop
Adicione à sua configuração do Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"microsoft": {
"command": "uvx",
"args": ["--from", "git+https://github.com/elyxlz/microsoft-mcp.git", "microsoft-mcp"],
"env": {
"MICROSOFT_MCP_CLIENT_ID": "your-app-id-here"
}
}
}
}
Ou para desenvolvimento local:
{
"mcpServers": {
"microsoft": {
"command": "uv",
"args": ["--directory", "/path/to/microsoft-mcp", "run", "microsoft-mcp"],
"env": {
"MICROSOFT_MCP_CLIENT_ID": "your-app-id-here"
}
}
}
}
Suporte a Múltiplas Contas
Todas as ferramentas exigem um parâmetro account_id como primeiro argumento:
# List accounts to get IDs
accounts = list_accounts()
account_id = accounts[0]["account_id"]
# Use account for operations
send_email(account_id, "user@example.com", "Subject", "Body")
list_emails(account_id, limit=10, include_body=True)
create_event(account_id, "Meeting", "2024-01-15T10:00:00Z", "2024-01-15T11:00:00Z")
Desenvolvimento
# Run tests
uv run pytest tests/ -v
# Type checking
uv run pyright
# Format code
uvx ruff format .
# Lint
uvx ruff check --fix --unsafe-fixes .
Exemplo: Cenários de Assistente de IA
Gerenciamento Inteligente de Email
# Get account ID first
accounts = list_accounts()
account_id = accounts[0]["account_id"]
# List latest emails with full content
emails = list_emails(account_id, limit=10, include_body=True)
# Reply maintaining thread
reply_to_email(account_id, email_id, "Thanks for your message. I'll review and get back to you.")
# Forward with attachments
email = get_email(email_id, account_id)
attachments = [get_attachment(email_id, att["id"], account_id) for att in email["attachments"]]
send_email(account_id, "boss@company.com", f"FW: {email['subject']}", email["body"]["content"], attachments=attachments)
Agendamento Inteligente
# Get account ID first
accounts = list_accounts()
account_id = accounts[0]["account_id"]
# Check availability before scheduling
availability = check_availability(account_id, "2024-01-15T10:00:00Z", "2024-01-15T18:00:00Z", ["colleague@company.com"])
# Create meeting with details
create_event(
account_id,
"Project Review",
"2024-01-15T14:00:00Z",
"2024-01-15T15:00:00Z",
location="Conference Room A",
body="Quarterly review of project progress",
attendees=["colleague@company.com", "manager@company.com"]
)
Notas de Segurança
- Os tokens são armazenados em cache localmente em
~/.microsoft_mcp_token_cache.json - Use senhas específicas do aplicativo se você tiver 2FA habilitado
- Solicite apenas as permissões que seu aplicativo realmente precisa
- Considere usar um registro de aplicativo dedicado para produção
Solução de Problemas
- Falha na autenticação: Verifique se seu CLIENT_ID está correto
- "Precisa de aprovação do administrador": Use
MICROSOFT_MCP_TENANT_ID=consumerspara contas pessoais - Permissões ausentes: Garanta que todas as permissões de API necessárias sejam concedidas no Azure
- Erros de token: Exclua
~/.microsoft_mcp_token_cache.jsone reautentique
Licença
MIT