Skip to main content
Glama
seiichi3141

kokkai-giji-mcp

by seiichi3141
README.md
# 国会議事録検索 MCP サーバー

Model Context Protocol (MCP) を使用して、国会議事録検索APIにアクセスできるサーバーです。

## 機能

### ツール機能
- 会議単位簡易出力(search_meetings_simple)
- 会議単位出力(search_meetings_full)
- 発言単位出力(search_speeches)

### プロンプト機能
AIアシスタントに国会議事録の効果的な検索方法を指示:
- **search_with_urls**: 発言URLを必ず含めて回答するよう指示
- **search_diet_proceedings**: 効率的な検索戦略のガイド
- **analyze_speech_patterns**: 発言パターンの分析方法
- **track_legislative_progress**: 法案審議の追跡方法
- **find_specific_speaker**: 特定発言者の検索
- **search_by_topic**: トピック別の議論検索

各検索結果には以下のURLが含まれます:
- **speechURL**: 個別発言への直接リンク
- **meetingURL**: 会議録全体へのリンク
- **pdfURL**: PDF版へのリンク(存在する場合)

## インストール

### 通常のインストール
```bash
npm install
npm run build
```

### Dockerを使用する場合

#### Docker Hubを使用(推奨)
```bash
# Docker Hubからイメージを取得
docker pull seiichi3141/kokkai-giji-mcp:latest

# コンテナを起動
docker run --rm -i seiichi3141/kokkai-giji-mcp:latest
```

#### ローカルビルド(開発時)
```bash
# Dockerイメージをビルド
docker build -t kokkai-giji-mcp .

# Docker Composeでサービス起動
docker-compose up -d
```

## 使用方法

### Claude Desktop での設定

#### 通常実行の場合
`claude_desktop_config.json` に以下を追加:

```json
{
  "mcpServers": {
    "kokkai-giji": {
      "command": "node",
      "args": ["/path/to/mcp_kokkai_giji/dist/index.js"]
    }
  }
}
```

#### Docker Hubイメージ使用の場合
```json
{
  "mcpServers": {
    "kokkai-giji": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "seiichi3141/kokkai-giji-mcp:latest"
      ]
    }
  }
}
```

#### ローカルDockerコンテナ使用の場合
```json
{
  "mcpServers": {
    "kokkai-giji": {
      "command": "docker",
      "args": [
        "exec",
        "-i",
        "kokkai-giji-mcp",
        "node",
        "dist/index.js"
      ]
    }
  }
}
```

### 開発・テスト用コマンド

```bash
# 開発モード(ソースコードから直接実行)
npm run dev

# テスト実行
npm test

# テスト(ウォッチモード)
npm run test:watch

# カバレッジ付きテスト
npm run test:coverage
```


## 利用可能なツール

### search_meetings_simple
会議単位簡易出力。会議の基本情報と該当する発言のリストを取得(最大100件)。

### search_meetings_full  
会議単位出力。会議の全発言本文を含む詳細データを取得(最大10件)。

### search_speeches
発言単位出力。個別の発言本文を取得(最大100件)。

## 共通パラメータ

- `nameOfHouse`: 院名(衆議院、参議院、両院、両院協議会)
- `nameOfMeeting`: 会議名(例:本会議、予算委員会)。半角スペース区切りでOR検索
- `any`: 発言内容の検索キーワード。半角スペース区切りでAND検索
- `speaker`: 発言者名。半角スペース区切りでOR検索
- `from`: 開会日付/始点(YYYY-MM-DD形式)
- `until`: 開会日付/終点(YYYY-MM-DD形式)
- `sessionFrom`: 国会回次From(開始回)
- `sessionTo`: 国会回次To(終了回)
- `issueFrom`: 号数From(開始号)
- `issueTo`: 号数To(終了号)
- `speechNumber`: 発言番号(0以上の整数)
- `speakerPosition`: 発言者肩書き(部分一致)
- `speakerGroup`: 発言者所属会派(部分一致)
- `speakerRole`: 発言者役割(証人、参考人、公述人)
- `supplementAndAppendix`: 追録・附録に限定(true/false)
- `contentsAndIndex`: 目次・索引に限定(true/false)
- `searchRange`: 検索対象箇所(冒頭、本文、冒頭・本文)
- `closing`: 閉会中の会議録に限定(true/false)
- `speechID`: 発言ID
- `issueID`: 会議録ID(21桁の英数字)
- `maximumRecords`: 最大取得件数
  - search_meetings_simple, search_speeches: 1-100(デフォルト30)
  - search_meetings_full: 1-10(デフォルト3)
- `startRecord`: 取得開始位置(デフォルト1)

## API について

このサーバーは国立国会図書館の国会会議録検索システムAPIを使用しています。
詳細: https://kokkai.ndl.go.jp/api.html

TDQS

B3.2/5.0

Scored across 3 tools

Disambiguation3/5

The three tools share a common search intent over the same domain (国会/kokkai meetings and speeches). search_meetings_simple vs search_meetings_full differ only in output verbosity (basic vs full text) and result limits, which is a subtle distinction agents may confuse. search_speeches is clearly distinct in granularity (speech-level vs meeting-level).

Naming Consistency4/5

All tools follow a consistent verb_noun pattern starting with 'search_'. The three suffixes (meetings_simple, meetings_full, speeches) are semantically clear. The only minor inconsistency is mixing output-verbosity qualifiers (simple/full) with granularity (speeches) rather than a strictly uniform convention.

Tool Count3/5

Three tools is on the low end but not unreasonable for a focused search-oriented MCP server. However, two of the three tools (meetings_simple and meetings_full) serve nearly the same purpose with just a verbosity difference, which feels somewhat redundant rather than distinct coverage.

Completeness3/5

The server covers search over meetings and speeches, but is missing common operations for a Japanese Diet (kokkai) domain such as searching by committee/session, retrieving a specific meeting or speech by ID, or pagination support beyond fixed maximums. The three search tools cover basic query needs but leave notable gaps in targeted retrieval.

Maintenance

ActivityInactive
ResponsivenessNo issues