Wikipedia Simple English MCP Server

Acesse o conteúdo da Wikipédia, priorizando o Simple English com fallback para o inglês padrão.

Documentação

Servidor MCP da Wikipédia em Inglês Simples

Um servidor Model Context Protocol (MCP) que fornece acesso ao conteúdo da Wikipédia, priorizando a Wikipédia em Inglês Simples, com fallback inteligente para a Wikipédia em inglês regular quando o conteúdo não está disponível ou é de baixa qualidade.

Visão Geral

Este servidor MCP atua como uma ponte entre assistentes de IA e a Wikipédia, projetado especificamente para:

  • Priorizar Inglês Simples: Usa a Wikipédia em Inglês Simples primeiro para conteúdo mais claro e acessível
  • Fallback Inteligente: Alterna automaticamente para a Wikipédia em inglês regular quando necessário
  • Detecção de Qualidade: Avalia a qualidade do conteúdo e muda para a Wikipédia em inglês para artigos esboço (stubs)
  • Focado no Usuário: Projetado com legibilidade e usabilidade em mente

Recursos

🔍 Ferramenta de Busca

  • Busca em artigos da Wikipédia
  • Retorna metadados estruturados e lista classificada de títulos de páginas relevantes
  • Tenta Inglês Simples primeiro, com fallback para inglês
  • Limites de resultados configuráveis

📄 Ferramenta de Resumo

  • Recupera resumos/extratos de páginas da Wikipédia
  • Respostas leves e rápidas para visões gerais rápidas
  • Metadados estruturados com indicadores de comprimento de conteúdo e idioma
  • Tratamento automático de desambiguação

📖 Ferramenta de Conteúdo

  • Recupera o conteúdo completo de páginas da Wikipédia
  • Texto completo do artigo para pesquisa detalhada
  • Saída estruturada com blocos separados de metadados e conteúdo
  • Seleção de idioma baseada em qualidade

Instalação e Configuração

Pré-requisitos

  • Python 3.12 ou superior
  • Gerenciador de pacotes uv

Início Rápido

Execute diretamente com uvx:

uvx git+https://github.com/bhubbb/mcp-se-wikipedia

Ou instale localmente:

  1. Clone ou baixe este projeto

  2. Instale as dependências:

    cd mcp-se-wikipedia
    uv sync
    
  3. Execute o servidor:

    uv run python main.py
    

Integração com Assistentes de IA

Este servidor MCP foi projetado para funcionar com assistentes de IA que suportam o Model Context Protocol. Configure seu assistente de IA para conectar a este servidor via stdio.

Exemplo de configuração para Claude Desktop:

{
  "mcpServers": {
    "wikipedia-se": {
      "command": "uvx",
      "args": ["git+https://github.com/bhubbb/mcp-se-wikipedia"]
    }
  }
}

Ou se estiver usando uma instalação local:

{
  "mcpServers": {
    "wikipedia-se": {
      "command": "uv",
      "args": ["run", "python", "/path/to/mcp-se-wikipedia/main.py"]
    }
  }
}

Para usar exclusivamente a Wikipédia em inglês completo (ignorando Inglês Simples):

{
  "mcpServers": {
    "wikipedia-se": {
      "command": "uvx",
      "args": ["git+https://github.com/bhubbb/mcp-se-wikipedia"],
      "env": {
        "WIKIPEDIA_MODE": "full"
      }
    }
  }
}

Configuração

O comportamento do servidor pode ser configurado usando variáveis de ambiente:

WIKIPEDIA_MODE

Controla qual versão da Wikipédia usar:

  • simple (padrão): Prioriza a Wikipédia em Inglês Simples com fallback automático para inglês regular
  • full: Usa apenas a Wikipédia em inglês regular, ignorando Inglês Simples completamente

Exemplo de uso:

# Default mode (Simple English first)
uv run python main.py

# Full Wikipedia mode only
WIKIPEDIA_MODE=full uv run python main.py

