# ServiceNow MCP Server

Подключает ассистента к ServiceNow: запросы к любой таблице, чтение схемы и CMDB, разбор update set. Работает на бесплатном developer instance.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 26
- Автор: jschuller
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/jschuller/mcp-server-servicenow
- Обновлён: 2026-10-22
- HTML: https://affpapa.org/nevibecode/mcp/servicenow-mcp-server

## Что делает

Сервер даёт ассистенту доступ к прикладному слою разработчика ServiceNow: Table API, data dictionary, агрегаты через Stats API, CMDB и update sets. Запускается одной командой `uvx mcp-server-servicenow`, ставится без предварительной установки пакета. Поддерживает транспорт stdio и streamable-http, аутентификацию basic, OAuth и api_key. Заявлена совместимость с релизами ServiceNow начиная с Tokyo.

Для подключения нужны учётные данные отдельного интеграционного пользователя, а не `admin`: новые инстансы отказывают `admin` в REST basic auth. В README описан порядок — создать пользователя с Identity type Machine и ролью Internal Integration User, выдать роли `itil` и `snc_read_only`. Такой набор даёт чтение инцидентов, изменений, проблем, CMDB и агрегатов, но изменить данные не позволит. Для схемы, update sets и записи ролей понадобится больше.

Ещё нужен `uv` в системе, потому что `uvx` берёт сервер оттуда. В Claude есть вариант с плагином: он добавляет четыре скилла как слэш-команды и читает те же переменные `SERVICENOW_*` из окружения, из которого стартовал Claude. Без корректного `SERVICENOW_INSTANCE_URL` и пароля сервер до инстанса не достучится.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `SERVICENOW_INSTANCE_URL`, `SERVICENOW_AUTH_TYPE`, `SERVICENOW_USERNAME`, `SERVICENOW_PASSWORD`, `SERVICENOW_CLIENT_ID`, `SERVICENOW_CLIENT_SECRET`, `SERVICENOW_API_KEY`, `SERVICENOW_API_KEY_HEADER`, `SERVICENOW_TOKEN_URL`, `SERVICENOW_TIMEOUT` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.
- Работает с: ServiceNow

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env SERVICENOW_INSTANCE_URL=<SERVICENOW_INSTANCE_URL> --env SERVICENOW_AUTH_TYPE=<SERVICENOW_AUTH_TYPE> --env SERVICENOW_USERNAME=<SERVICENOW_USERNAME> --env SERVICENOW_PASSWORD=<SERVICENOW_PASSWORD> --env SERVICENOW_CLIENT_ID=<SERVICENOW_CLIENT_ID> --transport stdio servicenow-mcp-server -- uvx mcp-server-servicenow
```
Вместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from mcp-server-servicenow <команда>

### Codex

**Командой платформы**
```bash
codex mcp add servicenow-mcp-server --env SERVICENOW_INSTANCE_URL=<SERVICENOW_INSTANCE_URL> --env SERVICENOW_AUTH_TYPE=<SERVICENOW_AUTH_TYPE> --env SERVICENOW_USERNAME=<SERVICENOW_USERNAME> --env SERVICENOW_PASSWORD=<SERVICENOW_PASSWORD> --env SERVICENOW_CLIENT_ID=<SERVICENOW_CLIENT_ID> -- uvx mcp-server-servicenow
```
Вместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from mcp-server-servicenow <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "servicenow-mcp-server": {
            "command": "uvx",
            "args": [
                "mcp-server-servicenow"
            ],
            "env": {
                "SERVICENOW_INSTANCE_URL": "<SERVICENOW_INSTANCE_URL>",
                "SERVICENOW_AUTH_TYPE": "<SERVICENOW_AUTH_TYPE>",
                "SERVICENOW_USERNAME": "<SERVICENOW_USERNAME>",
                "SERVICENOW_PASSWORD": "<SERVICENOW_PASSWORD>",
                "SERVICENOW_CLIENT_ID": "<SERVICENOW_CLIENT_ID>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from mcp-server-servicenow <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "servicenow-mcp-server": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "mcp-server-servicenow"
            ],
            "env": {
                "SERVICENOW_INSTANCE_URL": "<SERVICENOW_INSTANCE_URL>",
                "SERVICENOW_AUTH_TYPE": "<SERVICENOW_AUTH_TYPE>",
                "SERVICENOW_USERNAME": "<SERVICENOW_USERNAME>",
                "SERVICENOW_PASSWORD": "<SERVICENOW_PASSWORD>",
                "SERVICENOW_CLIENT_ID": "<SERVICENOW_CLIENT_ID>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from mcp-server-servicenow <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e SERVICENOW_INSTANCE_URL=<SERVICENOW_INSTANCE_URL> -e SERVICENOW_AUTH_TYPE=<SERVICENOW_AUTH_TYPE> -e SERVICENOW_USERNAME=<SERVICENOW_USERNAME> -e SERVICENOW_PASSWORD=<SERVICENOW_PASSWORD> -e SERVICENOW_CLIENT_ID=<SERVICENOW_CLIENT_ID> servicenow-mcp-server uvx mcp-server-servicenow
```
Вместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from mcp-server-servicenow <команда>

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
