공공데이터를 근거 기반 접근성 판단으로 바꾸면서 부분 실패와 미확인 범위를 숨기지 않는 데 초점을 둔 서울 지하철 MCP 서버다.
| Role | 백엔드 · AI · 운영 설계 및 구현 |
|---|---|
| Stack | FastMCP · Async Python · Pydantic · HTTPX · Redis 선택형 |
| Focus | 근거 기반 판단 · 부분 실패 처리 · 캐싱 · 보안 · 사용성 |
블로그 공공데이터로 교통약자 이동 MCP 서버를 만들어보자가 전체 흐름과 결론이라면 여기는 그 근거다.
<aside> ⚠️
현재 상태는 2026-08-14 로컬 검증 기준이다. 공개 호스팅 엔드포인트와 실제 교통약자 사용자 검증은 아직 하지 않았다.
</aside>
| 항목 | 현재 기준 | 해석 |
|---|---|---|
| 공공데이터 | 공식 API 4종 · 내부 5개 소스 | 실패 범위와 정규화 책임에 따라 내부 경계를 분리 |
| MCP 계약 | 도구 8개 · 프롬프트 4개 · 리소스 1개 | 조회, 판단, 사용자 답변과 에이전트 정책을 분리 |
| 자동 검증 | 로컬 테스트 447개 · Ruff 통과 | 2026-08-14 로컬 작업본 기준 |
| 지원 범위 | 65개 역·호선 조합 | 완전 지원 28개 · 부분 지원 37개 |
| 성능 | 캐시 없음 9,153ms · 캐시 있음 4,569ms | 캐시가 차면 외부 API 호출 8회 → 0회 |
소스 코드는 GitHub 저장소에 있다.

왜 이 주제였고 무엇을 하지 않기로 했는지
계층 경계와 데이터 정규화, 판단 계약