Skip to main content
Glama
darrylsarkisian-debug

ServiceNow MCP Demo — Incident Assistant

Демо MCP ServiceNow — Ассистент по инцидентам

Сквозная демонстрация Model Context Protocol, которая подключает Claude к ServiceNow Incident Management. Создана, чтобы показать основы MCP (серверы, клиенты, инструменты, ресурсы, stdio-транспорт, циклы агента) в применении к реальному рабочему процессу ITSM.

Архитектура

┌─────────────────────────────┐        ┌───────────────────────────────┐        ┌────────────────┐
│  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. Веб-клиент отправляет ваше сообщение Claude вместе со схемами инструментов, которые он обнаружил у MCP-сервера при запуске (tools/list).

  2. Claude решает вызвать create_incident с выведенными срочностью, влиянием и категорией.

  3. Клиент пересылает вызов через MCP (tools/call); сервер обращается к ServiceNow Table API (или к имитации в памяти).

  4. Результат возвращается; Claude подтверждает номер инцидента; интерфейс отображает карточку инцидента.

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 с рабочей заметкой, что техник уже в пути».

  • «Есть статьи базы знаний о ноутбуке, который не включается?»

  • «Это помогло — закрой INC0010001, решено окончательно, заменили зарядное устройство».

Режим реального ServiceNow

  1. Запросите бесплатный Personal Developer Instance (PDI) на https://developer.servicenow.com (занимает ~2 минуты).

  2. В .env установите SERVICENOW_MODE=live и заполните SERVICENOW_INSTANCE, SERVICENOW_USER, SERVICENOW_PASSWORD.

  3. Перезапустите приложение. Созданные инциденты появятся в вашем PDI в разделе Incident > All — отлично подходит для показа тикета в реальном интерфейсе ServiceNow во время демо.

PDI переходят в спящий режим после бездействия. Разбудите свой ~15 минут до собеседования и держите режим mock как запасной вариант.

search_knowledge_articles напрямую запрашивает таблицу kb_knowledge в PDI — перед демонстрацией в живом режиме добавьте туда 2–3 опубликованные статьи базы знаний с заголовками, соответствующими вашему сценарию демо (например, «Ноутбук не включается»), иначе живой поиск вернёт пустой результат. В режиме mock уже есть 3 статьи, так что он работает сразу.

Тестирование сервера отдельно (без интерфейса)

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

ActivitySlowing
ResponsivenessNo issues

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
    D
    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.
    -