OpenTK模型上下文协议服务器
重要归因:此MCP服务器是围绕优秀的 OpenTK项目 由...创建 伯特·休伯特OpenTK项目通过用户友好的界面提供了前所未有的荷兰议会数据访问权限。在Bert的文章中了解有关该项目的更多信息: 欢迎来到 OpenTK。底层数据访问和处理的所有功劳都归功于Bert Hubert及其对开放政府数据的贡献。
通过标准化接口在大型语言模型(LLM)和荷兰议会数据之间架起桥梁。此MCP服务器提供从Tweed Kamer访问荷兰议会文件、辩论和成员信息的权限。
真实世界自然语言交互示例
示例1:比较政党对人工智能政策的立场
用户提问:“在比较反对党PvdA、GroenLinks和Volt与荷兰众议院政府党BBB在人工智能领域的活动时,他们可以在短期内共同采取哪些行动,以符合他们在过去一年中所表现出的立场和观点?请使用OpenTK的消息来源。”
示例2:研究议会关于气候政策的讨论
用户提问:“我想分析一下荷兰议会最近关于气候政策和减排目标的辩论。你能帮我确定过去六个月不同政党的主要讨论和主要立场吗?”
示例3:关于特定议员投票记录的信息
用户提问:“议员Pieter Omtzigt在医疗改革立法方面的投票记录如何,他的立场与其他独立成员有何不同?他是否就这一主题提出了任何动议?”
示例4:查找最近的住房立法动态
用户提问:“过去一年中,关于经济适用房立法的最重要的议会文件和辩论是什么?我对解决租赁市场危机的提案特别感兴趣。”
示例5:高效地对多个文档进行分类(新功能-智能分析)
用户查询:“我找到了上个月关于气候政策的15份文件。你能在不通读所有文件的情况下快速确定哪3份文件与可再生能源补贴和风力发电立法最相关吗?”
示例6:从议会文件中提取关键主题(新-智能分析)
用户查询:“文档2024D39058中提到的主要主题、关键字和政党是什么?在进入全文之前,我想先了解一下它的内容。”
示例7:查找具有特定委员会成员资格的议员
用户提问:“哪些议员目前同时在财务委员会和经济事务委员会任职?他们代表哪些政党,最近是否提交了任何联合倡议?”
示例8:确定即将举行的关于数字安全的议会活动
用户提问:“下个月是否计划举行任何关于网络安全和数字基础设施的委员会会议或辩论?哪些部长将参加,将讨论哪些具体议题?”
项目概念
OpenTK项目是一个模型上下文协议(MCP)服务器,通过标准化接口提供对荷兰议会数据的访问。它是大型语言模型(LLM)和荷兰议会信息系统之间的桥梁,允许人工智能助手搜索、检索和分析议会文件、辩论和成员信息。
服务器使用 @modelcontextprotocol/sdk 实现MCP规范,使AI模型和外部数据源之间能够进行结构化通信。通过明确定义的工具和端点公开议会数据,OpenTK使人工智能助理能够:
- 使用复杂查询搜索议会文件
- 获取议员信息
- 检索各种格式的官方文件并阅读文件的全部内容
- 分析议会活动和程序
- 追踪立法案件和政府承诺
- 在加载完整内容之前,使用NLP智能分析文档相关性 (v1.0.16中的新功能)
- 提取关键字、实体和主题,以实现高效的文档分类 (v1.0.16中的新功能)
该项目利用Bert Hubert的tkconv服务作为其主要数据源,该服务提供了比荷兰议会官方API更易于访问的API。
特性
核心议会数据访问
- 使用高级查询功能(引号、NOT、OR、NEAR运算符)搜索议会文件
- 访问全面的议员信息和委员会成员资格
- 使用智能分块检索完整文档内容(PDF、Word)
- 跟踪立法案件、政府活动和投票结果
- 实时访问议会程序和即将举行的活动
智能文档分析(v1.0.16中的新功能)🎯
- NLP驱动的相关性分析:在加载完整内容之前智能分析文档
- TF-IDF关键字提取:找出任何文档中最重要的前10-15个术语
- 荷兰语优化实体识别:自动检测个人(议员、部长)、政党(VVD、PVV、CDA、D66等)和组织
- 主题分类:对10个主要政治主题(气候、经济、医疗保健、教育等)的文件进行分类
- 相关性评分:按与特定搜索词的相关性对文档进行排名(0-100分)
- 上下文高效分类:在评估多个文档时,将上下文窗口的使用率降低80-90%
高级文档导航
- 使用模糊匹配查找特定人员事件
- 使用模糊匹配查找聚会提及
- 使用字符偏移高效地浏览大型文档
- 支持分页的顺序读取
可用工具
OpenTK提供17种访问荷兰议会数据的专用工具:
概述与发现
get_overview:最近议会活动和议员生日的综合概述(分页)birthdays_today:列出今天庆祝生日的议员名单list_persons:有党派关系的现任议员的完整目录
搜索和筛选
search_tk:使用高级查询语法对所有议会数据进行全面搜索search_tk_filtered在特定类别内搜索(文档、活动、项目)search_by_category:搜索特定文档类型(问题、动议、所有)
文档智能(新)🎯
analyze_document_relevance:NLP支持的文档分析,包括关键字提取、实体识别和相关性评分get_document_content:使用三种阅读模式(目标、顺序、完整)检索文档内容(PDF/DOCX)find_person_in_document:使用模糊匹配查找文档中某人的所有出现find_party_in_document:在文档中查找政党的所有事件
文档元数据
get_document_details:检索有关文档的结构化元数据get_document_links:将文档URL转换为可点击的标记链接
议会结构
get_committees:列出所有议会委员会get_committee_details:关于具体委员会的详细信息
活动与投票
get_upcoming_activities:即将举行的议会辩论和会议get_voting_results:最近的投票结果和党派立场
媒体
get_photo:检索MP官方肖像照片
安装
1.NPM包快速入门(推荐)
最快的入门方法是使用已发布的npm包:
npx @r-huijts/opentk-mcp2.使用带有NPM包的Claude Desktop
更新您的Claude配置文件(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"opentk": {
"command": "npx",
"args": [
"-y",
"@r-huijts/opentk-mcp"
]
}
}
}替代配置:
对于MultiServerMCPClient(Python):
mcp_client = MultiServerMCPClient({
"opentk": {
"command": "npx",
"args": ["-y", "@r-huijts/opentk-mcp"],
"transport": "stdio",
}
})3.来源(发展)
如果你想修改代码或为开发做出贡献:
克隆存储库:
git clone https://github.com/r-huijts/opentk-mcp.git
cd opentk-mcp安装依赖关系:
npm install构建项目:
npm run build启动服务器:
npm start配置Claude Desktop进行本地开发:
更新您的Claude配置文件:
{
"mcpServers": {
"opentk-local": {
"command": "node",
"args": [
"/absolute/path/to/your/opentk-mcp/dist/index.js"
]
}
}
}确保更换 /absolute/path/to/your/opentk-mcp/ 安装的实际路径。
4.出版(面向维护人员)
要发布作用域包的新版本,请执行以下操作:
npm run build
npm publish --access=public注意:范围内的包需要 --access=public 国旗将公开。
搜索功能
搜索功能特别复杂,支持:
- 简单的关键字搜索:
kunstmatige intelligentie - 精确短语搜索:
"kunstmatige intelligentie" - 排除搜索:
Hubert NOT Bruls - 布尔运算符
OR,NEAR()
该实现处理各种边缘情况:
- 保留搜索查询中的引号
- 使用正确的内容类型标题
- 实现API错误的回退机制
- 提供有意义的错误消息
错误处理
API服务包括强大的错误处理:
- 优雅地处理API错误(4xx,5xx)
- 当复杂查询失败时,退回到简化查询
- 调试的详细错误消息
- 正确记录到stderr(不是stdout,这会破坏stdio传输)
配置
服务器连接到Bert Hubert的 tkconv服务 作为其主要数据源,它提供了比荷兰议会官方API更容易访问的API。这项服务由Bert Hubert创建,以开发人员友好的格式收集、组织和提供荷兰议会数据。我们的MCP服务器基于这一基础,为AI助手创建了一个标准化的界面,以便与这些有价值的数据进行交互。
许可证
麻省理工学院
结论
OpenTK MCP服务器为荷兰议会数据提供了一个强大且结构良好的接口,使人工智能助理可以通过模型上下文协议访问这些数据。其模块化设计、全面的API、NLP支持的文档分析(v10.16)和彻底的测试确保了可靠地访问议会信息,以进行人工智能辅助的研究、分析和信息检索。
配置后,Claude将能够通过OpenTK MCP服务器访问荷兰议会数据,使用所有17个专门的工具进行搜索、文件分析、议员信息、委员会跟踪、投票结果等。
