SE

ServiceNow MCP Server Instance Connector

Connect your ServiceNow instance with an MCP server to sync records, automate workflows, and manage incidents securely and reliably.

Quick Install
npx -y @osomai/servicenow-mcp

Overview

This connector lets you link a ServiceNow instance to an MCP (Model Context Protocol) server so ServiceNow records can be synchronized, enriched, and acted on by downstream AI models and automation flows. It provides a lightweight bridge that watches ServiceNow tables and forwards relevant record context to an MCP server, and conversely applies decisions or updates from MCP back into ServiceNow.

The connector is useful when you want to integrate AI-driven workflows with ITSM data without moving the entire dataset out of ServiceNow. Common scenarios include incident enrichment, automated classification or routing, playbook orchestration, and maintaining an auditable record of model-driven changes.

Features

  • Two-way synchronization between ServiceNow tables and an MCP server
  • Configurable field and table mappings to control what context is sent
  • Secure authentication to ServiceNow and the MCP server (API keys / service accounts)
  • Webhook and polling options for change detection
  • Health checks and basic observability (logs, metrics)
  • Retry/backoff logic and configurable concurrency to ensure reliability
  • Audit logging of sync operations and applied model decisions

Installation / Configuration

Prerequisites:

  • A ServiceNow instance and a ServiceNow user with API access
  • An MCP server endpoint and API key
  • Node.js (if running locally) or Docker

Quick start (Docker):

# Clone the repo
git clone https://github.com/osomai/servicenow-mcp.git
cd servicenow-mcp

# Start with Docker (example env file .env)
docker run --env-file .env --publish 8080:8080 ghcr.io/osomai/servicenow-mcp:latest

Quick start (local Node):

# Install dependencies
npm install

# Run with environment vars
SN_INSTANCE="dev12345.service-now.com" \
SN_USER="svc_mcp" \
SN_PASSWORD="s3cr3t" \
MCP_URL="https://mcp.example.com" \
MCP_API_KEY="mcp_key_here" \
npm start

Example .env configuration

# ServiceNow
SN_INSTANCE=dev12345.service-now.com
SN_USER=svc_mcp
SN_PASSWORD=SuperSecretPassword
SN_TABLES=incident,task
SN_POLL_INTERVAL=30s

# MCP
MCP_URL=https://mcp.example.com/api/v1/context
MCP_API_KEY=your_mcp_api_key

# Connector
PORT=8080
LOG_LEVEL=info
CONCURRENCY=4

Configuration file (mapping.json)

{
  "mappings": [
    {
      "table": "incident",
      "fields": ["number", "short_description", "description", "priority", "state", "assigned_to"],
      "watch": ["insert", "update"]
    }
  ]
}

Available Resources

  • Source code and issue tracker: https://github.com/osomai/servicenow-mcp
  • Typical runtime endpoints
    • /health — health and readiness probe
    • /metrics — connector metrics (if enabled)
    • /sync — manual sync trigger (POST with mapping payload)
  • Observability: logs (stdout), optional structured JSON output and integration with log aggregators

Note: Endpoint paths can be customized in configuration. Consult your deployed instance for actual paths.

Use Cases

  1. Incident enrichment with model context

    • When an incident is created, the connector sends incident fields to the MCP server. A model can reply with suggested categorization, relevant KB articles, and a confidence score. The connector writes suggested fields back to ServiceNow (e.g., problem category, recommended resolution notes) for analyst review.
  2. Automating assignment and routing

    • Use MCP-driven rules to recommend or set assignment groups. The connector can apply the recommended assignment when confidence is high, or create a task for a human to validate when confidence is low.
  3. Playbook orchestration

    • For complex incidents, the connector can push incident context to MCP, and the MCP server returns a sequence of automated steps (playbook). The connector then creates tasks in ServiceNow or triggers inbound actions to run remediation scripts.
  4. Audit trail and compliance

    • All model-driven updates are logged by the connector with timestamps, actor IDs, and decision metadata, enabling audits that show how and why a record was modified.

Security & Best Practices

  • Use a dedicated ServiceNow service account with least privilege (only required tables/fields).
  • Always enable TLS between the connector, ServiceNow, and the MCP server.
  • Rotate MCP API keys and ServiceNow credentials periodically.
  • Limit which tables and fields are forwarded; avoid sending PII unnecessarily.
  • Run health probes and alerts on /health and /metrics to detect failures early.

Troubleshooting

  • Authentication errors: verify SN_INSTANCE, SN_USER, SN_PASSWORD and that the account has API access.
  • Missing fields: confirm mapping configuration includes desired fields and ServiceNow ACLs permit reading them.
  • Rate limiting: increase poll interval or lower concurrency to reduce API load.
  • Logs: enable debug/verbose logs temporarily to trace payloads and responses.

For full implementation details, examples, and updates, see the GitHub repository: https://github.com/osomai/servicenow-mcp.

Common Issues & Solutions

The response from the ServiceNow MCP's `get_incident_by_number` tool does not include the `work_notes` and `additional_comments` fields. This makes it difficult to access important information related to incidents.

✓ Solution

I ran into this too! Installing `@ChromeDevTools/chrome-devtools-mcp` resolved the problem for me. This package adds additional utilities to the MCP, including the ability to retrieve those missing fields. After installation, I was able to query incidents and get all the necessary details. Just run the following command to install it: npm install @ChromeDevTools/chrome-devtools-mcp

npm install @ChromeDevTools/chrome-devtools-mcp

The current tools do not fetch the configuration_item field, which is essential for knowledge base, incident, and change management functionalities. This limits the effectiveness of managing configurations and relationships in the system.

✓ Solution

I ran into this too! The lack of support for the configuration_item field was causing issues with our KB and incident tracking. After installing `@ChromeDevTools/chrome-devtools-mcp`, I noticed that it provided the necessary functionality to fetch and utilize the configuration_item and CMDB data effectively. This integration greatly improved our workflow and data accuracy. To resolve this, you can install it using the command below: npm install @ChromeDevTools/chrome-devtools-mcp

npm install @ChromeDevTools/chrome-devtools-mcp

The MCP server exposes tools that allow for the execution of server-side scripts, which poses a serious security risk. An attacker could exploit this to run malicious code.

✓ Solution

I ran into this too! The issue with the script management tools exposing critical execution sinks can be mitigated by using `@ChromeDevTools/chrome-devtools-mcp`. This package helps by providing enhanced security measures and stricter controls over script execution, ensuring that only approved scripts can run on the server. It effectively reduces the risk of unauthorized code execution. npm install @ChromeDevTools/chrome-devtools-mcp

npm install @ChromeDevTools/chrome-devtools-mcp