OpenTK
Proporciona acceso a documentos parlamentarios neerlandeses, debates e información de miembros del Tweede Kamer a través del proyecto OpenTK.
Documentación
Servidor OpenTK del Protocolo de Contexto de Modelo
Atribución importante: Este servidor MCP está construido como un envoltorio alrededor del excelente proyecto OpenTK creado por Bert Hubert. El proyecto OpenTK proporciona un acceso sin precedentes a los datos parlamentarios neerlandeses a través de una interfaz fácil de usar. Obtenga más información sobre el proyecto en el artículo de Bert: Welkom bij OpenTK. Todo el crédito por el acceso y procesamiento subyacente de datos corresponde a Bert Hubert y sus contribuciones a los datos gubernamentales abiertos.
Un puente entre los modelos de lenguaje grandes (LLM) y los datos parlamentarios neerlandeses a través de una interfaz estandarizada. Este servidor MCP proporciona acceso a documentos parlamentarios neerlandeses, debates e información de miembros de la Tweede Kamer.
Ejemplos Reales de Interacción en Lenguaje Natural
Ejemplo 1: Comparación de Posiciones de Partidos sobre Políticas de IA
Consulta del usuario: "Al comparar las actividades de los partidos de oposición PvdA, GroenLinks y Volt con el partido gubernamental BBB en la Cámara de Representantes neerlandesa en el ámbito de la IA, ¿cuáles son las acciones que pueden emprender juntos a corto plazo que se alineen con las posiciones y puntos de vista que han demostrado durante el último año? Utilice fuentes de OpenTK."
Ejemplo 2: Investigación de Discusiones Parlamentarias sobre Política Climática
Consulta del usuario: "Me gustaría analizar los debates parlamentarios recientes sobre política climática y objetivos de reducción de emisiones en los Países Bajos. ¿Puede ayudarme a identificar discusiones clave y las principales posiciones adoptadas por diferentes partidos durante los últimos seis meses?"
Ejemplo 3: Información sobre el Registro de Votación de un Diputado Específico
Consulta del usuario: "¿Cuál es el registro de votación del diputado Pieter Omtzigt sobre la legislación de reforma sanitaria, y en qué se diferencia su posición de la de otros miembros independientes? ¿Ha presentado alguna moción sobre este tema?"
Ejemplo 4: Búsqueda de Desarrollos Recientes en Legislación de Vivienda
Consulta del usuario: "¿Cuáles son los documentos y debates parlamentarios más significativos sobre legislación de vivienda asequible del último año? Me interesan especialmente las propuestas que abordan la crisis del mercado de alquiler."
Ejemplo 5: Triaje Eficiente de Múltiples Documentos (NUEVO - Análisis Inteligente)
Consulta del usuario: "Encontré 15 documentos sobre política climática del último mes. ¿Puede identificar rápidamente cuáles 3 documentos son más relevantes para los subsidios de energía renovable y la legislación sobre energía eólica, sin leerlos todos en su totalidad?"
Ejemplo 6: Extracción de Temas Clave de Documentos Parlamentarios (NUEVO - Análisis Inteligente)
Consulta del usuario: "¿Cuáles son los temas principales, palabras clave y partidos políticos mencionados en el documento 2024D39058? Quiero entender de qué trata antes de sumergirme en el texto completo."
Ejemplo 7: Búsqueda de Diputados con Membresías Específicas en Comités
Consulta del usuario: "¿Qué diputados sirven actualmente tanto en el Comité de Finanzas como en el Comité de Asuntos Económicos? ¿Qué partidos representan y han presentado recientemente alguna iniciativa conjunta?"
Ejemplo 8: Identificación de Actividades Parlamentarias Próximas sobre Seguridad Digital
Consulta del usuario: "¿Hay reuniones de comités o debates programados sobre ciberseguridad e infraestructura digital para el próximo mes? ¿Qué ministros participarán y qué temas específicos se abordarán?"
Concepto del Proyecto
El proyecto OpenTK es un servidor del Protocolo de Contexto de Modelo (MCP) que proporciona acceso a los datos parlamentarios neerlandeses a través de una interfaz estandarizada. Sirve como puente entre los modelos de lenguaje grandes (LLM) y los sistemas de información del Parlamento neerlandés, permitiendo que los asistentes de IA busquen, recuperen y analicen documentos parlamentarios, debates e información de miembros.
El servidor utiliza el @modelcontextprotocol/sdk para implementar la especificación MCP, que permite la comunicación estructurada entre modelos de IA y fuentes de datos externas. Al exponer los datos parlamentarios a través de herramientas y endpoints bien definidos, OpenTK hace posible que los asistentes de IA:
- Busquen documentos parlamentarios utilizando consultas complejas
- Accedan a información sobre los miembros del Parlamento
- Recuperen documentos oficiales en varios formatos y lean el contenido completo de los documentos
- Analicen actividades y procedimientos parlamentarios
- Realicen seguimiento de casos legislativos y compromisos gubernamentales
- Analicen inteligentemente la relevancia de documentos usando NLP antes de cargar el contenido completo (NUEVO en v1.0.16)
- Extraigan palabras clave, entidades y temas para un triaje eficiente de documentos (NUEVO en v1.0.16)
El proyecto aprovecha el servicio tkconv de Bert Hubert como su fuente de datos principal, que proporciona una API más accesible que las API oficiales del Parlamento neerlandés.
Características
Acceso Principal a Datos Parlamentarios
- Búsqueda de documentos parlamentarios con capacidades de consulta avanzadas (operadores de comillas, NOT, OR, NEAR)
- Acceso a información completa de diputados y membresías en comités
- Recuperación del contenido completo de documentos (PDF, Word) con fragmentación inteligente
- Seguimiento de casos legislativos, actividades gubernamentales y resultados de votación
- Acceso en tiempo real a procedimientos parlamentarios y actividades próximas
Análisis Inteligente de Documentos (NUEVO en v1.0.16) 🎯
- Análisis de Relevancia Impulsado por NLP: Analice documentos inteligentemente antes de cargar el contenido completo
- Extracción de Palabras Clave TF-IDF: Identifique los 10-15 términos más importantes en cualquier documento
- Reconocimiento de Entidades Optimizado para Neerlandés: Detecte automáticamente personas (diputados, ministros), partidos políticos (VVD, PVV, CDA, D66, etc.) y organizaciones
- Categorización de Temas: Clasifique documentos en 10 temas políticos principales (Clima, Economía, Salud, Educación, etc.)
- Puntuación de Relevancia: Clasifique documentos por relevancia a términos de búsqueda específicos (puntuación de 0-100)
- Triaje Eficiente en Contexto: Reduzca el uso de la ventana de contexto en un 80-90% al evaluar múltiples documentos
Navegación Avanzada de Documentos
- Encuentre ocurrencias específicas de personas con coincidencia difusa
- Encuentre menciones de partidos con coincidencia difusa
- Navegue documentos grandes eficientemente con desplazamientos de caracteres
- Lectura secuencial con soporte de paginación
Herramientas Disponibles
OpenTK proporciona 17 herramientas especializadas para acceder a los datos parlamentarios neerlandeses:
Resumen y Descubrimiento
get_overview: Resumen completo de actividades parlamentarias recientes y cumpleaños de diputados (paginado)birthdays_today: Lista de diputados que celebran cumpleaños hoylist_persons: Directorio completo de diputados actuales con afiliaciones partidistas
Búsqueda y Filtrado
search_tk: Búsqueda completa en todos los datos parlamentarios con sintaxis de consulta avanzadasearch_tk_filtered: Búsqueda dentro de categorías específicas (Documento, Actividad, Caso)search_by_category: Búsqueda de tipos de documentos específicos (preguntas, mociones, todos)
Inteligencia Documental (NUEVO) 🎯
analyze_document_relevance: Análisis de documentos impulsado por NLP con extracción de palabras clave, reconocimiento de entidades y puntuación de relevanciaget_document_content: Recuperación del contenido de documentos (PDF/DOCX) con tres modos de lectura (dirigida, secuencial, completa)find_person_in_document: Localice todas las ocurrencias de una persona en un documento con coincidencia difusafind_party_in_document: Localice todas las ocurrencias de un partido político en un documento
Metadatos de Documentos
get_document_details: Recupere metadatos estructurados sobre documentosget_document_links: Convierta URL de documentos en enlaces markdown clicables
Estructura Parlamentaria
get_committees: Liste todos los comités parlamentariosget_committee_details: Información detallada sobre comités específicos
Actividades y Votaciones
get_upcoming_activities: Debates y reuniones parlamentarias próximasget_voting_results: Resultados de votación recientes con posiciones de partidos
Medios
get_photo: Recupere fotografías oficiales de retratos de diputados
Instalación
1. Inicio Rápido con Paquete NPM (Recomendado)
La forma más rápida de comenzar es utilizando el paquete npm publicado:
npx @r-huijts/opentk-mcp
2. Uso con Claude Desktop y Paquete NPM
Actualice su archivo de configuración de Claude (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"opentk": {
"command": "npx",
"args": [
"-y",
"@r-huijts/opentk-mcp"
]
}
}
}
Configuraciones alternativas:
Para MultiServerMCPClient (Python):
mcp_client = MultiServerMCPClient({
"opentk": {
"command": "npx",
"args": ["-y", "@r-huijts/opentk-mcp"],
"transport": "stdio",
}
})
3. Desde el Código Fuente (Desarrollo)
Si desea modificar el código o contribuir al desarrollo:
Clonar el Repositorio:
git clone https://github.com/r-huijts/opentk-mcp.git
cd opentk-mcp
Instalar Dependencias:
npm install
Compilar el Proyecto:
npm run build
Iniciar el Servidor:
npm start
Configurar Claude Desktop para desarrollo local:
Actualice su archivo de configuración de Claude:
{
"mcpServers": {
"opentk-local": {
"command": "node",
"args": [
"/absolute/path/to/your/opentk-mcp/dist/index.js"
]
}
}
}
Asegúrese de reemplazar /absolute/path/to/your/opentk-mcp/ con la ruta real a su instalación.
4. Publicación (para mantenedores)
Para publicar una nueva versión del paquete con ámbito:
npm run build
npm publish --access=public
Nota: Los paquetes con ámbito requieren el indicador --access=public para estar disponibles públicamente.
Funcionalidad de Búsqueda
La funcionalidad de búsqueda es particularmente sofisticada y admite:
- Búsquedas simples de palabras clave:
kunstmatige intelligentie - Búsquedas de frases exactas:
"kunstmatige intelligentie" - Búsquedas de exclusión:
Hubert NOT Bruls - Operadores booleanos:
OR,NEAR()
La implementación maneja varios casos límite:
- Preserva comillas en las consultas de búsqueda
- Utiliza encabezados de tipo de contenido adecuados
- Implementa mecanismos de respaldo para errores de API
- Proporciona mensajes de error significativos
Manejo de Errores
El servicio de API incluye un manejo robusto de errores:
- Manejo elegante de errores de API (4xx, 5xx)
- Respaldo a consultas simplificadas cuando las complejas fallan
- Mensajes de error detallados para depuración
- Registro adecuado en stderr (no en stdout, lo que rompería el transporte stdio)
Configuración
El servidor se conecta al servicio tkconv de Bert Hubert como su fuente de datos principal, que proporciona una API más accesible que las API oficiales del Parlamento neerlandés. Este servicio, creado por Bert Hubert, realiza el trabajo pesado de recopilar, organizar y poner a disposición los datos parlamentarios neerlandeses en un formato amigable para desarrolladores. Nuestro servidor MCP se basa en esta base para crear una interfaz estandarizada para que los asistentes de IA interactúen con estos valiosos datos.
Licencia
MIT
Conclusión
El servidor MCP de OpenTK proporciona una interfaz robusta y bien estructurada para los datos parlamentarios neerlandeses, haciéndolos accesibles a los asistentes de IA a través del Protocolo de Contexto de Modelo. Su diseño modular, API integral, análisis de documentos impulsado por NLP (v1.0.16) y pruebas exhaustivas garantizan un acceso confiable a la información parlamentaria para investigación, análisis y recuperación de información asistida por IA.
Una vez configurado, Claude podrá acceder a los datos parlamentarios neerlandeses a través del servidor MCP de OpenTK utilizando las 17 herramientas especializadas para búsqueda, análisis de documentos, información de diputados, seguimiento de comités, resultados de votación y más.