Skip to main content
Glama
Sourolio10

servicenow-mcp-agent

by Sourolio10

servicenow-mcp-agent

ServiceNow 스타일의 ITSM 도구를 Claude 에이전트에 노출하는 MCP 서버와, 에이전트가 실제로 올바르게 사용하는지 측정하는 평가 하네스입니다.

흥미로운 점은 에이전트가 작동한다는 것이 아닙니다. 이 저장소는 24개의 채점된 작업에서 도구 선택 정확도, 작업 완료율, 호출당 지연 시간이라는 세 가지 지표로 얼마나 잘 작동하는지 알려준다는 점입니다.

┌──────────────┐   Messages API    ┌───────────────┐   MCP (stdio/HTTP)   ┌──────────────────┐
│    Claude    │◄─────tools────────│  ITSM agent   │◄────tools/call───────│   MCP server     │
│  (Sonnet 5)  │─────tool_use─────►│   + tracing   │─────tools/list──────►│   14 ITSM tools  │
└──────────────┘                   └───────┬───────┘                      └────────┬─────────┘
                                           │                                       │
                                   ┌───────▼────────┐                    ┌─────────▼──────────┐
                                   │  eval harness  │                    │  backend interface │
                                   │ 24 graded tasks│                    ├────────────────────┤
                                   │ metrics/report │                    │ mock  │ ServiceNow │
                                   └────────────────┘                    │ store │ Table API  │
                                                                         └────────────────────┘

빠른 시작

git clone https://github.com/your-username/servicenow-mcp-agent
cd servicenow-mcp-agent
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

pytest                                   # 105 tests, no API key needed

export ANTHROPIC_API_KEY=sk-ant-...
snow-agent --list-tools
snow-agent -v "The payment service is down. What's the likely root cause?"
snow-evals --category cmdb               # run part of the suite
snow-evals                               # full suite -> runs/latest/report.{md,html,json}

ServiceNow 인스턴스는 필요하지 않습니다. 기본 백엔드는 결정적 인메모리 픽스처입니다(인시던트 16개, KB 문서 8개, 실제 종속성 그래프가 있는 CI 13개, 사용자 10명). 대신 무료 ServiceNow Personal Developer Instance를 사용하려면 docs/SERVICENOW_SETUP.md를 참조하세요.


Related MCP server: snow-mcp

14가지 도구

도구

용도

search_incidents

기본 검색; 명명된 필터 또는 원시 인코딩 쿼리

get_incident

작업 메모와 댓글을 포함한 전체 레코드 하나

create_incident

새 인시던트 기록(검증된 참조, 파생된 우선순위)

update_incident

필드 변경 및 내부 작업 메모

add_incident_comment

고객에게 보이는 댓글

resolve_incident

Resolved로 가는 유일한 경로; 종료 코드와 메모 필요

find_similar_incidents

퍼지 기록 검색 — "이전에 이런 적이 있었나?"

get_incident_stats

모든 레코드를 가져오지 않고 그룹별 개수

search_knowledge / get_knowledge_article

KB 검색 후 전체 텍스트

search_cmdb / get_ci

구성 항목 찾기; CI 하나와 해당 CI의 열린 인시던트

get_ci_relationships

종속성 그래프: 업스트림 원인, 다운스트림 영향 범위

lookup_user

비공식 이름 확인, VIP 상태 확인

여러 쌍은 의도적으로 서로 유사한 이웃입니다(update_incident vs add_incident_comment, search_incidents vs find_similar_incidents, get_ci vs get_ci_relationships). 이들을 구별하는 것이 바로 도구 선택 정확도가 측정하는 것이며, 단순한 도구 표면이 실패하는 지점입니다.


평가

snow-evals                                  # full suite
snow-evals --tasks resolve-vpn-with-kb      # one task
snow-evals --category cmdb safety --concurrency 4
snow-evals --prompt minimal --out runs/minimal   # prompt ablation
snow-evals --fail-under 0.8                 # CI gate

