吉他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 |
安装和运行
前提条件
- Python 3.10+
- data.go.kr API验证密钥
安装
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。
- 总统映射:以任期日期为基础,自动辨别李明博至尹锡悦。
