create_incidentLABSCO SUMMARY
Load the package for the job — a service-desk session does not need the catalog builder's tools.
ServiceNow is large enough that exposing everything is its own problem: clients with tool limits fail to load, and models pick badly from a long list. Setting MCP_TOOL_PACKAGE to a role trims it to what that person actually does, and an invalid name falls back to none rather than silently loading everything. The package definitions are a YAML file you can edit into your own roles.
What it is
A ServiceNow bridge covering records, the service catalog, change management, knowledge and scripting, with tool packages so a client only loads the subset a given role needs.
What you get
- Incidents — create_incident, update_incident, add_comment, resolve_incident and list_incidents
- Service catalog — list_catalog_items, get_catalog_item, list_catalogs, list_catalog_categories, create_catalog_category, update_catalog_category, move_catalog_items, and the catalog item variable tools
- Catalog optimisation — get_optimization_recommendations and update_catalog_item
- Change management — create_change_request, update_change_request and the rest of the change lifecycle including tasks and approvals
- Knowledge, user and group management, workflow development, script includes and changesets
- Tool packages selected with MCP_TOOL_PACKAGE: service_desk, catalog_builder, change_coordinator, knowledge_author, platform_developer, system_administrator, agile_management, full or none
- list_tool_packages, which reports the available packages and which one is loaded — present in every package except none
- Both stdio and an SSE server exposing /sse and /messages/
Requirements
Python 3.11 or higher and a ServiceNow instance you have credentials for. A .env file with SERVICENOW_INSTANCE_URL, SERVICENOW_USERNAME, SERVICENOW_PASSWORD and SERVICENOW_AUTH_TYPE — basic, oauth or api_key. Clone and pip install -e, then run the CLI; the SSE server listens on 0.0.0.0:8080 by default and takes --host and --port.
Setup effort
Build from source — git clone https://github.com/echelon-ai-labs/servicenow-mcp.git
USE CASES
Running a service desk shift
Create and update incidents, comment on them and resolve them, with only those tools loaded.
Building out a catalog item
Create the category, add the item's variables, and move items between categories.
Moving a change request through its lifecycle
Create it, update it, and handle the tasks and approvals attached to it.
Working out which tools you actually have
Ask which packages exist and which one is currently loaded.
76 tools
Listed in project docs. Your client may show a different list.
update_incidentadd_commentresolve_incidentlist_incidentslist_catalog_itemsget_catalog_itemlist_catalog_categoriescreate_catalog_categoryupdate_catalog_categorymove_catalog_itemscreate_catalog_item_variablelist_catalog_item_variablesupdate_catalog_item_variablelist_catalogsget_optimization_recommendationsupdate_catalog_itemcreate_change_requestupdate_change_requestlist_change_requestsget_change_request_detailsadd_change_tasksubmit_change_for_approvalapprove_changereject_changecreate_storyupdate_storylist_storiescreate_story_dependencydelete_story_dependencycreate_epicupdate_epiclist_epicscreate_scrum_taskupdate_scrum_tasklist_scrum_taskscreate_projectupdate_projectlist_projectslist_workflowsget_workflowcreate_workflowupdate_workflowdelete_workflowlist_script_includesget_script_includecreate_script_includeupdate_script_includedelete_script_includelist_changesetsget_changeset_detailscreate_changesetupdate_changesetcommit_changesetpublish_changesetadd_file_to_changesetcreate_knowledge_baselist_knowledge_basescreate_categorycreate_articleupdate_articlepublish_articlelist_articlesget_articlecreate_userupdate_userget_userlist_userscreate_groupupdate_groupadd_group_membersremove_group_memberslist_groupscreate_ui_policycreate_ui_policy_actionlist_tool_packagesBEFORE YOU INSTALL
What to know first
Tools you get
76 tools named in the project's documentation.
Requires
- Python 3.11 or later
- A ServiceNow instance with appropriate access credentials
- SERVICENOW_INSTANCE_URL in your environment
- One sign-in method, chosen with SERVICENOW_AUTH_TYPE: SERVICENOW_USERNAME and SERVICENOW_PASSWORD (basic), SERVICENOW_CLIENT_ID, SERVICENOW_CLIENT_SECRET and SERVICENOW_TOKEN_URL (oauth), or SERVICENOW_API_KEY (api_key)
INSTALLATION
Connect your client
This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/echelon-ai-labs/servicenow-mcp.git
cd servicenow-mcp
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -e .MCP Clients
Claude Desktop
{
"mcpServers": {
"ServiceNow": {
"command": "/Users/<YOUR_USERNAME>/dev/servicenow-mcp/.venv/bin/python",
"args": [
"-m",
"servicenow_mcp.cli"
],
"env": {
"SERVICENOW_INSTANCE_URL": "https://<YOUR_INSTANCE>.service-now.com",
"SERVICENOW_USERNAME": "<YOUR_SERVICENOW_USERNAME>",
"SERVICENOW_PASSWORD": "<YOUR_SERVICENOW_PASSWORD>",
"SERVICENOW_AUTH_TYPE": "basic"
}
}
}
}/Users/<YOUR_USERNAME>/dev/servicenow-mcp is the full path of the folder git clone created. The command is the Python inside its .venv. Set SERVICENOW_INSTANCE_URL to your instance. The block signs in with basic auth (SERVICENOW_USERNAME and SERVICENOW_PASSWORD). For OAuth, set SERVICENOW_AUTH_TYPE to oauth and give SERVICENOW_CLIENT_ID, SERVICENOW_CLIENT_SECRET and SERVICENOW_TOKEN_URL instead; for an API key, set it to api_key and give SERVICENOW_API_KEY.
MCP CLI
Run this inside the cloned folder, after creating a .env file there with SERVICENOW_INSTANCE_URL, SERVICENOW_AUTH_TYPE and the credentials for that sign-in method. It registers the server with Claude using those variables.
mcp install src/servicenow_mcp/server.py -f .env