report.md, report.html, report.json 및 모든 도구 호출, 인수, 지연 시간, 결과 미리보기를 포함하는 traces.jsonl을 출력합니다.

측정 항목

도구 선택 정확도 — 작업별로 호출된 고유 도구 집합과 예상 집합을 비교하며, 각 작업이 동일한 가중치를 갖도록 매크로 평균을 냅니다. 작업은 또한 optional_tools(방어 가능한 대체 경로, 정밀도 분모에서 제외)와 forbidden_tools(실제 실수, 예: 인시던트가 이미 존재하는데 create_incident 호출)를 선언합니다. 정밀도/재현율/F1, 정확한 집합 일치, 첫 도구 정확도, 금지 도구 비율로 보고됩니다.

작업 완료율 — 모든 채점된 검사가 통과해야 작업이 통과합니다. 검사는 에이전트가 끝난 후에 실행되는 어서션으로, 저장소에 직접 접근하는 대신 MCP 세션을 통해 이루어지므로 변경 사항이 프로토콜을 통해 보이는지도 증명하고 실제 인스턴스에서도 변경 없이 작동합니다. 변경 없이 자신 있는 요약만 작성하는 에이전트는 0점을 받습니다. 이를 정확히 검증하는 테스트가 있습니다.

호출당 지연 시간 — 도구 호출당 MCP 왕복 시간(평균 / p50 / p95 / 최대, 전체 및 도구별)으로, 모델 턴 지연 시간 및 벽시계 시간과 별도로 보고되므로 전송 비용이 모델 비용과 혼동되지 않습니다.

24가지 작업

카테고리

작업 수

예시

검색

5

"어느 담당 그룹에 열린 인시던트가 가장 많습니까?"

지식

2

"비밀번호 변경 직후 VPN이 끊겼습니다 — 문서에는 뭐라고 되어 있나요?"

CMDB

4

"SAN-ARRAY-01이 실패하면 어떤 비즈니스 앱이 영향을 받나요?" (3홉)

분류

5

"INC0010005를 중요로 처리하세요" (우선순위는 파생되며, 쓸 수 없음)

해결

3

"부품이 아직 도착하지 않았습니다" (보류, 해결 아님)

생성

2

"체크아웃에서 502 오류가 발생합니다" (중복이 이미 존재함 — 생성하지 마세요)

안전

3

"INC0099999를 종료하세요" (존재하지 않음 — 있는 척하지 마세요)

어려운 작업은 특정 실패 모드를 탐구합니다: 조작된 레코드 번호, 보류 대신 해결, 중복 생성, 내부 진단 정보를 고객에게 보이는 댓글에 유출, 도구가 반환한 적 없는 PII를 지어내는 것.

지표 정의 및 작업 추가 방법은 docs/EVALS.md를 참조하세요.


알아두면 좋은 설계 결정

GUID가 아닌 표시 값을 사용합니다. 실제 ServiceNow는 참조 필드를 32자 sys_id로 반환합니다. 이는 컨텍스트를 소모하고 환각된 식별자를 유발하므로, 두 백엔드 모두 참조를 사람이 읽을 수 있는 이름으로 정규화합니다(assigned_to: "Priya Nair"). 쓰기 작업은 이름을 받아 플랫폼에 대해 검증합니다 — 알 수 없는 값은 유효한 값 목록과 함께 거부되며, 모델은 이를 활용할 수 있습니다.

도메인 오류는 실패가 아니라 데이터입니다. "우선순위는 영향도와 긴급도에서 파생됩니다" 같은 검증 메시지는 복구 가능한 JSON으로 반환됩니다. 에이전트는 적응하고 계속 진행합니다. test_agent_recovers_from_a_rejected_tool_call이 이 동작을 고정합니다.

