Skip to main content
Glama
seiichi3141

kokkai-giji-mcp

by seiichi3141

国会議事録検索 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版へのリンク(存在する場合)

Related MCP server: houan-mcp

インストール

通常のインストール

npm install
npm run build

Dockerを使用する場合

Docker Hubを使用(推奨)

# Docker Hubからイメージを取得
docker pull seiichi3141/kokkai-giji-mcp:latest

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

ローカルビルド(開発時)

# Dockerイメージをビルド
docker build -t kokkai-giji-mcp .

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

使用方法

Claude Desktop での設定

通常実行の場合

claude_desktop_config.json に以下を追加:

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

Docker Hubイメージ使用の場合

{
  "mcpServers": {
    "kokkai-giji": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "seiichi3141/kokkai-giji-mcp:latest"
      ]
    }
  }
}

ローカルDockerコンテナ使用の場合

{
  "mcpServers": {
    "kokkai-giji": {
      "command": "docker",
      "args": [
        "exec",
        "-i",
        "kokkai-giji-mcp",
        "node",
        "dist/index.js"
      ]
    }
  }
}

開発・テスト用コマンド

# 開発モード(ソースコードから直接実行)
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

Available Tools

3 tools
search_meetings_fullB

国会の会議を検索します(会議単位出力)。会議の全発言本文を含む詳細データを取得します。最大10件まで取得可能。

ParametersJSON Schema
NameRequiredDescriptionDefault
anyNo発言内容の検索キーワード。半角スペース区切りでAND検索
fromNo開会日付/始点(YYYY-MM-DD形式)
untilNo開会日付/終点(YYYY-MM-DD形式)
closingNo閉会中の会議録に限定(デフォルト:false)
issueIDNo会議録ID(21桁の英数字)
issueToNo号数To(終了号)
speakerNo発言者名。半角スペース区切りでOR検索
speechIDNo発言ID(例:100105254X00119470520_000)
issueFromNo号数From(開始号)
sessionToNo国会回次To(終了回)
nameOfHouseNo院名(衆議院、参議院、両院、両院協議会)
searchRangeNo検索対象箇所(冒頭、本文、冒頭・本文)
sessionFromNo国会回次From(開始回)
speakerRoleNo発言者役割(証人、参考人、公述人)
startRecordNo取得開始位置(デフォルト1)
speakerGroupNo発言者所属会派(部分一致)
speechNumberNo発言番号(0以上の整数)
nameOfMeetingNo会議名(例:本会議、予算委員会)。半角スペース区切りでOR検索
maximumRecordsNo最大取得件数(1-10、デフォルト3)
speakerPositionNo発言者肩書き(部分一致)
contentsAndIndexNo目次・索引に限定(デフォルト:false)
supplementAndAppendixNo追録・附録に限定(デフォルト:false)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden of behavioral disclosure. The description mentions it returns '会議の全発言本文を含む詳細データ' (full speech text included), which adds some behavioral context. However, it does not disclose rate limits, auth requirements, cost implications of full-text retrieval, or what the response structure looks like beyond noting detailed data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a concise single sentence with the key information front-loaded. It efficiently states purpose, output format, and record limit in one compact sentence. No wasted words, but it could have used the space to add sibling differentiation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with 22 parameters and no output schema. The description mentions '詳細データ' (detailed data) but doesn't elaborate on what the output looks like or how the many date/range/session parameters interact. While the schema covers all parameter descriptions, the description itself provides limited guidance on how to combine parameters effectively for a search with this many options.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents all 22 parameters with descriptions. The description adds only the 10-record maximum limit which is also in the schema's maximumRecords parameter (maximum: 10). The description's one extra note about meeting-unit output helps frame parameter semantics but adds nothing beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states '国会の会議を検索します(会議単位出力)' with a specific verb (検索 - search), resource (国会の会議 - Diet meetings), and output unit (会議単位 - meeting-unit). It distinguishes from search_speeches by noting meeting-unit output order. However, differentiation from search_meetings_simple is only implicit through the word 'full' in the tool name rather than explicit in the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes '最大10件まで取得可能' (max 10 records retrievable), giving some practical usage constraint. However, there is no explicit guidance on when to use this tool vs. search_meetings_simple or search_speeches. The sibling differentiation is implied through the 'full' name and meeting-unit output but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_meetings_simpleB

国会の会議を検索します(会議単位簡易出力)。会議の基本情報と該当する発言のリストを取得します。最大100件まで取得可能。

