总统演讲数据收集服务

该服务通过data.go.kr API收集总统演讲数据,并使用MCP协议提供标准化访问接口,适用于需要分析或展示总统演讲内容的应用场景。

  • by kwakchaewon
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kwakchaewon/guitteum-mcp

使用说明

吉他mcp

用于收集总统演讲稿的模型上下文协议(MCP)服务器。

data.go.kr政策简报演讲稿API收集演讲稿,作为MCP协议(stdio)提供。 Spring Boot后端(guitteum-backend)的 SpeechMcpClient通过subprocess运行该服务器进行通信。

技术堆栈

项目 技术
语言 Python 3.10+
MCP SDK MCP[cli]1.x(快速MCP)
HTTP客户端 httpx
XML解析器 xmltodict
建造 孵化
传输 stdio(JSON-RPC)

项目结构

src/guitteum_mcp/
├── __init__.py        # 패키지 진입점
├── __main__.py        # python -m 진입점
├── server.py          # FastMCP 서버 + 도구 등록
├── api_client.py      # data.go.kr API 호출
├── mapper.py          # XML → SpeechData 변환
├── models.py          # Pydantic 응답 스키마
├── pagination.py      # 3일 윈도우 순회 + 캐시
└── config.py          # 환경변수 로딩

MCP工具

list_speeches

以页面为单位返回整个演讲稿。

参数 类型 默认值 说明
page int 1 页码
per_page 每页项目数 int 100

search_speeches

返回以总统名义过滤的演讲稿。

参数 类型 默认值 说明
president 总统姓名(如“尹锡悦”)
page int 1 页码
per_page 每页项目数 int 100

安装和运行

前提条件

安装

pip install -e .

执行

# 환경변수로 API 키 전달
DATA_GO_API_KEY=your_key guitteum-mcp

# 또는 python -m
DATA_GO_API_KEY=your_key python -m guitteum_mcp

后端集成(本地开发)

application.yml:

data-go:
  api-key: ${DATA_GO_API_KEY:}
  mcp-command: uv
  mcp-args: --directory ../guitteum-mcp run guitteum-mcp

部署

data-go:
  mcp-command: uvx
  mcp-args: guitteum-mcp

测试

pip install pytest
pytest tests/ -v

设计备注

  • 3天窗口:data.go.kr API拒绝超过3天的查询,因此从2008-02-25到今天,以3天为单位反复调用并加载到内存缓存中。
  • stdout保护:由于MCP stdio转发器使用stdout,所有日志记录都输出到stderr。
  • 总统映射:以任期日期为基础,自动辨别李明博至尹锡悦。