OpenTK

Fornece acesso a documentos parlamentares holandeses, debates e informações de membros da Tweede Kamer por meio do projeto OpenTK.

Documentação

Servidor Model Context Protocol OpenTK

Atribuição Importante: Este servidor MCP é construído como um wrapper em torno do excelente projeto OpenTK criado por Bert Hubert. O projeto OpenTK fornece acesso sem precedentes aos dados parlamentares holandeses por meio de uma interface amigável. Saiba mais sobre o projeto no artigo de Bert: Welkom bij OpenTK. Todo o crédito pelo acesso e processamento subjacente dos dados vai para Bert Hubert e suas contribuições para dados governamentais abertos.

Uma ponte entre grandes modelos de linguagem (LLMs) e dados parlamentares holandeses por meio de uma interface padronizada. Este servidor MCP fornece acesso a documentos parlamentares holandeses, debates e informações de membros da Tweede Kamer.

OpenTK Model Context Protocol Server MCP server

Exemplos Reais de Interação em Linguagem Natural

Exemplo 1: Comparando Posições dos Partidos sobre Políticas de IA

Consulta do Usuário: "Ao comparar as atividades dos partidos de oposição PvdA, GroenLinks e Volt com o partido governista BBB na Câmara dos Representantes holandesa na área de IA, quais são as ações que eles podem realizar juntos no curto prazo que estejam alinhadas com as posições e visões que demonstraram ao longo do último ano? Por favor, use fontes do OpenTK."

Exemplo 2: Pesquisando Discussões Parlamentares sobre Política Climática

Consulta do Usuário: "Gostaria de analisar os debates parlamentares recentes sobre política climática e metas de redução de emissões nos Países Baixos. Você pode me ajudar a identificar as principais discussões e as posições adotadas pelos diferentes partidos nos últimos seis meses?"

Exemplo 3: Informações sobre o Histórico de Votação de um Deputado Específico

Consulta do Usuário: "Qual é o histórico de votação do deputado Pieter Omtzigt sobre a legislação de reforma da saúde, e como sua posição difere de outros membros independentes? Ele apresentou alguma moção sobre este tópico?"

Exemplo 4: Encontrando Desenvolvimentos Recentes na Legislação de Habitação

Consulta do Usuário: "Quais são os documentos e debates parlamentares mais significativos sobre legislação de habitação acessível do último ano? Estou particularmente interessado em propostas que abordem a crise do mercado de aluguel."

Exemplo 5: Triagem Eficiente de Múltiplos Documentos (NOVO - Análise Inteligente)

Consulta do Usuário: "Encontrei 15 documentos sobre política climática do último mês. Você pode identificar rapidamente quais 3 documentos são mais relevantes para subsídios de energia renovável e legislação de energia eólica, sem ler todos por completo?"

Exemplo 6: Extraindo Tópicos Principais de Documentos Parlamentares (NOVO - Análise Inteligente)

Consulta do Usuário: "Quais são os principais tópicos, palavras-chave e partidos políticos mencionados no documento 2024D39058? Quero entender do que se trata antes de mergulhar no texto completo."

Exemplo 7: Encontrando Deputados com Participações Específicas em Comissões

Consulta do Usuário: "Quais deputados atualmente atuam tanto na Comissão de Finanças quanto na Comissão de Assuntos Econômicos? Quais partidos eles representam e eles apresentaram recentemente alguma iniciativa conjunta?"

Exemplo 8: Identificando Atividades Parlamentares Futuras sobre Segurança Digital

Consulta do Usuário: "Há alguma reunião de comissão ou debate agendado sobre segurança cibernética e infraestrutura digital planejado para o próximo mês? Quais ministros participarão e quais tópicos específicos serão abordados?"

Conceito do Projeto

O projeto OpenTK é um servidor Model Context Protocol (MCP) que fornece acesso a dados parlamentares holandeses por meio de uma interface padronizada. Ele serve como uma ponte entre grandes modelos de linguagem (LLMs) e os sistemas de informação do Parlamento holandês, permitindo que assistentes de IA pesquisem, recuperem e analisem documentos parlamentares, debates e informações de membros.