ParametersJSON Schema
NameRequiredDescriptionDefault
anyNo発言内容の検索キーワード。半角スペース区切りでAND検索
fromNo開会日付/始点(YYYY-MM-DD形式)
untilNo開会日付/終点(YYYY-MM-DD形式)
closingNo閉会中の会議録に限定(デフォルト:false)
issueIDNo会議録ID(21桁の英数字)
issueToNo号数To(終了号)
speakerNo発言者名。半角スペース区切りでOR検索
speechIDNo発言ID(例:100105254X00119470520_000)
issueFromNo号数From(開始号)
sessionToNo国会回次To(終了回)
nameOfHouseNo院名(衆議院、参議院、両院、両院協議会)
searchRangeNo検索対象箇所(冒頭、本文、冒頭・本文)
sessionFromNo国会回次From(開始回)
speakerRoleNo発言者役割(証人、参考人、公述人)
startRecordNo取得開始位置(デフォルト1)
speakerGroupNo発言者所属会派(部分一致)
speechNumberNo発言番号(0以上の整数)
nameOfMeetingNo会議名(例:本会議、予算委員会)。半角スペース区切りでOR検索
maximumRecordsNo最大取得件数(1-100、デフォルト30)
speakerPositionNo発言者肩書き(部分一致)
contentsAndIndexNo目次・索引に限定(デフォルト:false)
supplementAndAppendixNo追録・附録に限定(デフォルト:false)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the output is '簡易出力' (simple/basic output) and the 100-record cap, but doesn't describe pagination behavior, rate limits, authentication needs, or what fields the basic output contains. For a search/read-only tool this is partially adequate but leaves return-format uncertainty.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact at roughly two sentences, first stating the purpose and then the output. It's appropriately sized and front-loaded with the primary purpose. Each sentence earns its place with useful information (search capability, basic output format, record cap).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 22 parameters, no output schema, and no annotations, the description is moderately complete. It explains the tool is a simple/basic search with a 100-record cap, but given the sheer number of parameters and sibling tools, the description could do more to explain the simple-vs-full distinction and how the output differs from search_speeches. The mention of '簡易出力' hints at this but doesn't elaborate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description mentions AND search for 発言内容 and basic info/speech list retrieval, which adds high-level context. But it doesn't explain how the many search parameters combine with each other (e.g., whether issuing a query for 'any' plus issueID narrows or overrides), so it mostly relies on the well-documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it searches Diet meetings with basic output format, retrieving basic meeting info and matching speech list. The '国会の会議を検索します' gives a clear verb+resource. It distinguishes from siblings via '簡易出力' (simple output format), though it doesn't explicitly contrast with search_meetings_full or search_speeches by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for searching meetings with basic output, and '最大100件まで取得可能' gives a key constraint. However, it doesn't explicitly state when to use this vs the 'full' variant or when to prefer search_speeches instead. No exclusions or alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_speechesB

国会の発言を検索します(発言単位出力)。個別の発言本文を取得します。最大100件まで取得可能。

ParametersJSON Schema
NameRequiredDescriptionDefault
anyNo発言内容の検索キーワード。半角スペース区切りでAND検索
fromNo開会日付/始点(YYYY-MM-DD形式)
untilNo開会日付/終点(YYYY-MM-DD形式)
closingNo閉会中の会議録に限定(デフォルト:false)
issueIDNo会議録ID(21桁の英数字)
issueToNo号数To(終了号)
speakerNo発言者名。半角スペース区切りでOR検索
speechIDNo発言ID(例:100105254X00119470520_000)
issueFromNo号数From(開始号)
sessionToNo国会回次To(終了回)
nameOfHouseNo院名(衆議院、参議院、両院、両院協議会)
searchRangeNo検索対象箇所(冒頭、本文、冒頭・本文)
sessionFromNo国会回次From(開始回)
speakerRoleNo発言者役割(証人、参考人、公述人)
startRecordNo取得開始位置(デフォルト1)
speakerGroupNo発言者所属会派(部分一致)
speechNumberNo発言番号(0以上の整数)
nameOfMeetingNo会議名(例:本会議、予算委員会)。半角スペース区切りでOR検索
maximumRecordsNo最大取得件数(1-100、デフォルト30)
speakerPositionNo発言者肩書き(部分一致)
contentsAndIndexNo目次・索引に限定(デフォルト:false)
supplementAndAppendixNo追録・附録に限定(デフォルト:false)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. The description notes the 100-record maximum and per-speech output unit, which is useful. However, for a search/search tool with 22 parameters, it doesn't disclose pagination behavior, result ordering, error behavior, or whether results are returned in chronological order. The completeness notes are thin for such a complex tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences. It front-loads the core purpose (search speeches), adds output granularity (per-speech unit), and caps expectations with the 100-record limit. No wasteful content. Appropriate for a tool whose heavy lifting is delegated to the comprehensively documented schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 22-parameter tool with no output schema and no annotations, the description is arguably thin. However, the schema is 100% documented, which mitigates the parameter burden. The description confirms output granularity and the cap, which are the biggest unknowns. It could benefit from noting result ordering, but the core usage is adequately conveyed given the schema's thoroughness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 22 parameters. Baseline is 3. The description adds nothing about parameter semantics beyond what the schema provides — it doesn't explain any parameter interactions or common filter combinations. Schema carries the full weight, which is acceptable at the baseline level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states '検索します' (search) with clear resource being speeches (国会の発言), and notes it outputs per-speech units (発言単位出力) and returns individual speech text. This distinguishes from siblings search_meetings_simple and search_meetings_full which target meetings, but doesn't explicitly name them as alternatives. Purpose is clear and specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for searching speech-level content (as opposed to meeting-level search in siblings), but does not explicitly state when to use this vs the meeting-search tools or provide exclusion criteria. No mention of when not to use it. Usage context is implied by the resource type rather than explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv1.0.0
    • First observedsearch_meetings_full
    • First observedsearch_meetings_simple
    • First observedsearch_speeches

TDQS

B3.2/5.0
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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/seiichi3141/kokkai_giji_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server