Isso é útil quando:

  • Você precisa de conteúdo técnico mais detalhado
  • Você quer resultados consistentes da Wikipédia regular
  • Você está trabalhando com tópicos que têm melhor cobertura na Wikipédia em inglês completo

Ferramentas Disponíveis

search

Busca na Wikipédia por artigos com resultados estruturados.

Parâmetros:

  • query (obrigatório): Termos de busca
  • limit (opcional): Máximo de resultados a retornar (1-20, padrão: 10)

Retorna:

  • Metadados da busca (versão da Wikipédia, consulta, contagem de resultados, código de idioma)
  • Lista de títulos de artigos correspondentes

Exemplo:

{
  "name": "search",
  "arguments": {
    "query": "solar system",
    "limit": 5
  }
}

summary

Obtém o resumo/extrato de uma página da Wikipédia.

Parâmetros:

  • title (obrigatório): Título da página para recuperar o resumo
  • auto_suggest (opcional): Sugerir automaticamente títulos semelhantes se a correspondência exata não for encontrada (padrão: verdadeiro)

Retorna:

  • Metadados do resumo (título, versão da Wikipédia, código de idioma, URL, comprimento do conteúdo)
  • Texto do resumo da página

Exemplo:

{
  "name": "summary",
  "arguments": {
    "title": "Earth",
    "auto_suggest": true
  }
}

content

Obtém o conteúdo completo de uma página da Wikipédia.

Parâmetros:

  • title (obrigatório): Título da página para recuperar o conteúdo completo
  • auto_suggest (opcional): Sugerir automaticamente títulos semelhantes se a correspondência exata não for encontrada (padrão: verdadeiro)

Retorna:

  • Metadados do conteúdo (título, versão da Wikipédia, código de idioma, URL, comprimento do conteúdo)
  • Conteúdo completo do artigo

Exemplo:

{
  "name": "content",
  "arguments": {
    "title": "Earth",
    "auto_suggest": true
  }
}

Como Funciona

Sistema de Prioridade de Idioma

  1. Inglês Simples Primeiro (modo padrão): Todas as solicitações começam com a Wikipédia em Inglês Simples
  2. Verificação de Qualidade: Para solicitações de conteúdo/resumo, verifica se o conteúdo é substancial (>500 caracteres)
  3. Fallback Automático: Muda para a Wikipédia em inglês se:
    • A página não existe em Inglês Simples
    • O conteúdo é muito breve (provavelmente um esboço)
    • A busca não retorna resultados
  4. Modo Wikipédia Completa: Quando WIKIPEDIA_MODE=full está definido, ignora Inglês Simples e usa a Wikipédia em inglês regular diretamente

Formato de Saída Estruturado

Todas as ferramentas retornam respostas estruturadas com blocos separados para:

  • Metadados: Versão da Wikipédia, códigos de idioma, URLs, estatísticas de conteúdo
  • Conteúdo: Resultados de busca, resumos ou conteúdo completo do artigo
  • Opções: Escolhas de desambiguação quando várias páginas correspondem

Essa estrutura torna as respostas tanto legíveis por humanos quanto analisáveis por máquinas.

Tratamento de Erros

  • Desambiguação: Quando várias páginas correspondem, retorna lista de opções
  • Página Não Encontrada: Mensagens de erro claras com sugestões
  • Problemas de Rede: Tratamento de erros gracioso com mensagens informativas

Casos de Uso

Para Estudantes e Aprendizes

  • Obtenha explicações simplificadas de tópicos complexos
  • Acesse conteúdo educacional em linguagem mais clara
  • Assistência em pesquisa com ajuste automático de complexidade

Para Criação de Conteúdo

  • Material de origem para artigos e explicações
  • Verificação de fatos com fontes confiáveis da Wikipédia
  • Suporte à pesquisa com otimização de legibilidade

Para Acessibilidade

  • Conteúdo mais fácil de ler para vários níveis de leitura
  • Linguagem simplificada para falantes não nativos
  • Entrega de informações clara e concisa

