The ServiceNow MCP server acts as a bridge between Claude and ServiceNow instances, allowing Claude to retrieve data and perform actions in ServiceNow through the Model Completion Protocol (MCP). It enables seamless integration with ServiceNow for tasks ranging from incident management to catalog optimization.
Clone the repository and navigate to it:
git clone https://github.com/echelon-ai-labs/servicenow-mcp.git
cd servicenow-mcp
Create a virtual environment and install the package:
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install -e .
Create a .env file with your ServiceNow credentials:
SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com
SERVICENOW_USERNAME=your-username
SERVICENOW_PASSWORD=your-password
SERVICENOW_AUTH_TYPE=basic  # or oauth, api_key
To start the MCP server:
python -m servicenow_mcp.cli
Or with environment variables:
SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com SERVICENOW_USERNAME=your-username SERVICENOW_PASSWORD=your-password SERVICENOW_AUTH_TYPE=basic python -m servicenow_mcp.cli
The ServiceNow MCP server can also run as a web server using Server-Sent Events for communication.
servicenow-mcp-sse --instance-url=https://your-instance.service-now.com --username=your-username --password=your-password
By default, the server will listen on 0.0.0.0:8080. You can customize the host and port:
servicenow-mcp-sse --host=127.0.0.1 --port=8000
The server supports loading subsets of tools called "packages" controlled via the MCP_TOOL_PACKAGE environment variable.
service_desk: Tools for incident handling and basic user/knowledge lookupcatalog_builder: Tools for managing service catalog items, categories, and variableschange_coordinator: Tools for managing change requests, including tasks and approvalsknowledge_author: Tools for managing knowledge bases, categories, and articlesplatform_developer: Tools for server-side scripting and workflow developmentsystem_administrator: Tools for user/group management and viewing system logsagile_management: Tools for managing user stories, epics, scrum tasks, and projectsfull: Includes all available tools (default)none: Includes no tools (except list_tool_packages)export MCP_TOOL_PACKAGE=catalog_builder
SERVICENOW_AUTH_TYPE=basic
SERVICENOW_USERNAME=your-username
SERVICENOW_PASSWORD=your-password
SERVICENOW_AUTH_TYPE=oauth
SERVICENOW_CLIENT_ID=your-client-id
SERVICENOW_CLIENT_SECRET=your-client-secret
SERVICENOW_TOKEN_URL=https://your-instance.service-now.com/oauth_token.do
SERVICENOW_AUTH_TYPE=api_key
SERVICENOW_API_KEY=your-api-key
To configure the ServiceNow MCP server in Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json{
  "mcpServers": {
    "ServiceNow": {
      "command": "/Users/yourusername/dev/servicenow-mcp/.venv/bin/python",
      "args": [
        "-m",
        "servicenow_mcp.cli"
      ],
      "env": {
        "SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
        "SERVICENOW_USERNAME": "your-username",
        "SERVICENOW_PASSWORD": "your-password",
        "SERVICENOW_AUTH_TYPE": "basic"
      }
    }
  }
}
# Install the ServiceNow MCP server with environment variables from .env file
mcp install src/servicenow_mcp/server.py -f .env
To add this MCP server to Claude Code, run this command in your terminal:
claude mcp add-json "ServiceNow" '{"command":"python","args":["-m","servicenow_mcp.cli"],"env":{"SERVICENOW_INSTANCE_URL":"https://your-instance.service-now.com","SERVICENOW_USERNAME":"your-username","SERVICENOW_PASSWORD":"your-password","SERVICENOW_AUTH_TYPE":"basic"}}'See the official Claude Code MCP documentation for more details.
There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.
If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.
To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".
When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:
{
    "mcpServers": {
        "ServiceNow": {
            "command": "python",
            "args": [
                "-m",
                "servicenow_mcp.cli"
            ],
            "env": {
                "SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
                "SERVICENOW_USERNAME": "your-username",
                "SERVICENOW_PASSWORD": "your-password",
                "SERVICENOW_AUTH_TYPE": "basic"
            }
        }
    }
}To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.
Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.
The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.
You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.
To add this MCP server to Claude Desktop:
1. Find your configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.json2. Add this to your configuration file:
{
    "mcpServers": {
        "ServiceNow": {
            "command": "python",
            "args": [
                "-m",
                "servicenow_mcp.cli"
            ],
            "env": {
                "SERVICENOW_INSTANCE_URL": "https://your-instance.service-now.com",
                "SERVICENOW_USERNAME": "your-username",
                "SERVICENOW_PASSWORD": "your-password",
                "SERVICENOW_AUTH_TYPE": "basic"
            }
        }
    }
}3. Restart Claude Desktop for the changes to take effect