공공데이터를 근거 기반 접근성 판단으로 바꾸면서 부분 실패와 미확인 범위를 숨기지 않는 데 초점을 둔 서울 지하철 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 저장소에 있다.


mcp.png


설계와 방향

왜 이 주제였고 무엇을 하지 않기로 했는지

프로젝트 목표와 운영 기준

개발과 검증 타임라인

시스템 구조

계층 경계와 데이터 정규화, 판단 계약

전체 아키텍처와 책임 경계

공공 API와 데이터 정규화

근거 기반 판단과 MCP 계약