瑞典议会文档搜索服务

一个基于Model Context Protocol (MCP)的服务,提供对瑞典议会文档档案的搜索和URL检索功能。

  • by amrtini
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 amrtini/riksdagen-mcp-server

使用说明

瑞典议会MCP服务器

该项目实现了一个模型上下文协议(MCP)服务器,允许Claude搜索瑞典议会(Riksdagen)文档档案并检索JSON格式的URL。 该项目是使用Claude 3.7生成的。

概述

瑞典议会MCP服务器提供搜索瑞典议会开放数据档案中文件的工具。它允许克劳德:

  1. 根据各种条件(关键字、文档类型、日期等)搜索文档
  2. 获取可用文档类型的列表
  3. 为各种格式(JSON、HTML、文本)的特定文档创建URL列表

先决条件

  • Python 3.9+
  • 快速 API
  • 乌维科恩
  • MCP Python SDK
  • httpx

安装

  1. 克隆此存储库:

    git clone https://github.com/amrtini/riksdagen-mcp-server.git
    cd riksdagen-mcp-server
    
  2. 创建虚拟环境:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 安装依赖项:

    pip install fastapi uvicorn httpx mcp
    

    注意:您可能需要直接从其存储库安装MCP Python SDK:

    pip install git+https://github.com/modelcontextprotocol/python-sdk.git
    

运行服务器

  1. 启动MCP服务器:

    uvicorn mcp_riksdagen_server:app --host 0.0.0.0 --port 8000 --reload
    
  2. 服务器将在以下时间可用http://localhost:8000

MCP工具

服务器提供以下MCP工具:

1.riksdagen_search

根据各种标准在瑞典议会档案馆中搜索文件。

参数:

  • sok:搜索词(可选)
  • doktyp:文档类型(可选,例如“道具”、“mot”、“赌注”)
  • rm:议会年(可选,例如“2021/22”)
  • from_date:从YYYY-MM-DD格式的日期开始(可选)
  • tom:以YYYY-MM-DD格式表示的截止日期(可选)
  • sort:排序顺序(可选,默认:“rel”,选项:“rel”、“datum”、“betecking”)
  • sortorder:排序方向(可选,默认:“desc”,选项:“desc”,“asc”)
  • limit:要返回的最大结果数(可选,默认值:10)

退货: 包含文档URL和元数据的JSON对象。

2.riksdagen_get_document_types

获取瑞典议会档案中可用文档类型的列表。

退货: 将文档类型代码映射到其描述的词典。

3.riksdagen_create_url_list

以指定格式为议会文件创建URL列表。

参数:

  • document_ids:文档ID列表
  • format:文档格式(默认:“json”,选项:“json“、”html“、”text“)

退货: 包含文档URL的JSON对象。

与克劳德一起使用

Claude可以使用此MCP服务器搜索瑞典议会档案中的文档,并生成URL列表以供进一步处理。示例客户端演示了如何与服务器交互。

克劳德提示示例

I want to search for documents in the Swedish Parliament archive about climate change (klimat in Swedish) from the last year. Can you help me find relevant motions and create a list of URLs to access them?

然后,Claude可以使用MCP工具:

  1. 搜索包含“klimat”一词的文档
  2. 运动文档筛选器(doktip=“mot”)
  3. 将议会年份设置为当前年份
  4. 为找到的文档创建URL列表

使用客户端

附带的客户端演示了如何以编程方式与MCP服务器交互:

# Create the client
client = ClaudeRiksdagenClient()

# Search for documents
search_results = await client.search_documents(
    search_term="klimat",
    document_type="mot",
    parliamentary_year="2023/24",
    limit=5
)

# Create URL list for the found documents
doc_ids = [doc["id"] for doc in search_results["documents"]]
url_list = await client.create_url_list(doc_ids, format="json")

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

致谢

  • 瑞典议会(Riksdagen)提供开放数据API
  • 用于开发标准的模型上下文协议(MCP)团队