Kokkai Minutes MCP Agent
Hosts the MCP agent on Cloudflare Workers infrastructure, making it accessible via a public endpoint for AI models to interact with
Uses Node.js as the runtime environment for the MCP server implementation
Implements the MCP server using TypeScript for type-safe development
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Kokkai Minutes MCP AgentFind recent discussions about childcare waiting lists in the Diet"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Kokkai Minutes MCP Agent
A Model Context Protocol (MCP) agent that provides a structured interface to the Japanese National Diet Library's Kokkai Minutes (parliamentary proceedings) API. This agent allows AI models to search and retrieve parliamentary proceedings through a standardized interface.
🚀 Already Deployed: The agent is live and ready to use at https://kokkaikaigiroku-mcp.egeg.workers.dev/mcp
Table of Contents
Related MCP server: mcp-japan-law
Example Questions for LLMs
Here are some example questions you can ask AI models (like Claude) that use this agent:
Policy Research
"Give me the list of politicians that talked about problems with 仮放免 (provisional release) in the last year"
"What were the main arguments made about 入管法改正 (immigration law reform) in recent Diet sessions?"
"Summarize discussions about 待機児童 (childcare waiting lists) from 2020 to present"
Political Analysis
"How has the government's stance on 原発再稼働 (nuclear power plant restart) evolved over time?"
"Find statements by the Prime Minister about インバウンド観光 (inbound tourism) after COVID-19"
"Compare different party positions on 消費税 (consumption tax) in budget committee meetings"
Historical Research
"Find debates about 日米安保条約 (US-Japan Security Treaty) from its original ratification period"
"How did the Diet discuss 少子化対策 (measures against declining birthrate) when it first became a social issue?"
API Functions
The agent provides three main functions:
searchMeetingList- Search for meetings with basic informationsearchMeetingsWithSpeechText- Search for meetings including full speech textssearchSpeeches- Search for specific speeches
Each function supports various parameters including:
Date range (
from,until)House selection (
nameOfHouse)Speaker information (
speaker,speakerPosition,speakerGroup)Content search (
any)Session numbers (
sessionFrom,sessionTo)And more
For detailed parameter information, please refer to the source code documentation.
Environment
Node.js
TypeScript
Cloudflare Workers
Model Context Protocol SDK
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Connect Claude Desktop to your MCP server
You can connect to the MCP server from local MCP clients using the mcp-remote proxy.
To connect from Claude Desktop, follow Anthropic's Quickstart and within Claude Desktop go to Settings > Developer > Edit Config.
Update with this configuration:
{
"mcpServers": {
"kokkaikaigiroku": {
"command": "npx",
"args": [
"mcp-remote",
"https://kokkaikaigiroku-mcp.egeg.workers.dev/mcp" // Use this for the deployed version
// or "http://localhost:8787/mcp" for local development
]
}
}
}Restart Claude and you should see the Kokkai Minutes search tools become available.
Available Tools
3 toolssearchMeetingListA
Searches for meeting summaries from the Kokkai API (会議単位簡易出力). Returns basic info like meeting name, date, ID, URL. Does not include speech text. Max 100 records.
| Name | Required | Description | Default |
|---|---|---|---|
| startRecord | No | Start position for retrieving search results (1-based). Default is 1. | |
| nameOfHouse | No | Name of the House (e.g., '衆議院' for House of Representatives, '参議院' for House of Councillors). '両院' and '両院協議会' yield the same results. | |
| nameOfMeeting | No | Name of the meeting (e.g., plenary session, committee). Partial match. Multiple terms separated by space for OR search. | |
| any | No | Keywords to search in speech content. Partial match. Multiple terms separated by space for AND search. | |
| speaker | No | Speaker's name. Partial match. Multiple names separated by space for OR search. | |
| from | No | Start date for meeting search (YYYY-MM-DD). Default '0000-01-01'. | |
| until | No | End date for meeting search (YYYY-MM-DD). Default '9999-12-31'. | |
| supplementAndAppendix | No | Limit search to supplements and appendices. Default false. | |
| contentsAndIndex | No | Limit search to table of contents and index. Default false. | |
| searchRange | No | Specifies where to search for keywords from 'any' parameter: '冒頭' (opening), '本文' (body), or '冒頭・本文' (both). Default '冒頭・本文'. | |
| closing | No | Limit search to meetings held during recess. Default false. | |
| speechNumber | No | Exact match for speech number (e.g., 10). | |
| speakerPosition | No | Speaker's position/title. Partial match. | |
| speakerGroup | No | Speaker's affiliated political group. Partial match. | |
| speakerRole | No | Speaker's role: '証人' (witness), '参考人' (expert witness/referential speaker), '公述人' (public speaker). | |
| speechID | No | Unique ID for a speech (format: issueID_paddedSpeechNumber, e.g., '100105254X00119470520_000'). Exact match. | |
| issueID | No | Unique ID for a meeting record (21 alphanumeric characters, e.g., '100105254X00119470520'). Exact match. | |
| sessionFrom | No | Starting Diet session number (up to 3 digits). | |
| sessionTo | No | Ending Diet session number (up to 3 digits). | |
| issueFrom | No | Starting issue number (up to 3 digits, 0 for TOC/index/appendix/supplement). | |
| issueTo | No | Ending issue number (up to 3 digits, 0 for TOC/index/appendix/supplement). | |
| maximumRecords | No | Maximum number of records to retrieve (1-100) for meeting list. Default is 30. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: the tool is a search operation (implied read-only), returns basic meeting info, excludes speech text, and has a max record limit of 100. However, it lacks details on error handling, authentication needs, rate limits, or pagination behavior (beyond startRecord parameter), leaving gaps for a tool with 22 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with essential information in three concise sentences: purpose, output format, and key constraint. Every sentence adds value without redundancy, making it efficient and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (22 parameters, no annotations, no output schema), the description is adequate but incomplete. It covers purpose, output scope, and a key limit, but lacks details on return format structure, error cases, or usage prerequisites. For a search tool with many parameters and no output schema, more context on result handling would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 22 parameters. The description adds no parameter-specific information beyond implying search functionality. It mentions 'Max 100 records' which relates to the maximumRecords parameter, but this is already covered in the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Searches for meeting summaries'), specifies the data source ('from the Kokkai API'), and distinguishes it from siblings by noting 'Does not include speech text' (unlike searchMeetingsWithSpeechText). It also specifies the output format ('basic info like meeting name, date, ID, URL') and a key constraint ('Max 100 records').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by stating what this tool does not include ('Does not include speech text'), which implicitly guides users toward searchMeetingsWithSpeechText for speech content. However, it does not explicitly name alternatives or specify when not to use this tool beyond the speech text exclusion, missing full explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchMeetingsWithSpeechTextA
Searches for meetings and includes the full text of ALL speeches within those meetings from the Kokkai API (会議単位出力). Returns meeting info and all speech texts. Max 10 records.
| Name | Required | Description | Default |
|---|---|---|---|
| startRecord | No | Start position for retrieving search results (1-based). Default is 1. | |
| nameOfHouse | No | Name of the House (e.g., '衆議院' for House of Representatives, '参議院' for House of Councillors). '両院' and '両院協議会' yield the same results. | |
| nameOfMeeting | No | Name of the meeting (e.g., plenary session, committee). Partial match. Multiple terms separated by space for OR search. | |
| any | No | Keywords to search in speech content. Partial match. Multiple terms separated by space for AND search. | |
| speaker | No | Speaker's name. Partial match. Multiple names separated by space for OR search. | |
| from | No | Start date for meeting search (YYYY-MM-DD). Default '0000-01-01'. | |
| until | No | End date for meeting search (YYYY-MM-DD). Default '9999-12-31'. | |
| supplementAndAppendix | No | Limit search to supplements and appendices. Default false. | |
| contentsAndIndex | No | Limit search to table of contents and index. Default false. | |
| searchRange | No | Specifies where to search for keywords from 'any' parameter: '冒頭' (opening), '本文' (body), or '冒頭・本文' (both). Default '冒頭・本文'. | |
| closing | No | Limit search to meetings held during recess. Default false. | |
| speechNumber | No | Exact match for speech number (e.g., 10). | |
| speakerPosition | No | Speaker's position/title. Partial match. | |
| speakerGroup | No | Speaker's affiliated political group. Partial match. | |
| speakerRole | No | Speaker's role: '証人' (witness), '参考人' (expert witness/referential speaker), '公述人' (public speaker). | |
| speechID | No | Unique ID for a speech (format: issueID_paddedSpeechNumber, e.g., '100105254X00119470520_000'). Exact match. | |
| issueID | No | Unique ID for a meeting record (21 alphanumeric characters, e.g., '100105254X00119470520'). Exact match. | |
| sessionFrom | No | Starting Diet session number (up to 3 digits). | |
| sessionTo | No | Ending Diet session number (up to 3 digits). | |
| issueFrom | No | Starting issue number (up to 3 digits, 0 for TOC/index/appendix/supplement). | |
| issueTo | No | Ending issue number (up to 3 digits, 0 for TOC/index/appendix/supplement). | |
| maximumRecords | No | Maximum number of records to retrieve (1-10) for meetings with speech text. Default is 3. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds some context: it specifies the source (Kokkai API), the output includes meeting info and all speech texts, and a max record limit of 10. However, it lacks details on permissions, rate limits, pagination (beyond the 'startRecord' parameter), error handling, or the exact format of returned data. For a tool with 22 parameters and no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, consisting of only two sentences that efficiently convey the tool's purpose, scope, and key constraint (max 10 records). Every word earns its place, with no redundant or vague language, making it easy for an AI agent to quickly understand the tool's core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (22 parameters, no annotations, no output schema), the description is incomplete. It adequately states the purpose and output scope but lacks details on behavioral aspects like error handling, data format, or usage constraints beyond the record limit. While it meets the minimum for clarity and conciseness, it does not provide enough context for an agent to fully anticipate how to handle results or potential issues, especially with such a rich parameter set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description does not add any specific parameter semantics beyond what the schema provides, such as explaining interactions between parameters or providing examples. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description does not compensate with additional insights but also does not detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Searches for meetings'), the resource ('meetings and includes the full text of ALL speeches'), the source ('from the Kokkai API'), and the scope ('Max 10 records'). It distinguishes from sibling tools by specifying it returns speech texts, unlike 'searchMeetingList' (likely just meeting metadata) and 'searchSpeeches' (likely focused on speeches rather than meetings with speeches).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: when you need meeting information along with all speech texts, with a limit of 10 records. It implies usage by specifying the output includes speech texts, which differentiates it from siblings. However, it does not explicitly state when not to use it or name alternatives, such as using 'searchMeetingList' if only meeting metadata is needed or 'searchSpeeches' for speech-focused searches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSpeechesA
Searches for specific speeches from the Kokkai API (発言単位出力). Returns speech text and info about the meeting it belongs to. Max 100 records.
| Name | Required | Description | Default |
|---|---|---|---|
| startRecord | No | Start position for retrieving search results (1-based). Default is 1. | |
| nameOfHouse | No | Name of the House (e.g., '衆議院' for House of Representatives, '参議院' for House of Councillors). '両院' and '両院協議会' yield the same results. | |
| nameOfMeeting | No | Name of the meeting (e.g., plenary session, committee). Partial match. Multiple terms separated by space for OR search. | |
| any | No | Keywords to search in speech content. Partial match. Multiple terms separated by space for AND search. | |
| speaker | No | Speaker's name. Partial match. Multiple names separated by space for OR search. | |
| from | No | Start date for meeting search (YYYY-MM-DD). Default '0000-01-01'. | |
| until | No | End date for meeting search (YYYY-MM-DD). Default '9999-12-31'. | |
| supplementAndAppendix | No | Limit search to supplements and appendices. Default false. | |
| contentsAndIndex | No | Limit search to table of contents and index. Default false. | |
| searchRange | No | Specifies where to search for keywords from 'any' parameter: '冒頭' (opening), '本文' (body), or '冒頭・本文' (both). Default '冒頭・本文'. | |
| closing | No | Limit search to meetings held during recess. Default false. | |
| speechNumber | No | Exact match for speech number (e.g., 10). | |
| speakerPosition | No | Speaker's position/title. Partial match. | |
| speakerGroup | No | Speaker's affiliated political group. Partial match. | |
| speakerRole | No | Speaker's role: '証人' (witness), '参考人' (expert witness/referential speaker), '公述人' (public speaker). | |
| speechID | No | Unique ID for a speech (format: issueID_paddedSpeechNumber, e.g., '100105254X00119470520_000'). Exact match. | |
| issueID | No | Unique ID for a meeting record (21 alphanumeric characters, e.g., '100105254X00119470520'). Exact match. | |
| sessionFrom | No | Starting Diet session number (up to 3 digits). | |
| sessionTo | No | Ending Diet session number (up to 3 digits). | |
| issueFrom | No | Starting issue number (up to 3 digits, 0 for TOC/index/appendix/supplement). | |
| issueTo | No | Ending issue number (up to 3 digits, 0 for TOC/index/appendix/supplement). | |
| maximumRecords | No | Maximum number of records to retrieve (1-100) for speeches. Default is 30. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the 'Max 100 records' limit, which is valuable operational context. However, it doesn't describe authentication needs, rate limits, error conditions, pagination behavior (beyond the startRecord parameter), or what happens when no results are found. For a search tool with 22 parameters and no annotations, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with just two sentences that pack essential information: what it searches, what it returns, and the record limit. Every word earns its place, and it's front-loaded with the core purpose. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (22 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and record limit but lacks information about authentication, error handling, response format, pagination strategy beyond the startRecord parameter, and explicit differentiation from sibling tools. For a search tool of this complexity, more contextual guidance would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 thoroughly with descriptions, enums, patterns, and defaults. The description doesn't add any parameter-specific information beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Searches'), resource ('specific speeches from the Kokkai API'), and scope ('発言単位出力'). It distinguishes from siblings by specifying it returns 'speech text and info about the meeting it belongs to' rather than just meeting lists or combined results. The mention of 'Max 100 records' further clarifies its operational limits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about what the tool returns (speech text + meeting info), which helps differentiate it from sibling tools like 'searchMeetingList' (likely returns only meeting metadata) and 'searchMeetingsWithSpeechText' (might return combined meeting-speech data). However, it doesn't explicitly state when to use this tool versus those alternatives or mention any prerequisites or exclusions.
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.
3 tool updates
- First observed
searchMeetingList - First observed
searchMeetingsWithSpeechText - First observed
searchSpeeches
TDQS
Each tool has a clearly distinct purpose with no ambiguity: searchMeetingList retrieves meeting metadata without speech text, searchMeetingsWithSpeechText returns meetings with full speech text, and searchSpeeches focuses on individual speeches with meeting context. The descriptions explicitly differentiate their scopes and output formats, making misselection unlikely.
All tool names follow a consistent verb_noun pattern using camelCase (searchMeetingList, searchMeetingsWithSpeechText, searchSpeeches), with 'search' as the uniform verb prefix. This predictable naming scheme enhances readability and agent usability without deviations.
With only 3 tools, the count feels borderline thin for a parliamentary minutes domain, potentially limiting advanced operations like filtering by date or speaker. However, it covers core search functionalities adequately, avoiding bloat but leaving room for expansion to improve workflow completeness.
The tool set provides comprehensive search coverage for Kokkai minutes, including metadata, full meeting texts, and individual speeches, with no dead ends. Minor gaps exist, such as lack of update/delete operations (irrelevant for read-only data) or advanced filtering options, but agents can work around these with the available tools.
Maintenance
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
Semantic search across Japan's government white papers, in English or Japanese. Free beta.
Japan Law MCP — Japanese national laws & ordinances via the e-Gov Law API.
Raw Japanese regulatory data for AI agents: pension, gazette, gBizINFO. x402-metered (USDC).
Search Japanese company credit, financials, subsidies, and procurement via AI agents.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables LLMs to search and retrieve Japanese laws from the e-Gov API v2, including keyword search, article fetching, table of contents, and revision history.7452MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying Japanese national laws and ordinances via the e-Gov Law API, allowing AI agents to access legal data through natural language questions.9MIT
- FlicenseAqualityBmaintenanceEnables search, retrieval, and summarization of Japanese National Diet meeting minutes via MCP tools.81-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to query Japanese public data (laws, corporations, statistics) from official government APIs, returning normalized English metadata with source attribution.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/egegungordu/kokkaikaigiroku-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server