← Back to directory
S

ServiceNow MCP Server

Community
Connect Claude to ServiceNow instances via MCP
Category
Other #158 of 230
Stars
★ 305 Popular
Transport
stdio (local process) · SSE
Runtime
Python 3.11+
Credentials
API key / credential required
License
MIT
Last commit
⚠
Tools
76
49FMRS · D

A broad, community-maintained MCP server for ServiceNow covering incident, change, catalog, knowledge base, agile, workflow, and user management use cases, with role-based tool packaging to limit exposed tools. Requires a live ServiceNow instance and credentials, defaults to broad write permissions, and should be scoped down via tool packages and credentials handled carefully.

Strongest · Documentation 16/20 Weakest · Security and permissions 4/20

Reliability
7/20
Security and permissions
4/20
Maintenance
9/20
Documentation
16/20
Setup experience
13/20
Why each score
Reliability 7/20
This review is based solely on the README text; the server manifest is marked 'not cached' and no source code, CI workflow, or test files were supplied as evidence, so the MCP init/tool-list handshake and the accuracy of the ~70 declared tools cannot be verified against real behavior. The README's own Troubleshooting section actually reveals a history of genuine interface bugs (Pydantic model objects passed where dicts were expected, swapped argument order for auth_manager/server_config), indicating the implementation has had real instability; the claim that these are 'now handled automatically' is asserted, not evidenced by any changelog or regression test. Per the static calibration rule, reliability is capped at 12 without verifiable CI+test evidence, and given the near-total absence of evidence plus a documented history of defects, a score of 7 is assigned.
Security and permissions 4/20
Red line triggered: the tool set includes multiple irreversible or deploy-type operations (delete_workflow, delete_script_include, delete_story_dependency, remove_group_members, commit_changeset/publish_changeset to production, approve_change/reject_change) and the README does not mention any confirmation step, dry-run mode, approval gate, or least-privilege scoping for these — they appear to execute directly against a live ServiceNow instance when invoked. Credentials are configured in plaintext via a .env file (Basic/OAuth/API Key) with no guidance on secret storage, scope limitation, or least-privilege practice, and there is no discussion of outbound network boundaries or data-exfiltration safeguards. Per the rubric, irreversible delete/deploy defaults without confirmation constitute a red line, so security is capped at 0-4.
Maintenance 9/20
The repository is MIT-licensed and not archived, with 32 open issues indicating ongoing usage and feedback, but no commit history, release cadence, changelog, or dependency-update policy was available for this review, and the README does not disclose versioning practices, a security-response channel, or maintainer identity. The contribution guide is a generic fork-and-PR flow without further governance detail. Given the lack of verifiable maintenance-activity evidence, only a below-average score is warranted based on the 'not archived + licensed + some responsiveness signal' baseline.
Documentation 16/20
Documentation is fairly extensive: it covers installation, three authentication method configurations, both stdio and SSE run modes, the MCP_TOOL_PACKAGE tool-packaging mechanism, a list of nearly 70 tools, many natural-language usage examples, a troubleshooting section, and links to topic-specific docs (catalog.md, change_management.md, etc.) plus example scripts. Points are deducted because individual tools lack parameter-level documentation (only a name and one-line description, no types/required fields/return shape), and there is no disclosure of rate limits, cost, data retention, or permission boundaries, so it falls short of full marks.
Setup experience 13/20
The setup path is clear: clone the repo, create a virtualenv, pip install -e ., write a .env credentials file, register via CLI or mcp install, with a concrete Claude Desktop claude_desktop_config.json example and SSE-mode host/port customization instructions — the steps are explicit and code examples are provided. However, per the static-review rule, setup cannot exceed 15 without CI workflows and real tests proving these steps are reproducible; the process also depends on the user manually supplying real credentials and adjusting OS-specific paths, introducing some manual/environment-dependent fragility, so it is scored below that ceiling.

Static review · not runListed 2026-08-26

Read the FMRS scoring method →

Fit and risk

What it can accessUses the networkChanges third-party account data

Best for

  • IT service desk staff and administrators with access to a ServiceNow instance
  • ServiceNow admins/developers who want conversational control over change management, catalog building, or knowledge base work
  • Teams wanting to automate agile project tracking (stories/epics/tasks) inside ServiceNow via Claude

Not for

  • Users without a ServiceNow instance or valid credentials
  • Scenarios requiring strictly read-only access — the default 'full' tool package grants full create/update/delete permissions
  • Enterprises needing official ServiceNow vendor support or SLAs (this is a third-party community project, not an official ServiceNow product)

