Korean Assembly Speech MCP

Korean Assembly Speech MCP

Enables search and retrieval of speech turns from Korea's National Assembly records using Korean or English natural-language queries, with citation-ready context and tools for exploring committees and meetings.

Category
访问服务器

README

Korean Assembly Speech MCP

<!-- mcp-name: io.github.epoko77-ai/korean-assembly-speech-mcp -->

Follow a Korean policy from bill status to the people, committees, and actual words behind it.

Korean & English queries · local-first · no paid API · FTS5 + E5 + FAISS · MCP + CLI

한국어 문서 · Architecture · Deployment · MCP clients · Data sources

KASM demo

Ask “Who raised concerns about sovereign AI?”, “What happened to bill 2200001?”, or “Show the subcommittee debate and the government's answers.” KASM traverses bill/agenda → status → committee/subcommittee → meeting → member → speech → surrounding Q&A. It combines official structured records with speech-level retrieval, acting as a small, evidence-first GraphRAG for legislative research.

Bill lookup MCP Korean Assembly Speech MCP
Result an isolated API row a connected bill-and-debate evidence graph
Retrieval structured API lookup lexical + multilingual semantic + RRF
English query client chooses an API directly retrieves Korean passages
Context API metadata status, committee/subcommittee, previous/next turns, Q&A
Verification API record original text, locator, meeting, official PDF
End-user key often required none for demo or public prepared-index MCP

Try it

The bundled demo is deliberately synthetic and clearly labeled. After package installation it proves the CLI and MCP contract without a key, model download, or upstream data call.

uvx korean-assembly-speech-mcp demo
uvx --from 'korean-assembly-speech-mcp[mcp]' kasm mcp

For a public deployment, an MCP client mounts one endpoint without credentials:

{
  "mcpServers": {
    "korean-assembly": {"url": "https://YOUR_HOST/mcp"}
  }
}

The operator's Open Assembly key belongs only in a separate refresh job. It is never required by clients and is not present in the public search container.

Search and synchronize

# Search a configured local/prepared index
kasm search "AI 기본법에 대한 정부 측 답변" --committee 과학기술정보방송통신위원회 \
  --database kasm.sqlite3 --vector-index kasm-vectors.faiss

# Operator-only official synchronization
kasm sync --source committee --assembly-term 22 --month 2025-01 --ingest \
  --all-pages --max-meetings 100 --database kasm.sqlite3

# Bills/agendas and their current processing results
kasm sync-bills --assembly-term 22 --all-pages --database kasm.sqlite3

# Local multilingual E5 + FAISS index
kasm index --database kasm.sqlite3 --output kasm-vectors.faiss --backend faiss

# stdio or stateless Streamable HTTP
kasm mcp --database kasm.sqlite3 --vector-index kasm-vectors.faiss
kasm mcp --transport streamable-http --host 0.0.0.0 --port 8000

Official synchronization uses only open.assembly.go.kr metadata and record.assembly.go.kr minutes. data.go.kr and third-party parliamentary datasets are out of scope. Set ASSEMBLY_OPEN_API_KEY only for kasm sync; raw caches, PDFs, .env, databases, and indexes are ignored by Git.

MCP tools

  • explore_issue — one-query GraphRAG traversal across bills, committees, people and speeches
  • search_bills — natural-language bill/agenda discovery with term, committee and status filters
  • get_bill_status — current outcome plus connected debate evidence
  • search_speeches — Korean/English policy-opinion retrieval with eight filters
  • get_speech — full speech record and stable provenance
  • get_speech_context — ordered surrounding speech turns
  • list_committees — indexed committees and covered dates
  • list_meetings — indexed meetings by committee, date, and type

Public clients need no Assembly key. The server operator uses a key only when producing refreshed SQLite/FAISS artifacts; clients query those prepared artifacts exactly like a public search index.

Measured gates

Checked-in scripts and artifacts make the results reproducible; synthetic evaluation data is explicitly labeled and never represented as Assembly speech text.

Gate Corpus Result
Official parser review 20 distinct official PDFs 20/20 reviewed boundaries pass
SQLite FTS5 latency 50,000 synthetic speeches p95 4.46 ms
E5 English → Korean 25 qrels Recall@10 1.00
Bilingual hybrid 50 queries Recall@10 1.00, MRR@10 0.99
uv sync --extra dev --extra mcp --extra semantic
HF_HOME=.hf-cache uv run python scripts/evaluate_e5.py
HF_HOME=.hf-cache uv run python scripts/evaluate_hybrid.py
uv run python scripts/benchmark_fts.py
uv run ruff check . && uv run mypy && uv run pytest

Architecture and data integrity

Refresh and search are separate trust domains:

Open Assembly key → scheduled refresh → validated SQLite + FAISS artifacts
                                             ↓ atomic release
keyless MCP client → HTTPS /mcp → read-only prepared search artifacts

The fetcher allowlists the official minutes host, verifies PDF signatures, records SHA-256 and retrieval metadata, reports parser failures, and refuses mismatched vector metadata. The public ASGI service exposes /mcp and /healthz; mount /data read-only and rate-limit at ingress.

Development

Python 3.12 and 3.13 are tested in GitHub Actions.

uv sync --extra dev --extra mcp
uv run ruff check .
uv run mypy
uv run pytest --cov=kasm

See CONTRIBUTING.md, SECURITY.md, and the roadmap in SPEC.md.

License and records

Code is licensed under Apache-2.0. Parliamentary records and excerpts remain subject to their official source terms; source URLs and hashes are retained. The repository contains only small review fixtures, not the full parliamentary corpus. See DATA_LICENSE.md.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选