Exemplos

Busca Básica

Pergunte ao seu assistente de IA: "Busque na Wikipédia informações sobre fotossíntese"

O servidor irá:

  1. Buscar na Wikipédia em Inglês Simples por "fotossíntese"
  2. Retornar metadados estruturados (versão, código de idioma, contagem de resultados)
  3. Fornecer uma lista de artigos relevantes
  4. Fazer fallback para a Wikipédia em inglês se necessário

Recuperação de Resumo

Pergunte ao seu assistente de IA: "Obtenha um resumo da Lua da Wikipédia"

O servidor irá:

  1. Tentar buscar o resumo de "Lua" na Wikipédia em Inglês Simples
  2. Retornar metadados estruturados (título, versão, URL, comprimento do conteúdo)
  3. Fornecer o resumo da página
  4. Fazer fallback para a Wikipédia em inglês se Inglês Simples não estiver disponível

Recuperação de Conteúdo Completo

Pergunte ao seu assistente de IA: "Obtenha o artigo completo da Wikipédia sobre a Lua"

O servidor irá:

  1. Tentar buscar o artigo completo de "Lua" na Wikipédia em Inglês Simples
  2. Verificar se o conteúdo é substancial o suficiente
  3. Retornar metadados estruturados e conteúdo completo do artigo
  4. Fazer fallback para a Wikipédia em inglês se necessário

Tratamento de Desambiguação

Pergunte ao seu assistente de IA: "Obtenha informações sobre Mercúrio"

Se várias páginas corresponderem (planeta Mercúrio, elemento Mercúrio, etc.), o servidor retornará:

  • Metadados de desambiguação estruturados
  • Uma lista de opções para escolher

Desenvolvimento

Estrutura do Projeto

mcp-se-wikipedia/
├── main.py          # Main MCP server implementation
├── pyproject.toml   # Project dependencies and metadata
├── AGENT.md         # This documentation
└── .venv/           # Virtual environment (created by uv)

Dependências Principais

  • mcp: Framework Model Context Protocol
  • wikipedia: Wrapper da API Python da Wikipédia
  • asyncio: Suporte async/await para MCP

Personalização

O servidor pode ser facilmente personalizado modificando main.py:

  • Limite de Qualidade: Altere o limite de 500 caracteres para qualidade de conteúdo
  • Limites de Busca: Modifique os limites padrão e máximo de resultados de busca
  • Configurações de Idioma: Adicione suporte para outros idiomas da Wikipédia
  • Filtragem de Conteúdo: Adicione processamento ou filtragem de conteúdo personalizado

Testando o Servidor

Teste o servidor diretamente:

uvx git+https://github.com/bhubbb/mcp-se-wikipedia

Ou com instalação local:

cd mcp-se-wikipedia
uv run python main.py

O servidor se comunica via JSON-RPC sobre stdin/stdout, então você precisará de um cliente MCP ou assistente de IA para interagir adequadamente com ele.

Solução de Problemas

Problemas Comuns

  1. Erros de Importação: Certifique-se de que todas as dependências estejam instaladas com uv sync
  2. Problemas de Conexão: Verifique a conectividade de rede para acesso à API da Wikipédia
  3. Limitação de Taxa: A Wikipédia tem limites de taxa; o servidor lida com isso graciosamente

Depuração

Ative o registro de depuração modificando o nível de registro em main.py:

logging.basicConfig(level=logging.DEBUG)

Contribuindo

Esta é uma implementação simples de arquivo único, projetada para clareza e facilidade de modificação. Sinta-se à vontade para:

  • Adicionar suporte para novos idiomas da Wikipédia
  • Implementar filtragem adicional de conteúdo
  • Adicionar cache para melhor desempenho
  • Estender com recursos adicionais da Wikipédia

Licença

Este projeto usa a mesma licença que suas dependências. O conteúdo da Wikipédia acessado através deste servidor está sujeito aos termos de licenciamento da Wikipédia.