O servidor usa o @modelcontextprotocol/sdk para implementar a especificação MCP, que permite comunicação estruturada entre modelos de IA e fontes de dados externas. Ao expor dados parlamentares por meio de ferramentas e endpoints bem definidos, o OpenTK torna possível que assistentes de IA:

  1. Pesquisem documentos parlamentares usando consultas complexas
  2. Acessem informações sobre membros do Parlamento
  3. Recuperem documentos oficiais em vários formatos e leiam o conteúdo completo dos documentos
  4. Analisem atividades e procedimentos parlamentares
  5. Acompanhem casos legislativos e compromissos do governo
  6. Analisem inteligentemente a relevância de documentos usando PLN antes de carregar o conteúdo completo (NOVO na v1.0.16)
  7. Extraiam palavras-chave, entidades e tópicos para triagem eficiente de documentos (NOVO na v1.0.16)

O projeto utiliza o serviço tkconv de Bert Hubert como sua principal fonte de dados, que fornece uma API mais acessível do que as APIs oficiais do Parlamento holandês.

Recursos

Acesso Principal a Dados Parlamentares

  • Pesquisar documentos parlamentares com recursos avançados de consulta (operadores de aspas, NOT, OR, NEAR)
  • Acessar informações abrangentes de deputados e participações em comissões
  • Recuperar conteúdo completo de documentos (PDF, Word) com divisão inteligente em partes
  • Acompanhar casos legislativos, atividades do governo e resultados de votação
  • Acesso em tempo real a procedimentos parlamentares e atividades futuras

Análise Inteligente de Documentos (NOVO na v1.0.16) 🎯

  • Análise de Relevância com PLN: Analise documentos de forma inteligente antes de carregar o conteúdo completo
  • Extração de Palavras-Chave TF-IDF: Identifique os 10-15 termos mais importantes em qualquer documento
  • Reconhecimento de Entidades Otimizado para Holandês: Detecte automaticamente pessoas (deputados, ministros), partidos políticos (VVD, PVV, CDA, D66, etc.) e organizações
  • Categorização de Tópicos: Classifique documentos em 10 grandes temas políticos (Clima, Economia, Saúde, Educação, etc.)
  • Pontuação de Relevância: Classifique documentos por relevância a termos de busca específicos (pontuação de 0 a 100)
  • Triagem Eficiente em Contexto: Reduza o uso da janela de contexto em 80-90% ao avaliar múltiplos documentos

Navegação Avançada em Documentos

  • Encontrar ocorrências específicas de pessoas com correspondência difusa (fuzzy matching)
  • Encontrar menções a partidos com correspondência difusa
  • Navegar por documentos grandes com eficiência usando deslocamentos de caracteres
  • Leitura sequencial com suporte a paginação

Ferramentas Disponíveis

O OpenTK fornece 17 ferramentas especializadas para acessar dados parlamentares holandeses:

Visão Geral e Descoberta

  • get_overview: Visão geral abrangente das atividades parlamentares recentes e aniversários de deputados (paginado)
  • birthdays_today: Listar deputados que comemoram aniversário hoje
  • list_persons: Diretório completo dos deputados atuais com afiliações partidárias

Pesquisa e Filtro

  • search_tk: Pesquisa abrangente em todos os dados parlamentares com sintaxe avançada de consulta
  • search_tk_filtered: Pesquisar em categorias específicas (Document, Activiteit, Zaak)
  • search_by_category: Pesquisar tipos específicos de documentos (perguntas, moções, todos)

Inteligência de Documentos (NOVO) 🎯

  • analyze_document_relevance: Análise de documentos com tecnologia PLN, incluindo extração de palavras-chave, reconhecimento de entidades e pontuação de relevância
  • get_document_content: Recuperar conteúdo de documentos (PDF/DOCX) com três modos de leitura (direcionada, sequencial, completa)
  • find_person_in_document: Localizar todas as ocorrências de uma pessoa em um documento com correspondência difusa
  • find_party_in_document: Localizar todas as ocorrências de um partido político em um documento

Metadados de Documentos

  • get_document_details: Recuperar metadados estruturados sobre documentos
  • get_document_links: Converter URLs de documentos em links markdown clicáveis

