项目简介

OpenTK MCP 服务器是一个基于 Model Context Protocol (MCP) 的应用后端,旨在为大型语言模型 (LLM) 提供一个标准化的接口,以便访问荷兰议会的公开数据。它封装了对 Bert Hubert 的 OpenTK 项目 (tkconv) 服务的调用,该服务提供了荷兰议会文档、辩论记录和议员信息等丰富的数据。

通过这个 MCP 服务器,AI 助手能够以结构化的方式查询和检索荷兰议会的相关信息,极大地增强了LLM在处理荷兰政治、法律和公共事务相关议题时的能力。

主要功能点

  • 议员信息查询: 获取当前所有议员的列表,查询特定议员的详细信息和官方照片。
  • 议会数据搜索: 在所有议会记录中执行全面的关键词搜索,支持精确短语、排除词和布尔运算符。
  • 按类别搜索: 针对特定类型的议会文档(如提问、动议等)进行过滤搜索。
  • 文档信息及链接: 获取议会文档的元数据(标题、日期、编号等),并生成直接可点击的文档链接。
  • 文档内容提取: 下载并从 PDF 或 DOCX 文档中提取文本内容,以便LLM直接分析和处理。
  • 委员会信息: 获取议会委员会列表及其详细信息。
  • 近期活动查询: 查看即将举行的议会活动(辩论、会议等)。
  • 投票结果查询: 获取近期议会投票的结果。

安装步骤

  1. 克隆仓库: 打开终端或命令行工具,执行以下命令下载项目代码:
    git clone https://github.com/r-huijts/opentk-mcp.git
    cd opentk-mcp
  2. 安装依赖: 进入项目目录后,使用 npm 安装所需的依赖项:
    npm install
  3. 构建项目: 执行构建命令编译 TypeScript 代码:
    npm run build
  4. 启动服务器: 执行以下命令启动 MCP 服务器:
    npm start
    服务器将通过标准输入/输出(stdio)与 MCP 客户端通信。

服务器配置

要将此 MCP 服务器与 MCP 客户端(如 Claude Desktop)集成,您需要在客户端的配置文件中添加该服务器的启动信息。配置通常是一个 JSON 格式的对象,描述了如何启动服务器进程。

典型的配置项包括:

  • '"server name"': 为您的 MCP 服务器实例指定一个唯一的名称(例如 '"opentk-mcp-local"')。这个名称将在客户端界面中显示。
  • '"command"': 指定用于启动服务器的可执行文件。对于 Node.js 应用,通常是 '"node"'。
  • '"args"': 一个字符串数组,包含传递给启动命令的参数。这里应该指定服务器的入口文件路径。例如,如果您的项目构建后入口文件在 'dist/index.js',并且您知道其绝对路径,参数可能是 '["/绝对/路径/到/您的/opentk-mcp/dist/index.js"]'。

请根据您实际的项目安装路径修改 '"args"' 中的绝对路径。

基本使用方法

MCP 服务器不是一个独立的用户界面应用,它旨在被 MCP 客户端(通常是支持 MCP 的 LLM 应用或 AI 助手)调用。一旦服务器成功启动并在客户端中配置好,客户端的LLM就可以通过标准化的 MCP 协议发现并调用服务器暴露的工具(Tools)。

LLM 会根据用户的自然语言请求,自动识别需要调用哪个工具来获取所需信息。例如,当用户询问“谁是当前的 Pieter Omtzigt 议员?”时,LLM可能会调用 'list_persons' 或 'get_person' 工具;当用户询问“近期有什么关于气候政策的议会讨论?”时,LLM可能会调用 'search_tk' 工具。

您可以通过向已连接此 MCP 服务器的 LLM 客户端提问来体验其功能。

信息

分类

数据库与文件