본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 05. 23:44

mcp-evals: LLM 기반 점수 평가 및 내장 관측성 지원 MCP 도구 구현을 위한 Node.js 패키지와 GitHub Action

요약

mcp-evals는 LLM 기반 점수 평가 및 내장 관측성(Observability)을 지원하는 MCP(Model Context Protocol) 도구 구현 검증용 Node.js 패키지이자 GitHub Action입니다. 이 도구를 사용하면 개발된 MCP 서버의 기능적 정확도와 성능을 체계적으로 테스트하고, PR에 결과를 자동으로 게시할 수 있습니다. 또한, Prometheus, Grafana, Jaeger 등을 통해 통합 모니터링 및 지표를 제공하여 시스템 전체의 관측 가능성을 보장합니다. 평가 구성은 TypeScript 또는 YAML 형식으로 작성할 수 있으며, OpenAI나 Anthropic 같은 주요 LLM API 키를 환경 변수로 설정하여 사용할 수 있습니다. 이 패키지는 단순히 테스트 결과를 보고하는 것을 넘어, 실제 운영 환경에서 필요한 지연 시간, 오류율 등 상세한 성능 메트릭까지 추적할 수 있도록 설계되었습니다.

핵심 포인트

  • LLM 기반의 점수 평가(Accuracy, Completeness 등)를 통해 MCP 도구의 품질을 정량적으로 측정합니다.
  • GitHub Action 통합으로 PR 생성/업데이트 시 자동으로 평가를 실행하고 결과를 댓글로 보고합니다.
  • 내장 관측성 기능을 제공하여 Prometheus, Grafana, Jaeger 등을 통해 성능 지표(지연 시간, 오류 수 등)를 모니터링할 수 있습니다.
  • 평가 구성은 유연하게 TypeScript 또는 YAML 형식으로 지원되어 사용 편의성이 높습니다.
  • OpenAI 및 Anthropic API 키 설정을 통해 다양한 LLM 모델을 평가에 활용할 수 있습니다.

LLM 기반 점수 평가로 MCP (Model Context Protocol) 도구 구현을 평가하는 Node.js 패키지 및 GitHub Action 으로, 내장 관측성 지원이 포함되어 있습니다. 이를 통해 MCP 서버의 도구가 올바르게 작동하고 성능이 좋으며 통합 모니터링과 지표를 통해 완전히 관측 가능하도록 보장합니다.

npm install mcp-evals

워크플레 파일에 다음을 추가하세요:

name: Run MCP Evaluations
on:
pull_request:
...

평가 구성은 TypeScript 또는 YAML 형식 중 하나를 사용하여 만들 수 있습니다.

TypeScript 형식을 사용하려면 (예: evals.ts):

import { EvalConfig } from 'mcp-evals';
import { openai } from "@ai-sdk/openai";
import { grade, EvalFunction} from "mcp-evals";
...

간단한 구성을 위해 YAML 형식 (예: evals.yaml) 을 사용할 수 있습니다:

# Model configuration
model:
provider: openai # 'openai' 또는 'anthropic'
...

TypeScript 또는 YAML 파일 중 하나를 사용하여 CLI 를 통해 평가 실행할 수 있습니다:

# TypeScript 구성 사용
npx mcp-eval path/to/your/evals.ts path/to/your/server.ts
# YAML 구성 사용
...

이 GitHub Action 은 자동으로 다음을 수행합니다:

  • 평가를 실행합니다.
  • PR 에 댓글로 결과를 게시합니다.
  • PR 이 업데이트되면 댓글을 업데이트합니다.

각 평가는 다음 구조를 가진 객체를 반환합니다:

interface EvalResult {
accuracy: number; // 1-5 점수
completeness: number; // 1-5 점수
...

OPENAI_API_KEY: OpenAI 모델 (OpenAI 모델을 위해 필수) 의 OpenAI API 키

ANTHROPIC_API_KEY: Anthropic 모델 (Anthropic 모델을 위해 필수) 의 Anthropic API 키

참고

오픈소스 소프트웨어와 함께 이 GitHub Action 을 사용 중이라면, OpenAI billing dashboard 에서 데이터 공유를 활성화하여 하루에 250 만 개의 무료 GPT-4o mini 토큰을 청구할 수 있습니다. 이를 통해 이 Action 을 사실상 무료로 사용할 수 있습니다.

EvalConfig 인터페이스는 다음을 요구합니다:

model: 평가에 사용할 언어 모델 (예: GPT-4)

evals: 실행할 평가 함수 배열

각 평가 함수는 다음을 구현해야 합니다:

name: 평가 이름

description: 평가가 테스트하는 내용 설명

run: 모델과 EvalResult 를 반환하는 비동기 함수

YAML 구성 파일은 다음을 지원합니다:

모델 설정:

provider: 'openai' 또는 'anthropic'

name: 모델 이름 (예: 'gpt-4o', 'claude-3-opus-20240229')

api_key: 선택적 API 키 (기본값은 환경 변수 사용)

평가 설정:

name: 평가 이름 (필수)

description: 평가가 테스트하는 내용 설명 (필수)

prompt: MCP 서버에 보내는 프롬프트 (필수)

expected_result: 선택적 예상 동작 설명

지원 파일 확장자: .yaml, .yml

참고: 지표 기능은 아직 알파 단계입니다. 기능 및 API 가 변경될 수 있으며, 파기 변경이 발생할 수 있습니다.

  • MCP 서버를 초기화하기 전에 다음을 애플리케이션에 추가하세요.
import { metrics } from 'mcp-evals';
metrics.initialize(9090, { enableTracing: true, otelEndpoint: 'http://localhost:4318/v1/traces' });
  • 모니터링 스택을 시작하세요:

docker-compose up -d

  • MCP 서버를 실행하면 모니터링 스택에 자동으로 연결됩니다.

Prometheus: http://localhost:9090

Grafana: http://localhost:3000 (사용자명: admin, 비밀번호: admin)

Jaeger UI: http://localhost:16686

Tool Calls: 도구 이름별 도구 호출 수

Tool Errors: 도구 이름별 오류 수

Tool Latency: 도구 이름별 지연 시간 분포

MIT

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
1

댓글

0