Estrutura Parlamentar

  • get_committees: Listar todas as comissões parlamentares
  • get_committee_details: Informações detalhadas sobre comissões específicas

Atividades e Votação

  • get_upcoming_activities: Próximos debates e reuniões parlamentares
  • get_voting_results: Resultados de votação recentes com posições dos partidos

Mídia

  • get_photo: Recuperar fotografias oficiais de retrato dos deputados

Instalação

1. Início Rápido com Pacote NPM (Recomendado)

A maneira mais rápida de começar é usar o pacote npm publicado:

npx @r-huijts/opentk-mcp

2. Usando Claude Desktop com Pacote NPM

Atualize seu arquivo de configuração do Claude (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "opentk": {
      "command": "npx",
      "args": [
        "-y",
        "@r-huijts/opentk-mcp"
      ]
    }
  }
}

Configurações alternativas:

Para MultiServerMCPClient (Python):

mcp_client = MultiServerMCPClient({
    "opentk": {
        "command": "npx",
        "args": ["-y", "@r-huijts/opentk-mcp"],
        "transport": "stdio",
    }
})

3. A Partir do Código-Fonte (Desenvolvimento)

Se você quiser modificar o código ou contribuir para o desenvolvimento:

Clonar Repositório:

git clone https://github.com/r-huijts/opentk-mcp.git
cd opentk-mcp

Instalar Dependências:

npm install

Compilar o Projeto:

npm run build

Iniciar o Servidor:

npm start

Configurar o Claude Desktop para desenvolvimento local:

Atualize seu arquivo de configuração do Claude:

{
  "mcpServers": {
    "opentk-local": {
      "command": "node",
      "args": [
        "/absolute/path/to/your/opentk-mcp/dist/index.js"
      ]
    }
  }
}

Certifique-se de substituir /absolute/path/to/your/opentk-mcp/ pelo caminho real da sua instalação.

4. Publicação (para mantenedores)

Para publicar uma nova versão do pacote com escopo:

npm run build
npm publish --access=public

Nota: Pacotes com escopo exigem a flag --access=public para estarem disponíveis publicamente.

Funcionalidade de Pesquisa

A funcionalidade de pesquisa é particularmente sofisticada, com suporte a:

  • Pesquisas simples por palavras-chave: kunstmatige intelligentie
  • Pesquisas por frases exatas: "kunstmatige intelligentie"
  • Pesquisas com exclusão: Hubert NOT Bruls
  • Operadores booleanos: OR, NEAR()

A implementação lida com vários casos extremos:

  • Preserva aspas em consultas de pesquisa
  • Usa cabeçalhos de tipo de conteúdo adequados
  • Implementa mecanismos de fallback para erros de API
  • Fornece mensagens de erro significativas

Tratamento de Erros

O serviço de API inclui tratamento robusto de erros:

  • Tratamento gracioso de erros de API (4xx, 5xx)
  • Fallback para consultas simplificadas quando consultas complexas falham
  • Mensagens de erro detalhadas para depuração
  • Registro adequado em stderr (não stdout, o que quebraria o transporte stdio)

Configuração

O servidor se conecta ao serviço tkconv de Bert Hubert como sua principal fonte de dados, que fornece uma API mais acessível do que as APIs oficiais do Parlamento holandês. Este serviço, criado por Bert Hubert, faz o trabalho pesado de coletar, organizar e disponibilizar dados parlamentares holandeses em um formato amigável para desenvolvedores. Nosso servidor MCP se baseia nessa fundação para criar uma interface padronizada para assistentes de IA interagirem com esses dados valiosos.

Licença

MIT

Conclusão

O servidor MCP OpenTK fornece uma interface robusta e bem estruturada para dados parlamentares holandeses, tornando-os acessíveis a assistentes de IA por meio do Model Context Protocol. Seu design modular, API abrangente, análise de documentos com PLN (v1.0.16) e testes completos garantem acesso confiável a informações parlamentares para pesquisa, análise e recuperação de informações assistidas por IA.

Uma vez configurado, o Claude poderá acessar dados parlamentares holandeses por meio do servidor MCP OpenTK usando todas as 17 ferramentas especializadas para pesquisa, análise de documentos, informações de deputados, acompanhamento de comissões, resultados de votação e muito mais.