Required permissions

  • ServiceNow instance URL and an account with read/write access to relevant tables (incident, change_request, sc_cat_item, kb_knowledge, sys_user, sys_user_group, sys_script_include, workflow, sys_update_set, etc.)
  • Basic auth username/password, OR OAuth client ID/secret, OR an API key (one authentication method)
  • Local filesystem access to read the .env file storing credentials

Risks and side effects

  • The default 'full' tool package grants create, update, and even delete access across incidents, changes, catalog, knowledge base, and users/groups — misuse could modify or destroy production data
  • Credentials are stored in plaintext in the .env file or Claude Desktop config, creating exposure risk
  • Tools like approve_change, reject_change, publish_changeset, and publish_article directly affect live ServiceNow processes and visibility, and should be granted carefully
  • The SSE server listens on 0.0.0.0 by default, which could allow unauthorized access without proper network isolation

Setup

Before you start

Runtime:Python 3.11+

SERVICENOW_INSTANCE_URL required Your ServiceNow instance URL, e.g. https://your-instance.service-now.com, provided by your administrator.
SERVICENOW_USERNAME optionalsecret ServiceNow username for basic authentication.
SERVICENOW_PASSWORD optionalsecret ServiceNow password for basic authentication.
SERVICENOW_CLIENT_SECRET optionalsecret OAuth client secret for OAuth authentication.
SERVICENOW_API_KEY optionalsecret API key used when SERVICENOW_AUTH_TYPE=api_key.
Other optional settings (4)
SERVICENOW_AUTH_TYPE optional Authentication method: basic, oauth, or api_key.
SERVICENOW_CLIENT_ID optional OAuth client ID, created via OAuth application registration on your ServiceNow instance.
SERVICENOW_TOKEN_URL optional OAuth token endpoint, typically https://your-instance.service-now.com/oauth_token.do.
MCP_TOOL_PACKAGE optional Optional; name of the tool package to load (e.g. service_desk, catalog_builder). Defaults to full.
  1. Clone the repository: git clone https://github.com/echelon-ai-labs/servicenow-mcp.git and cd into it.
  2. Create a virtual environment and install: python -m venv .venv, activate it, then pip install -e . (requires Python 3.11+).
  3. Create a .env file with SERVICENOW_INSTANCE_URL, SERVICENOW_USERNAME, SERVICENOW_PASSWORD, and SERVICENOW_AUTH_TYPE (basic/oauth/api_key — OAuth needs CLIENT_ID/CLIENT_SECRET/TOKEN_URL, API Key needs SERVICENOW_API_KEY).
  4. Run in stdio mode with python -m servicenow_mcp.cli, or start the SSE web server with servicenow-mcp-sse (default 0.0.0.0:8080).
  5. For Claude Desktop, add a server entry to claude_desktop_config.json with the command, args, and env fields as shown, then restart Claude Desktop.
  6. Optionally set MCP_TOOL_PACKAGE and edit config/tool_packages.yaml to limit which tools load for a given role.
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"}}}}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "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"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add ServiceNow -e SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com -e SERVICENOW_USERNAME=your-username -e SERVICENOW_PASSWORD=your-password -e SERVICENOW_AUTH_TYPE=basic -- /Users/yourusername/dev/servicenow-mcp/.venv/bin/python -m servicenow_mcp.cli

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

Start the server with python -m servicenow_mcp.cli; tools such as list_incidents should appear in your client's tool list, and asking "List all high priority incidents" returning real data from the instance confirms the connection works.

Troubleshooting

  1. 'argument after ** must be a mapping, not CreateChangeRequestParams': pass a dictionary, not a Pydantic model object, to create_change_request
  2. 'Missing required parameter type': include both short_description and type when creating a change request
  3. 'Invalid value for parameter type': type must be one of normal, standard, or emergency
  4. 'Cannot find get_headers method in either auth_manager or server_config': verify auth_manager and server_config are passed in the correct order
  5. Confirm SERVICENOW_INSTANCE_URL and the credential fields in .env match the selected SERVICENOW_AUTH_TYPE
  6. If expected tools are missing, check whether MCP_TOOL_PACKAGE is set to a valid package name defined in config/tool_packages.yaml

Things to try

Once connected, you can ask your AI assistant things like:

  • List all high priority incidents assigned to the Network team.
  • Create a change request for server maintenance to apply security patches tomorrow night.
  • Show me all items in the service catalog.
  • Write an article about VPN setup in the Network Troubleshooting knowledge base and publish it.

Tools 76

