返回市场
开放工具包-mcp

开放工具包-mcp

作者:r-huijts16 星标更新:2025-10-30

项目介绍

OpenTK 模型上下文协议服务器

重要归属: 此MCP服务器作为Bert Hubert创建的OpenTK项目的封装。OpenTK项目通过用户友好的界面提供了前所未有的荷兰议会数据访问途径。更多关于该项目的信息,请参阅Bert的文章:欢迎来到OpenTK。底层数据访问和处理的所有功劳归于Bert Hubert及其对开放政府数据的贡献。

大型语言模型(LLMs)与荷兰议会数据之间的桥梁,通过标准化接口提供对荷兰议会文件、辩论和成员信息的访问。

<a href="https://glama.ai/mcp/servers/@r-huijts/opentk-mcp"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=4199474178,1542688633&fm=3081&app=3-081&f=PNG?w=760&h=400" alt="OpenTK 模型上下文协议服务器 MCP服务器" /> </a>

实际自然语言交互示例

示例1:比较政党在AI政策上的立场

用户查询:"当比较荷兰众议院中反对党PvdA、GroenLinks和Volt与执政党BBB在AI领域的活动时,它们在过去一年中展示的立场和观点中,短期内可以共同采取哪些行动?请使用OpenTK中的来源。"

示例2:研究议会关于气候政策的讨论

用户查询:"我想分析最近关于气候政策和减排目标的荷兰议会辩论。你能帮我识别关键讨论和过去六个月不同政党所持的主要立场吗?"

示例3:特定议员的投票记录信息

用户查询:"议员Pieter Omtzigt在医疗改革立法上的投票记录是什么?他的立场与其他独立成员有何不同?他是否提出了任何相关动议?"

示例4:查找近期住房立法发展

用户查询:"过去一年中最显著的关于可负担住房立法的议会文件和辩论有哪些?我特别感兴趣的是那些解决租赁市场危机的提案。"

示例5:高效筛选多份文件(新功能 - 智能分析)

用户查询:"我找到了过去一个月内关于气候政策的15份文件。能否快速确定哪三份文件最相关于可再生能源补贴和风力发电立法,而无需阅读全部内容?"

示例6:从议会文件中提取关键主题(新功能 - 智能分析)

用户查询:"文件2024D39058中提到的主要主题、关键词和政党有哪些?我希望在深入全文之前了解其主要内容。"

示例7:查找具有特定委员会成员资格的议员

用户查询:"目前哪些议员同时担任财政委员会和经济事务委员会的成员?他们代表哪些政党,最近是否提交了任何联合倡议?"

示例8:识别即将进行的议会数字安全活动

用户查询:"未来一个月内是否有计划召开关于网络安全和数字基础设施的委员会会议或辩论?哪些部长将参与,具体议题是什么?"

项目概念

OpenTK项目是一个模型上下文协议(MCP)服务器,通过标准化接口提供对荷兰议会数据的访问。它充当大型语言模型(LLMs)与荷兰议会信息系统之间的桥梁,使AI助手能够搜索、检索和分析议会文件、辩论和成员信息。

该服务器使用@modelcontextprotocol/sdk实现MCP规范,这使得AI模型与外部数据源之间能够进行结构化的通信。通过公开议会数据的工具和端点,OpenTK使得AI助手能够:

  1. 使用复杂查询搜索议会文件
  2. 访问议员信息
  3. 以各种格式检索官方文件并读取文件的完整内容
  4. 分析议会活动和程序
  5. 跟踪立法案件和政府承诺
  6. 在加载完整内容之前使用NLP智能分析文档的相关性(v1.0.16新增)
  7. 提取关键词、实体和主题以高效地筛选文档(v1.0.16新增)

该项目利用Bert Hubert的tkconv服务作为主要数据源,该服务比官方荷兰议会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转换为可点击的markdown链接

议会结构

  • get_committees:列出所有议会委员会
  • get_committee_details:特定委员会的详细信息

活动与投票

  • get_upcoming_activities:即将举行的议会辩论和会议
  • get_voting_results:最近的投票结果及政党立场

媒体

  • get_photo:检索正式的议员肖像照片

安装

1. 使用NPM包快速开始(推荐)

最快的方式是使用已发布的npm包:

npx @r-huijts/opentk-mcp

2. 使用Claude Desktop与NPM包

更新你的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更易于访问。此服务由Bert Hubert创建,负责收集、整理并以开发者友好的格式提供荷兰议会数据。我们的MCP服务器在此基础上建立,创建了一个标准化接口,使AI助手能够与这些有价值的数据互动。

许可证

MIT

结论

OpenTK MCP服务器提供了一个强大且结构良好的接口,用于访问荷兰议会数据,使其通过模型上下文协议对AI助手来说易于访问。其模块化设计、全面的API、基于NLP的文档分析(v1.0.16)以及彻底的测试确保了可靠地访问议会信息,适用于AI辅助的研究、分析和信息检索。

一旦配置完成,Claude将能够通过OpenTK MCP服务器使用所有17种专门工具来访问荷兰议会数据,包括搜索、文档分析、议员信息、委员会跟踪、投票结果等。