servicenow-mcp
servicenow-mcp
Небольшой MCP сервер, который позволяет ИИ-агентам создавать, искать и
обновлять инциденты ServiceNow через Table API. Построен с использованием официального Python
пакета mcp (декораторы в стиле FastMCP), httpx и python-dotenv. Работает через stdio.
Всё находится в одном файле: server.py.
Настройка
Требуется Python 3.12+ и uv.
uv syncСоздайте .env рядом с server.py (он игнорируется git) с учётными данными для базовой аутентификации для
вашего экземпляра — подойдёт Personal Developer Instance:
SNOW_INSTANCE_URL=https://devXXXXXX.service-now.com
SNOW_USERNAME=admin
SNOW_PASSWORD=your-password
# optional, default 15
SNOW_TIMEOUT_SECONDS=15Запустите сервер (он общается по MCP через stdin/stdout, поэтому ничего не видно — MCP клиент должен его запускать):
uv run server.pyРегистрация в MCP клиенте
Укажите клиенту на uv с директорией проекта, чтобы .venv и .env были найдены:
{
"mcpServers": {
"servicenow": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/servicenow-mcp", "run", "server.py"]
}
}
}Для Claude Code: claude mcp add servicenow -- uv --directory /absolute/path/to/servicenow-mcp run server.py.
Переменные окружения, уже установленные в окружении клиента, имеют приоритет над .env.
Related MCP server: sn-mcp-bridge
Инструменты
Инструмент | Параметры | Что делает | Возвращает |
|
| Создаёт новый инцидент. |
|
|
| Выводит инциденты, начиная с самых новых. Если |
|
|
| Ищет инцидент по номеру, добавляет рабочую заметку и/или устанавливает состояние. Требуется хотя бы одно из полей |
|
Все инструменты возвращают читаемую ошибку инструмента (отображается агенту как isError) вместо
трассировки стека, например:
Authentication failed (401): check SNOW_USERNAME and SNOW_PASSWORD. ServiceNow said: User is not authenticated …Could not connect to https://…: [Errno 8] nodename nor servname provided … Check SNOW_INSTANCE_URL and your network connection.Timed out after 15s talking to https://… The instance may be hibernating (PDI) or unreachable.Incident 'INC9999999' was not found on https://….Forbidden (403): the user lacks permission … or the update was rejected by a business rule. ServiceNow said: …(например, при разрешении инцидента без полей разрешения).
Заметки по дизайну
ServiceNowClientоборачивает одинhttpx.AsyncClient(базовая аутентификация, JSON заголовки, таймаут) и предоставляетcreate_record / query_records / get_record_by_number / update_record. Все ошибки преобразуются вServiceNowErrorс понятным сообщением.Инструменты получают клиента через
get_client(); вызовитеset_client(fake)в тестах, чтобы подменить на мок без обращения к сети.Записи запрашиваются с
sysparm_display_value=all, поэтому метки состояния/срочности берутся из самого экземпляра, а не из жёстко заданной карты (псевдонимы с понятными именами используются только для ввода).mcp2.x переименовалFastMCPвMCPServer;server.pyимпортирует то, что существует, поэтому работает как на 1.x, так и на 2.x.
Дымовой тест
Запустите на работающем экземпляре (создаст один инцидент):
uv run python -c "
import asyncio, server
async def main():
c = await server.create_incident('MCP server smoke test', 'created by smoke test')
print(c)
print(await server.query_incidents(query_text='MCP server smoke test'))
print(await server.update_incident(c['number'], work_notes='hello from MCP'))
asyncio.run(main())
"Maintenance
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
- FlicenseAqualityCmaintenanceA production-ready MCP server that turns any MCP-compatible AI assistant into an AI-powered ServiceNow Incident Management Assistant, exposing incidents, users, CMDB records, and knowledge articles through validated tools.12
- Alicense-qualityBmaintenanceA lightweight MCP server that gives AI coding assistants full development capability on ServiceNow through the Table API, enabling CRUD and script execution without local installation.17MIT
- Flicense-qualityBmaintenanceMCP server that enables LLMs to interact with ServiceNow instances for managing incidents, users, stories, workflows, knowledge base articles, and script includes via the FastMCP framework.
- AlicenseAqualityCmaintenanceAn MCP server for interacting with a ServiceNow instance via its Table API, enabling CRUD operations on incident, request, and requested item tables, as well as generic operations on any table by name.22MIT
Related MCP Connectors
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/matheuscalma/servicenow-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server