TL;DR
Vespa의 네 인턴은 Claude나 Codex 같은 AI assistant가 Vespa Cloud 애플리케이션을 배포하고 조회하며 로그와 Grafana 지표를 확인할 수 있는 공개형 Model Context Protocol server prototype을 만들었습니다. 서버는 API를 그대로 노출하지 않고 상대 시간, 심각도 필터, 반복 로그 병합, 응답 크기 제한 같은 인터페이스를 제공해 LLM의 잘못된 호출과 불필요한 context 사용을 줄입니다. 파일 업로드와 장시간 배포 작업에는 MCP의 한계가 있어 별도 HTTP upload endpoint와 timeout을 사용했으며, Data Plane 인증은 애플리케이션별 token 문제로 아직 production 수준에 이르지 못했습니다. 세 차례 평가에서 MCP agent는 결정론적 검증 97%로 Vespa CLI agent의 95%를 앞섰고, 성공 배포까지 평균 시도 횟수도 1.40 대 2.87로 적었지만, 공개 출시 전 security review와 다중 tenant 인증 보완이 남아 있습니다.
섹션별 상세


@mcp.tool(...)
async def vespa_get_logs(...):
"""Search a deployed instance's logs.
Defaults to warning-and-above from the last hour.
Repeated events (identical except for their timestamp) are collapsed into one entry carrying `count` and `first_seen`.
The response is capped to a fixed size budget; when it overflows, the oldest events drop first.
Args:
start_time: Start of the time range. Accepts relative expressions ("now-1h", "now-7d") or ISO datetime strings. Defaults to "now-1h".
end_time: End of the time range. Accepts the same formats as start_time. Defaults to "now".
min_level: Minimum severity, most-to-least severe: fatal, error, warning, info, config, event, debug, spam. Pass "info" for normal logs, None for all.
contains: Case-insensitive substring over service, component, and message.
limit: Max events returned, most recent kept (default: 100, range: 1-100). Values outside this range are clamped and reported in the response warnings.
detail: "concise" (time, level, service, message) or "detailed" (adds host, pid, component).
...
"""로그 시간 범위와 심각도에 따라 결과를 요약하거나 상세 로그로 반환하는 MCP tool의 인터페이스입니다.





용어 해설
- Model Context Protocol
- — Model Context Protocol은 LLM과 외부 데이터·시스템·환경을 연결하는 개방형 표준입니다. 서버가 Resources, Tools, Prompts라는 인터페이스를 제공하면 호환되는 AI assistant가 별도 통합 없이 기능을 호출할 수 있습니다. 이 글에서는 Vespa Cloud의 애플리케이션 관리와 관측 기능을 연결하는 통로로 사용됩니다.
- Control Plane
- — Control Plane은 애플리케이션과 배포 같은 Vespa Cloud 관리 작업을 처리하는 영역입니다. 이 글의 MCP server는 Auth0 기반 인증을 재사용해 사용자의 애플리케이션 접근 권한을 확인하고, 공개 서버에서 안전하게 제공할 수 있는 기능의 중심으로 삼습니다.
- Data Plane
- — Data Plane은 배포된 Vespa Cloud 애플리케이션에 실제로 질의하는 영역입니다. 애플리케이션별 토큰이 필요해 Control Plane 인증만으로는 접근할 수 없으며, 글의 prototype은 사전 생성 토큰을 고정하는 임시 방식에 머물러 다중 tenant와 production 사용을 지원하지 못합니다.
- OAuth Proxy
- — OAuth Proxy는 클라이언트 요청을 인증 시스템으로 전달하면서 인증 흐름을 중간에서 연결하는 서버입니다. Vespa MCP server는 클라이언트를 먼저 등록한 뒤 Auth0로 넘겨 Control Plane 접근 권한을 부여하는 구조를 사용합니다.
- Grafana
- — Grafana는 시간 범위별 운영 지표를 패널 형태로 조회하는 관측 도구입니다. Vespa Cloud Console의 Grafana endpoint를 MCP tools에 연결하면 LLM이 리소스 사용량, 노드 상태, 재시작과 같은 지표를 로그 및 배포 정보와 함께 조회할 수 있습니다.
- 결정론적 검증(Deterministic Assertion)
- — 결정론적 검증은 실제 API 상태와 기대 결과를 직접 비교하는 평가 방식입니다. 애플리케이션 존재 여부, 노드 상태, 배포된 schema의 field 같은 사실을 고정된 조건으로 확인하므로 LLM judge가 놓칠 수 있는 결과 검증을 보완합니다.
- LLM Judge
- — LLM Judge는 정답 하나를 고정하기 어려운 agent의 도구 사용 과정을 rubric에 따라 평가하는 별도 언어 모델입니다. 이 글에서는 올바른 개념을 선택했는지와 실제 문제를 해결했는지를 판단하며, API로 직접 확인할 수 있는 사실은 결정론적 검증에 맡깁니다.
기술
- Model Context Protocol
- Vespa Cloud
- Vespa CLI
- Grafana
- Auth0
- Python
- Java
- Claude
- Codex
- HTTP
- OAuth
- Base64
- curl
활용 사례
- 자연어만으로 Vespa Cloud 검색 애플리케이션 생성과 배포
- 로그 필터링과 반복 이벤트 요약을 통한 애플리케이션 디버깅
- Grafana 지표와 배포 기록을 이용한 scaling 판단
- 노드 재시작으로 인한 active documents 변화 추적
- MCP server와 Vespa CLI를 비교하는 agent 평가
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.