Skip to main content
Glama
siddhardhan

servicenow-mcp

by siddhardhan

servicenow-mcp

MCP-сервер для управления инцидентами ServiceNow через Table API. Предоставляет инструменты для создания, чтения, обновления, поиска, комментирования и разрешения инцидентов.

Настройка

  1. Установите зависимости:

    uv sync
  2. Скопируйте .env.example в .env и заполните свои учетные данные:

    cp .env.example .env
    • SERVICENOW_INSTANCE: только имя экземпляра (например, dev12345 для dev12345.service-now.com)

    • SERVICENOW_USERNAME / SERVICENOW_PASSWORD: учетные данные базовой аутентификации для пользователя с доступом к таблице incident (чтение/запись через Table API)

  3. Запустите сервер напрямую, чтобы проверить, что он запускается:

    uv run servicenow-mcp

Related MCP server: servicenow-api

Использование с Claude Desktop / Claude Code

Есть два способа подключения, в зависимости от того, хотите ли вы, чтобы все пользователи сервера использовали одну учетную запись ServiceNow, или каждый аутентифицировался самостоятельно. Полное описание см. в разделе Аутентификация ниже.

Вариант A — stdio, общая учетная запись сервиса

Клиент запускает сервер сам как подпроцесс; каждый вызов инструмента использует SERVICENOW_USERNAME / SERVICENOW_PASSWORD, переданные через env.

{
  "mcpServers": {
    "servicenow": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/servicenow-mcp", "run", "servicenow-mcp"],
      "env": {
        "SERVICENOW_INSTANCE": "your-instance",
        "SERVICENOW_USERNAME": "your-username",
        "SERVICENOW_PASSWORD": "your-password"
      }
    }
  }
}

Вариант B — HTTP, учетные данные для каждого клиента

Запустите сервер один раз как долго работающий HTTP-процесс (ему нужен только SERVICENOW_INSTANCE, плюс SERVICENOW_USERNAME/PASSWORD в качестве запасного варианта для запросов без заголовка аутентификации):

uv run servicenow-mcp --transport streamable-http --host 127.0.0.1 --port 8003

Затем укажите .mcp.json на него и отправьте свой логин ServiceNow в качестве заголовка HTTP Basic Auth — именно это делает соединение "на уровне клиента": учетные данные хранятся в вашей конфигурации клиента, а не на сервере:

{
  "mcpServers": {
    "servicenow": {
      "type": "http",
      "url": "http://127.0.0.1:8003/mcp",
      "headers": {
        "Authorization": "Basic <base64 of your-username:your-password>"
      }
    }
  }
}

Сгенерируйте значение base64 из терминала (обратите внимание на начальный пробел, которого избегает -n в echo):

echo -n "your-username:your-password" | base64

.mcp.json не покрывается .gitignore так, как .env — не фиксируйте в нем реальные учетные данные, если этот каталог когда-либо станет общим репозиторием/git.

Инструменты

  • create_incident — создать новый инцидент

  • get_incident — получить по номеру (например, INC0010023) или sys_id

  • update_incident — обновить произвольные поля

  • search_incidents — поиск с закодированным запросом ServiceNow (sysparm_query)

  • add_comment — добавить видимый клиенту комментарий или внутреннюю рабочую заметку

  • resolve_incident — установить состояние "Разрешен" с заметками о закрытии/кодом

Аутентификация

Аутентификация — базовая (имя пользователя/пароль). Откуда берутся эти учетные данные, зависит от транспорта:

  • stdio: всегда использует общие SERVICENOW_USERNAME / SERVICENOW_PASSWORD из .env.

  • HTTP (sse / streamable-http): каждый запрос может аутентифицироваться как свой собственный пользователь ServiceNow, отправляя стандартный заголовок HTTP Basic Auth:

    Authorization: Basic base64(username:password)

    SERVICENOW_INSTANCE остается на стороне сервера (это один экземпляр для всех клиентов), но имя пользователя/пароль являются поклиентскими — поэтому результаты search_incidents, разрешение caller_id и т.д. отражают разрешения этого конкретного пользователя в ServiceNow, а не одной общей учетной записи. Если в запросе нет заголовка Authorization, используется запасной вариант — общие SERVICENOW_USERNAME / SERVICENOW_PASSWORD из .env.

Если вам понадобится OAuth 2.0 позже, замените настройку requests.Session.auth в src/servicenow_mcp/client.py на поток на основе токена — остальная часть клиента не зависит от способа аутентификации.

Примечания

  • Поле state таблицы инцидентов является числовым (например, 6 = Разрешен, 7 = Закрыт); значения могут отличаться, если ваш экземпляр настраивает состояния инцидентов.

Install Server
F
license - not found
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

View all related MCP servers

Related MCP Connectors

  • GibsonAI MCP server: manage your databases with natural language

  • MCP server for generating rough-draft project plans from natural-language prompts.

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

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/siddhardhan/servicenow-mcp'

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