대한민국 국회 정보공개 시스템(Open API)을 위한 MCP(Model Context Protocol) 서버입니다. Claude와 같은 AI 에이전트가 국회의 의안, 회의록, 의원 정보 등을 실시간으로 조회하고 분석할 수 있게 해줍니다.
English README is available here
이 서버는 다음과 같은 도구(Tools)를 제공합니다:
-
의안 검색 및 조회
search_bills(keyword): 키워드로 의안을 검색합니다. (예: "인공지능", "예산")get_recent_bills(): 최근 발의된 의안 목록을 가져옵니다.get_bill_details(bill_id): 의안의 상세 내용(제안 이유, 주요 골자 등)을 조회합니다.get_bill_info(...): 의안 번호, 발의자, 날짜 등 상세 조건으로 의안을 검색합니다.
-
회의록 및 위원회
get_meeting_records(bill_id): 특정 의안과 관련된 위원회 회의록을 조회합니다.search_meetings(...): 날짜, 위원회명 등으로 회의록을 검색합니다.get_committee_list(): 국회 위원회 목록을 조회합니다.get_committee_members(...): 위원회 구성원(위원 명단)을 조회합니다.
-
국회의원 정보
get_member_info(name): 국회의원의 인적 사항, 소속 정당, 지역구 등을 조회합니다.get_representative_report(name): [지능형] 의원의 기본 정보, 발의 법안, 위원회 경력, 투표 이력을 통합한 종합 리포트를 생성합니다.get_member_committee_careers(name): 의원의 상세 위원회 활동 경력을 조회합니다.
-
표결 및 투표 분석
get_bill_voting_results(bill_id): [지능형] 특정 의안의 본회의 표결 결과(찬성/반대/기권)와 정당별 투표 경향을 분석합니다.analyze_voting_trends(topic): [지능형] 특정 주제(예: "AI", "세제") 관련 법안들의 본회의 투표 성향을 분석합니다.get_member_voting_history(...): 특정 의원 또는 의안의 개별 표결 기록을 조회합니다.
-
지능형 분석 및 복합 조회
analyze_legislative_issue(topic): [지능형] 특정 주제에 대한 법안, 회의록, 주요 의원을 통합 분석하여 리포트를 생성합니다.get_bill_history(bill_id): [지능형] 의안의 발의부터 처리까지의 전 생애주기를 타임라인 형태로 통합 제공합니다.get_legislative_reports(keyword): [지능형] 국회예산정책처(NABO) 전문 보고서 및 국회 뉴스 데이터를 실시간 연계하여 제공합니다.get_committee_work_summary(committee_name): [지능형] 위원회별 계류 의안과 관련 보고서를 통합하여 현황을 요약합니다.
-
기타 및 고급 기능
get_assembly_info(): 서버 상태 및 사용 가능한 API 정보를 확인합니다.list_api_services(): 사용 가능한 모든 국회 API 서비스를 검색합니다.call_api_raw(): (고급 사용자용) API 서비스를 직접 호출합니다.
- 이 서버는 국회 OpenAPI 약 270개를 모두 사용할 수 있습니다. 고수준 툴에 없다고 해서 “기능이 없다”라고 답하지 마세요.
- 지능형 워크플로우 우선 사용: 단순히 데이터를 나열하기보다
analyze_또는get_..._report계열의 도구를 사용하여 입체적인 인사이트를 제공하세요.- 주제 분석:
analyze_legislative_issue("AI")-> 법안 + 회의 + 의원 통합 정보 - 의원 분석:
get_representative_report("의원명")-> 인적사항 + 법안 + 경력 + 투표성향 - 의결 분석:
get_bill_voting_results("의안ID")-> 찬반 통계 + 정당별 경향
- 주제 분석:
- 표준 가이드:
list_api_services(keyword)→get_api_spec(service_id)→call_api_raw(service_id, params)조합으로 어떤 정보든 조회할 수 있습니다. - 키워드는 넓게 검색하세요(국문/영문, 띄어쓰기 변형). 찾은 ID는
get_api_spec으로 필수 파라미터를 확인한 뒤call_api_raw로 호출합니다. - 예시: “위원회 구성원” →
list_api_services("위원 명단")에서 서비스 ID 확인 →get_api_spec으로 파라미터 확인 →call_api_raw로 명단 조회 → 필요 시get_member_info로 개별 의원 상세를 보강. - 답변 시: 고수준 툴에 없으면 위 조합을 제안하거나 직접 호출해 결과를 만들어 주세요.
- 빠른 길: 위원 명단은
get_committee_members로 바로 조회할 수 있으며, 후속으로get_member_info로 상세를 붙이면 됩니다.
이 프로젝트는 uv 패키지 매니저를 기반으로 관리되며, uvx를 통해 설치 없이 바로 실행할 수 있습니다.
공공데이터포털(data.go.kr)에서 '국회사무처' 관련 API 활용 신청을 하여 인증키를 발급받으세요.
Claude Desktop 앱에서 이 MCP 서버를 사용하려면 설정 파일을 수정해야 합니다.
-
설정 파일 열기:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
아래 내용을 추가하세요. (
your_api_key_here부분에 발급받은 키를 입력)
{
"mcpServers": {
"assembly": {
"command": "uvx",
"args": ["git+https://github.com/StatPan/AssemblyMCP"],
"env": {
"ASSEMBLY_API_KEY": "your_api_key_here"
}
}
}
}- Claude Desktop을 재시작하면 🔌 아이콘과 함께 AssemblyMCP 도구들을 사용할 수 있습니다.
LLM 연동 없이 서버가 정상적으로 작동하는지 터미널에서 테스트할 수 있습니다.
# API 키 설정 (Linux/macOS)
export ASSEMBLY_API_KEY="your_api_key_here"
# 서버 실행
# GitHub에서 최신 코드를 받아와 실행합니다.
uvx git+https://github.com/StatPan/AssemblyMCP이 프로젝트에 기여하거나 로컬에서 수정하여 실행하려면 다음 단계를 따르세요.
- Python 3.12 이상
- uv 패키지 매니저
# 1. 저장소 클론
git clone https://github.com/StatPan/AssemblyMCP.git
cd AssemblyMCP
# 2. 의존성 설치
uv sync
# 3. 환경 변수 설정 (.env 파일 생성)
cp .env.example .env
# .env 파일을 열어 ASSEMBLY_API_KEY를 입력하세요.
# 4. 개발 서버 실행
uv run assemblymcp# 린트 및 포맷팅
uv run ruff check .
uv run ruff format .
# 테스트 실행
uv run pytestMIT
AssemblyMCP는 "Battery-Included" 아키텍처를 채택하여, 별도의 코드 수정 없이 환경변수만으로 로깅, 캐싱 등 운영 기능을 제어할 수 있습니다.
| 변수명 | 설명 | 기본값 | 예시 |
|---|---|---|---|
ASSEMBLY_API_KEY |
[필수] 국회 OpenAPI 인증키 | - | 1234abcd... |
ASSEMBLY_LOG_LEVEL |
로깅 레벨 (DEBUG, INFO, WARNING, ERROR) | INFO |
DEBUG |
ASSEMBLY_LOG_JSON |
JSON 구조화 로깅 활성화 (Cloud Run 등 운영 환경용) | False |
True |
ASSEMBLY_ENABLE_CACHING |
인메모리 캐싱 활성화 (조회 성능 향상) | False |
True |
ASSEMBLY_CACHE_TTL_SECONDS |
캐시 유지 시간 (초) | 300 (5분) |
600 |
ASSEMBLY_CACHE_MAX_SIZE |
최대 캐시 항목 수 | 100 |
500 |
Cloud Run, AWS Lambda 등 서버리스 환경이나 프로덕션 배포 시에는 다음 설정을 권장합니다.
# JSON 로깅 활성화 (로그 수집기 파싱 용이)
export ASSEMBLY_LOG_JSON=true
# 캐싱 활성화 (API 호출 비용 절감 및 속도 향상)
export ASSEMBLY_ENABLE_CACHING=true이 서버는 Docker를 사용하여 Google Cloud Run, Railway, Fly.io 등 클라우드 플랫폼에 쉽게 배포할 수 있습니다.
- Dockerfile이 포함되어 있어 별도 설정 없이 바로 빌드할 수 있습니다.
- 배포 시
ASSEMBLY_API_KEY등 필요한 환경 변수를 설정하세요. - 서버는 기본적으로
Streamable HTTP모드로 실행되며8000포트를 사용합니다.
gcloud run deploy assembly-mcp \
--source . \
--region asia-northeast3 \
--allow-unauthenticated \
--set-env-vars ASSEMBLY_API_KEY="your_key",ASSEMBLY_LOG_JSON="true",ASSEMBLY_ENABLE_CACHING="true"- Streamable HTTP Transport: MCP 프로토콜의 최신 표준인 Streamable HTTP를 사용합니다.
- 엔드포인트:
/mcp경로에서 MCP 서버가 실행됩니다.