Riksdagen MCP Server について
Riksdagen MCP Server は、Claude からスウェーデン議会のオープンデータアーカイブを検索し、文書リンクを取得するためのサーバーです。キーワード、文書種別、日付などで絞り込み、JSON、HTML、テキスト形式の URL リストを作成できます。
主な機能
- 01条件を指定した議会文書の検索
- 02利用可能な文書種別の一覧
- 03複数形式での文書リンク作成
- 04文書メタデータの取得
活用シーン
- 01特定の議題に関する議会文書を検索
- 02文書種別と議会年度で絞り込み
- 03検索結果のアクセスリンクを作成
MCP 対応
MCP サーバーは、スウェーデン議会アーカイブにアクセスするための文書検索、文書種別の取得、URL リスト作成ツールを提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
http://localhost:8000claude mcp add --transport http riksdagen http://localhost:8000{"mcpServers":{"riksdagen":{"type":"http","url":"http://localhost:8000"}}}Cursor で開く{"servers":{"riksdagen":{"type":"http","url":"http://localhost:8000"}}}VS Code で開く{"mcpServers":{"riksdagen":{"type":"http","url":"http://localhost:8000"}}}{"mcpServers":{"riksdagen":{"serverUrl":"http://localhost:8000"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Riksdagen MCP サーバー
このプロジェクトは、Claude がスウェーデン議会(Riksdagen)の文書アーカイブを検索し、URL を JSON 形式で取得できる Model Context Protocol(MCP)サーバーを実装しています。 このプロジェクトは Claude 3.7 を使用して生成されました。
概要
Riksdagen MCP サーバーは、スウェーデン議会のオープンデータアーカイブ内の文書を検索するツールを提供します。Claude は次の操作を行えます。
- さまざまな条件(キーワード、文書の種類、日付など)に基づいて文書を検索する
- 利用可能な文書の種類の一覧を取得する
- さまざまな形式(JSON、HTML、テキスト)で特定の文書の URL 一覧を作成する
前提条件
- Python 3.9+
- FastAPI
- Uvicorn
- MCP Python SDK
- httpx
インストール
-
このリポジトリをクローンします。
git clone https://github.com/amrtini/riksdagen-mcp-server.git cd riksdagen-mcp-server -
仮想環境を作成します。
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
依存関係をインストールします。
pip install fastapi uvicorn httpx mcp注:MCP Python SDK をリポジトリから直接インストールする必要がある場合があります。
pip install git+https://github.com/modelcontextprotocol/python-sdk.git
サーバーの実行
-
MCP サーバーを起動します。
uvicorn mcp_riksdagen_server:app --host 0.0.0.0 --port 8000 --reload -
サーバーは http://localhost:8000 で利用できます。
MCP ツール
サーバーは次の MCP ツールを提供します。
1. riksdagen_search
さまざまな条件に基づいて Riksdagen アーカイブ内の文書を検索します。
パラメーター:
sok:検索語(任意)doktyp:文書の種類(任意。例:「prop」、「mot」、「bet」)rm:議会年度(任意。例:「2021/22」)from_date:開始日(YYYY-MM-DD 形式、任意)tom:終了日(YYYY-MM-DD 形式、任意)sort:並べ替え順(任意。デフォルト:「rel」、選択肢:「rel」、「datum」、「beteckning」)sortorder:並べ替え方向(任意。デフォルト:「desc」、選択肢:「desc」、「asc」)limit:返す結果の最大数(任意。デフォルト:10)
戻り値: 文書の URL とメタデータを含む JSON オブジェクト。
2. riksdagen_get_document_types
Riksdagen アーカイブで利用可能な文書の種類の一覧を取得します。
戻り値: 文書の種類コードとその説明を対応付けた辞書。
3. riksdagen_create_url_list
指定した形式で Riksdagen の文書の URL 一覧を作成します。
パラメーター:
document_ids:文書 ID の一覧format:文書の形式(デフォルト:「json」、選択肢:「json」、「html」、「text」)
戻り値: 文書の URL を含む JSON オブジェクト。
Claude での使用
Claude はこの MCP サーバーを使用して、Riksdagen アーカイブ内の文書を検索し、後続の処理に使う URL 一覧を生成できます。サンプルクライアントでは、サーバーとのやり取り方法を示しています。
Claude プロンプトの例
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 ツールを使用して次の操作を行えます。
- 「klimat」という語句を含む文書を検索する
- 議員提出法案(doktyp="mot")に絞り込む
- 議会年度を現在の年度に設定する
- 見つかった文書の 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 ライセンスのもとで公開されています。詳細については LICENSE ファイルを参照してください。
謝辞
- オープンデータ API を提供しているスウェーデン議会(Riksdagen)
- 標準を開発した Model Context Protocol(MCP)チーム
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。