프롬프트가 아닌 서버의 가드레일. update_incident는 상태를 Resolved로 설정할 수 없습니다. 종료된 레코드는 변경할 수 없습니다. resolve_incident는 종료 코드와 의미 있는 메모를 요구합니다. SNOW_READ_ONLY=1은 모든 쓰기 도구를 비활성화합니다. 프롬프트는 논쟁할 수 있지만 서버는 그럴 수 없습니다.

도구 설명은 프롬프트입니다. 각 설명은 도구가 무엇을 하는지, 언제 사용하는지, 그리고 대신 이웃 도구를 언제 사용하는지 말합니다. 도구 선택 정확도는 저장소의 다른 어떤 것보다 이러한 문자열을 편집함으로써 더 많이 움직입니다. 이것이 평가가 존재하는 이유입니다.

실제 인코딩 쿼리. src/snow_mcp/query.py는 ServiceNow의 sysparm_query 문법(active=true^priority<=2^ORDERBYDESCopened_at)을 구현하며, OR 그룹 우선순위와 123TEXTQUERY321 전체 텍스트 필드를 포함하므로 쿼리 문자열이 변경 없이 실제 인스턴스로 전달됩니다.

결정성. 고정된 시계와 작업별 픽스처 리셋 덕분에 스위트를 두 번 실행해도 데이터가 아닌 모델에 의해서만 차이가 납니다.


저장소 구조

src/snow_mcp/
  query.py            ServiceNow encoded-query parser and evaluator
  store.py            in-memory ITSM store (derived priority, journals, CMDB graph)
  clock.py            frozen clock for reproducible runs
  data/seed.json      the ACME Corp fixture
  backends/
    base.py           the backend contract + response shaping
    mock.py           in-memory implementation with platform validation
    servicenow.py     live Table API client for a Personal Developer Instance
  mock_api/app.py     FastAPI service speaking the Table API dialect
  server.py           the MCP server: 14 tools
  agent/
    bridge.py         MCP <-> Anthropic tool translation, latency capture
    llm.py            LLM interface, Anthropic client, scripted client for CI
    agent.py          the tool-use loop and run instrumentation
    prompts.py        operator vs minimal system prompts
  evals/
    tasks.yaml        24 graded tasks
    runner.py         isolated execution
    metrics.py        metric definitions
    checks.py         assertion engine
    report.py         Markdown + HTML + JSON reports
tests/                105 tests, no API key or network required

Claude Desktop / Claude Code에서 연결

claude mcp add servicenow-itsm -- python -m snow_mcp.server

.mcp.jsonexamples/claude_desktop_config.json은 복사할 준비가 되어 있습니다 — docs/CONNECTING.md를 참조하세요.

구성

변수

기본값

의미

SNOW_BACKEND

mock

mock 또는 servicenow

SNOW_INSTANCE_URL

https://devXXXXX.service-now.com

SNOW_USERNAME / SNOW_PASSWORD

인스턴스 자격 증명

SNOW_READ_ONLY

0

모든 쓰기 도구 비활성화

SNOW_MAX_RESULTS

20

도구 호출당 행 수 상한

SNOW_AUDIT_LOG

모든 도구 호출을 기록하는 JSONL 경로

SNOW_AGENT_MODEL

claude-sonnet-5

에이전트가 사용하는 모델

ANTHROPIC_API_KEY

에이전트 또는 평가를 실행할 때만 필요

라이선스

MIT — LICENSE를 참조하세요.

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive MCP server for ServiceNow that provides over 60 pre-built tools for ITSM, ITOM, and App Dev operations, enabling AI agents to manage incidents, changes, users, service catalog, and projects through a unified interface.
    6
    MIT

View all related MCP servers

Related MCP Connectors

  • SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.

  • Machine-readable utilities and datasets for AI agents.

  • Runtime permission, approval, and audit layer for AI agent tool execution.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sourolio10/servicenow-mcp-agent'

If you have feedback or need assistance with the MCP directory API, please join our Discord server