Skip to main content
Glama
darrylsarkisian-debug

ServiceNow MCP Demo — Incident Assistant

ServiceNow MCP 데모 — 인시던트 어시스턴트

Claude를 ServiceNow 인시던트 관리(Incident Management)에 연결하는 엔드투엔드 Model Context Protocol 데모입니다. 실제 ITSM 워크플로에 적용된 MCP 기본 개념(서버, 클라이언트, 도구, 리소스, stdio 전송, 에이전트 루프)을 보여주기 위해 제작되었습니다.

아키텍처

┌─────────────────────────────┐        ┌───────────────────────────────┐        ┌────────────────┐
│  Web Client (Streamlit)     │  MCP   │  MCP Server (FastMCP)         │  REST  │  ServiceNow    │
│  - MCP host + client        │◄──────►│  - create_incident            │◄──────►│  Table API     │
│  - Claude agent loop        │ stdio  │  - get_incident               │        │  (or mock mode)│
│  - Incident cards in UI     │JSON-RPC│  - list_recent_incidents      │        │                │
│                             │        │  - update_incident_state      │        │                │
│                             │        │  - resolve_incident           │        │                │
│                             │        │  - search_knowledge_articles  │        │                │
│                             │        │  - resource: priority         │        │                │
│                             │        │    matrix reference           │        │                │
└─────────────────────────────┘        └───────────────────────────────┘        └────────────────┘

"내 노트북이 부팅되지 않아요, 티켓을 열어주세요" 흐름:

  1. 웹 클라이언트는 시작 시 MCP 서버에서 발견한 도구 스키마와 함께 사용자의 메시지를 Claude로 보냅니다(tools/list).

  2. Claude는 추론된 긴급도/영향도/카테고리로 create_incident를 호출하기로 결정합니다.

  3. 클라이언트는 MCP를 통해 호출을 전달하고(tools/call), 서버는 ServiceNow Table API(또는 인메모리 mock)를 호출합니다.

  4. 결과가 다시 전달되고, Claude가 인시던트 번호를 확인하며, UI가 인시던트 카드를 렌더링합니다.

Related MCP server: ServiceNow MCP Server (SSE)

빠른 시작

# 1. Create a virtual environment
python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate

# 2. Install dependencies
pip install -r requirements.txt

# 3. Configure
cp .env.example .env             # then edit: add your ANTHROPIC_API_KEY
                                 # leave SERVICENOW_MODE=mock for a no-setup demo

# 4. Run the web client (it launches the MCP server automatically)
streamlit run client/app.py

http://localhost:8501을 열고 다음을 시도해 보세요:

  • "내 노트북이 부팅되지 않고 한 시간 안에 고객 데모가 있어요 — 티켓을 열어주세요."

  • "가장 최근 인시던트 5개를 보여주세요."

  • "기사가 이동 중이라는 작업 메모와 함께 INC0010001을 In Progress로 이동하세요."

  • "전원이 켜지지 않는 노트북에 대한 KB 문서가 있나요?"

  • "그걸로 해결됐어요 — INC0010001을 해결 처리하세요, 영구 해결, 충전기 교체."

라이브 ServiceNow 모드

  1. https://developer.servicenow.com에서 무료 Personal Developer Instance(PDI) 를 요청하세요(약 2분 소요).

  2. .env에서 SERVICENOW_MODE=live로 설정하고 SERVICENOW_INSTANCE, SERVICENOW_USER, SERVICENOW_PASSWORD를 입력하세요.

  3. 앱을 다시 시작하세요. 생성된 인시던트는 PDI의 Incident > All 아래에 표시됩니다 — 데모 중 실제 ServiceNow UI에서 티켓을 보여주기에 좋습니다.

PDI는 비활성 상태가 지속되면 절전 모드로 전환됩니다. 면접 약 15분 전에 PDI를 깨우고, mock 모드를 대비책으로 유지하세요.

search_knowledge_articles는 PDI의 kb_knowledge 테이블을 직접 쿼리합니다 — 라이브 모드로 데모하기 전에 데모 시나리오와 일치하는 제목(예: "Laptop won't power on")의 게시된 KB 문서 2~3개를 시드하세요. 그렇지 않으면 라이브 검색 결과가 비어 있을 수 있습니다. mock 모드에는 이미 3개의 시드 문서가 포함되어 있어 바로 작동합니다.

서버 단독 테스트(UI 없이)

MCP Inspector는 서버가 단독으로 작동함을 입증하는 가장 빠른 방법입니다:

npx @modelcontextprotocol/inspector python server/servicenow_server.py

서버를 Claude Desktop(claude_desktop_config.json)에 추가할 수도 있습니다:

{
  "mcpServers": {
    "servicenow": {
      "command": "python",
      "args": ["/absolute/path/to/server/servicenow_server.py"]
    }
  }
}

프로젝트 구조

servicenow-mcp-demo/
├── server/servicenow_server.py   # FastMCP server: 6 tools + 1 resource, mock/live backends
├── client/app.py                 # Streamlit web app: MCP client + Claude agent loop
├── requirements.txt
├── .env.example
├── PROJECT_PLAN.md               # Phase-by-phase build plan and status
└── DEMO_SCRIPT.md                # 5-minute recorded-demo script

시연된 MCP 개념

  • 서버 — FastMCP로 구축: 타입이 지정된 매개변수와 docstring 기반 스키마를 가진 도구

  • 리소스(servicenow://reference/priority-matrix) — 도구와 구별되는 읽기 전용 컨텍스트

  • stdio 전송 — 클라이언트가 서버 하위 프로세스를 실행하고 JSON-RPC로 통신

  • 기능 발견 — 클라이언트는 도구를 하드코딩하지 않고 tools/list를 호출

  • 에이전트 루프 — 최종 텍스트 답변까지 Claude와 다중 라운드 도구 사용

  • 관심사 분리 — 동일한 서버가 이 웹 클라이언트, Claude Desktop 또는 MCP Inspector에서 변경 없이 작동

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI assistants and development tools to interact with ServiceNow instances, providing comprehensive API coverage for incident management, change management, CMDB, and other ServiceNow modules.
    3
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    A local gateway that exposes ServiceNow REST APIs as MCP tools, enabling natural language interaction with ServiceNow incidents, changes, CMDB, and scripts via Claude and other MCP clients.

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/darrylsarkisian-debug/servicenow-mcp-demo'

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