create_incident writes
Create a new incident record in ServiceNow
update_incident writes
Update fields on an existing incident
add_comment writes
Add a comment to an incident
resolve_incident writes
Mark an incident as resolved
list_incidents read-only
List incidents with optional filters
list_catalog_items read-only
List items in the service catalog
get_catalog_item read-only
Get details of a specific catalog item
list_catalog_categories read-only
List service catalog categories
Show 68 more tools
create_catalog_category writes
Create a new service catalog category
update_catalog_category writes
Update an existing service catalog category
move_catalog_items writes
Move catalog items between categories
create_catalog_item_variable writes
Create a form field (variable) for a catalog item
list_catalog_item_variables read-only
List all variables for a catalog item
update_catalog_item_variable writes
Update an existing catalog item variable
list_catalogs read-only
List service catalogs
get_optimization_recommendations read-only
Get recommendations for optimizing the service catalog
update_catalog_item writes
Update a service catalog item
create_change_request writes
Create a new change request
update_change_request writes
Update an existing change request
list_change_requests read-only
List change requests with filtering options
get_change_request_details read-only
Get detailed information about a specific change request
add_change_task writes
Add a task to a change request
submit_change_for_approval writes
Submit a change request for approval
approve_change writes
Approve a change request
reject_change writes
Reject a change request
create_story writes
Create a new user story
update_story writes
Update an existing user story
list_stories read-only
List user stories with filtering options
create_story_dependency writes
Create a dependency between two stories
delete_story_dependency destructive
Delete a dependency between stories
create_epic writes
Create a new epic
update_epic writes
Update an existing epic
list_epics read-only
List epics with filtering options
create_scrum_task writes
Create a new scrum task
update_scrum_task writes
Update an existing scrum task
list_scrum_tasks read-only
List scrum tasks with filtering options
create_project writes
Create a new project
update_project writes
Update an existing project
list_projects read-only
List projects with filtering options
list_workflows read-only
List workflows
get_workflow read-only
Get a specific workflow
create_workflow writes
Create a new workflow
update_workflow writes
Update an existing workflow
delete_workflow destructive
Delete a workflow
list_script_includes read-only
List script includes
get_script_include read-only
Get a specific script include
create_script_include writes
Create a new script include
update_script_include writes
Update an existing script include
delete_script_include destructive
Delete a script include
list_changesets read-only
List changesets with filtering options
get_changeset_details read-only
Get detailed information about a specific changeset
create_changeset writes
Create a new changeset
update_changeset writes
Update an existing changeset
commit_changeset writes
Commit a changeset
publish_changeset writes
Publish a changeset to production
add_file_to_changeset writes
Add a file to a changeset
create_knowledge_base writes
Create a new knowledge base
list_knowledge_bases read-only
List knowledge bases with filtering options
create_category writes
Create a new category in a knowledge base
create_article writes
Create a new knowledge article
update_article writes
Update an existing knowledge article
publish_article writes
Publish a knowledge article
list_articles read-only
List knowledge articles with filtering options
get_article read-only
Get a specific knowledge article by ID
create_user writes
Create a new user
update_user writes
Update an existing user
get_user read-only
Get a specific user by ID, username, or email
list_users read-only
List users with filtering options
create_group writes
Create a new group
update_group writes
Update an existing group
add_group_members writes
Add members to a group
remove_group_members writes
Remove members from a group
list_groups read-only
List groups with filtering options
create_ui_policy writes
Create a UI policy, typically for a catalog item
create_ui_policy_action writes
Create an action tied to a UI policy to control variable state (visibility, mandatory, etc.)
list_tool_packages read-only
List available tool package names and show the currently loaded package

Use cases

Have Claude create, update, comment on, and resolve ServiceNow incidents
Query and manage service catalog items, categories, and form variables through natural language
Create and progress change requests through the approval workflow
Manage agile artifacts — user stories, epics, scrum tasks, and projects
Create, publish, and maintain knowledge base articles
Manage ServiceNow users, groups, and group membership
View, create, and publish changesets and script includes for platform development

Supported clients

Claude Desktop

Listed from the project's documentation, not tested by this site.

Overview

ServiceNow MCP Server is an open-source Model Context Protocol server implementation written in Python that lets Claude connect to ServiceNow instances, query records, and perform actions through the ServiceNow API. It supports Basic, OAuth, and API Key authentication, and ships with tools spanning incident management, the service catalog, change management, agile management (stories, epics, scrum tasks, projects), workflow management, script includes, changesets, knowledge base management, user/group management, and UI policies. A MCP_TOOL_PACKAGE environment variable lets you load role-based subsets of tools (e.g. service desk, catalog builder, change coordinator) to control how many tools are exposed to the model. It runs in both stdio mode and as an SSE-based web server.

Similar servers

BioMCP 75 · B

One binary. One grammar. Evidence from the biomedical sources you already trust.

★ 659 · Tools 11 Compare with this →

Source revision 06250607bdfc Data synced 2026-10-19 Read the FMRS scoring method