servicenow-mcp
servicenow-mcp
Ein MCP-Server zur Verwaltung von ServiceNow-Vorfällen über die Table-API. Stellt Werkzeuge zum Erstellen, Lesen, Aktualisieren, Durchsuchen, Kommentieren und Lösen von Vorfällen bereit.
Einrichtung
Abhängigkeiten installieren:
uv syncKopieren Sie
.env.examplein.envund füllen Sie Ihre Anmeldedaten aus:cp .env.example .envSERVICENOW_INSTANCE: nur der Instanzname (z. B.dev12345fürdev12345.service-now.com)SERVICENOW_USERNAME/SERVICENOW_PASSWORD: Basisauthentifizierungs-Anmeldedaten für einen Benutzer mit Zugriff auf die Tabelleincident(Lesen/Schreiben über die Table-API)
Führen Sie den Server direkt aus, um zu überprüfen, ob er startet:
uv run servicenow-mcp
Related MCP server: servicenow-api
Verwendung mit Claude Desktop / Claude Code
Es gibt zwei Möglichkeiten, eine Verbindung herzustellen, je nachdem, ob alle Benutzer des Servers sich ein ServiceNow-Dienstkonto teilen oder jede Person sich selbst authentifiziert. Siehe Authentifizierung unten für das vollständige Bild.
Option A — stdio, gemeinsames Dienstkonto
Der Client startet den Server selbst als Unterprozess; jeder Werkzeugaufruf verwendet die
SERVICENOW_USERNAME / SERVICENOW_PASSWORD, die über env übergeben werden.
{
"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"
}
}
}
}Option B — HTTP, clientseitige Anmeldedaten
Starten Sie den Server einmal als langlebigen HTTP-Prozess (er benötigt nur SERVICENOW_INSTANCE,
plus SERVICENOW_USERNAME/PASSWORD als Fallback für Anfragen ohne Auth-Header):
uv run servicenow-mcp --transport streamable-http --host 127.0.0.1 --port 8003Dann verweisen Sie .mcp.json darauf und senden Sie Ihren eigenen ServiceNow-Login als HTTP-Basic-Auth-
Header – das macht die Verbindung „clientseitig": Die Anmeldedaten befinden sich in Ihrer
Client-Konfiguration, nicht auf dem Server:
{
"mcpServers": {
"servicenow": {
"type": "http",
"url": "http://127.0.0.1:8003/mcp",
"headers": {
"Authorization": "Basic <base64 of your-username:your-password>"
}
}
}
}Generieren Sie den Base64-Wert von einem Terminal aus (beachten Sie das führende Leerzeichen, das -n bei echo
vermeidet):
echo -n "your-username:your-password" | base64.mcp.json wird nicht von .gitignore abgedeckt, wie es .env ist – committen Sie keine echten Anmeldedaten
darin, wenn dieses Verzeichnis jemals ein gemeinsames/Git-Repository wird.
Werkzeuge
create_incident— einen neuen Vorfall erstellenget_incident— nach Nummer (z. B.INC0010023) oder sys_id abrufenupdate_incident— beliebige Felder aktualisierensearch_incidents— mit einer ServiceNow-codierten Abfrage (sysparm_query) suchenadd_comment— einen für den Kunden sichtbaren Kommentar oder eine interne Arbeitsnotiz hinzufügenresolve_incident— Status auf Gelöst setzen mit Abschlussnotizen/-code
Authentifizierung
Die Authentifizierung erfolgt per Basisauthentifizierung (Benutzername/Passwort). Woher diese Anmeldedaten stammen, hängt vom Transport ab:
stdio: verwendet immer die gemeinsamen
SERVICENOW_USERNAME/SERVICENOW_PASSWORDaus.env.HTTP (
sse/streamable-http): jede Anfrage kann sich als eigener ServiceNow- Benutzer authentifizieren, indem ein standardmäßiger HTTP-Basic-Auth-Header gesendet wird:Authorization: Basic base64(username:password)SERVICENOW_INSTANCEbleibt serverseitig (es ist eine Instanz für alle Clients), aber die Benutzername/Passwort sind clientseitig – daher spiegelnsearch_incidents-Ergebnisse,caller_id-Auflösung, usw. die ServiceNow-Berechtigungen dieses einzelnen Benutzers wider, anstatt eines gemeinsamen Dienstkontos. Wenn eine Anfrage keinenAuthorization-Header hat, wird auf die gemeinsamenSERVICENOW_USERNAME/SERVICENOW_PASSWORDaus.envzurückgegriffen.
Wenn Sie später OAuth 2.0 benötigen, tauschen Sie die requests.Session.auth-Einrichtung in
src/servicenow_mcp/client.py gegen einen tokenbasierten Ablauf aus – der Rest des Clients ist
authentifizierungsunabhängig.
Hinweise
Das Feld
stateder Vorfalltabelle ist numerisch (z. B.6= Gelöst,7= Geschlossen); Werte können abweichen, wenn Ihre Instanz Vorfallstatus anpasst.
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
- AlicenseAqualityAmaintenanceAn MCP server that enables AI assistants to interact with ServiceNow instances, allowing script execution, data querying, ATF tests, and log tailing through natural language commands.8736413MIT
- Alicense-qualityBmaintenanceMCP server enabling interaction with ServiceNow API for managing incidents, CMDB, change management, and other ServiceNow operations via natural language.19MIT
- 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-qualityDmaintenanceMCP server to interact with ServiceNow instances, enabling ITSM, CMDB, workflow, and knowledge search operations.MIT
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.
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/siddhardhan/servicenow-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server