ServiceNow MCP Server
A Model Context Protocol (MCP) server that interfaces with ServiceNow, allowing AI agents to access and manipulate ServiceNow data through a secure API. This server enables natural language interactions with ServiceNow, making it easier to search for records, update them, and manage scripts.
Features
Resources
servicenow://incidents: List recent incidentsservicenow://incidents/{number}: Get a specific incident by numberservicenow://users: List usersservicenow://knowledge: List knowledge articlesservicenow://tables: List available tablesservicenow://tables/{table}: Get records from a specific tableservicenow://schema/{table}: Get the schema for a table
Tools
Basic Tools
create_incident: Create a new incidentupdate_incident: Update an existing incidentsearch_records: Search for records using text queryget_record: Get a specific record by sys_idperform_query: Perform a query against ServiceNowadd_comment: Add a comment to an incident (customer visible)add_work_notes: Add work notes to an incident (internal)
Natural Language Tools
natural_language_search: Search for records using natural language (e.g., "find all incidents about SAP")natural_language_update: Update records using natural language (e.g., "Update incident INC0010001 saying I'm working on it")update_script: Update ServiceNow script files (script includes, business rules, etc.)
Installation
From PyPI
pip install mcp-server-servicenow
From Source
git clone https://github.com/michaelbuckner/servicenow-mcp.git
cd servicenow-mcp
pip install -e .
Usage
Command Line
Run the server using the Python module:
python -m mcp_server_servicenow.cli --url "https://your-instance.service-now.com/" --username "your-username" --password "your-password"
Or use environment variables:
export SERVICENOW_INSTANCE_URL="https://your-instance.service-now.com/"
export SERVICENOW_USERNAME="your-username"
export SERVICENOW_PASSWORD="your-password"
python -m mcp_server_servicenow.cli
Configuration in Cline
To use this MCP server with Cline, add the following to your MCP settings file:
{
"mcpServers": {
"servicenow": {
"command": "/path/to/your/python/executable",
"args": [
"-m",
"mcp_server_servicenow.cli",
"--url", "https://your-instance.service-now.com/",
"--username", "your-username",
"--password", "your-password"
],
"disabled": false,
"autoApprove": []
}
}
}
Note: Make sure to use the full path to the Python executable that has the mcp-server-servicenow package installed.
Natural Language Examples
Searching Records
You can search for records using natural language queries:
find all incidents about email
search for incidents related to network issues
show me all incidents with high priority
Updating Records
You can update records using natural language commands:
Update incident INC0010001 saying I'm working on it
Set incident INC0010002 to in progress
Close incident INC0010003 with resolution: fixed the issue
Managing Scripts
You can update ServiceNow scripts from local files:
Update the ServiceNow script include "HelloWorld" with the contents of hello_world.js
Upload utils.js to ServiceNow as a script include named "UtilityFunctions"
Update @form_validation.js, it's a client script called "FormValidation"
Authentication Methods
The server supports multiple authentication methods:
- Basic Authentication: Username and password
- Token Authentication: OAuth token
- OAuth Authentication: Client ID, Client Secret, Username, and Password
Development
Prerequisites
- Python 3.8+
- ServiceNow instance with API access
Setting Up Development Environment
# Clone the repository
git clone https://github.com/michaelbuckner/servicenow-mcp.git
cd servicenow-mcp
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -e ".[dev]"
Running Tests
pytest
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Metadata
Release files for iflow-mcp_mcp-server-servicenow 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_mcp_server_servicenow-0.1.1.tar.gz | 15.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_mcp_server_servicenow-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.5 kB
Release files / iflow_mcp_mcp_server_servicenow-0.1.1.tar.gz
| Download URL | iflow_mcp_mcp_server_servicenow-0.1.1.tar.gz |
|---|---|
| Size | 15.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5d5680e4bd970a2239f25b476070f5d6bd24f09ceb28f634fbde636a854cf23a
|
|
BLAKE2b-256 checksum How to use checksums |
e5f6f15e9ab520c4a9a7a0564712716ef57573117829c87052804d09fec8bafd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_mcp_server_servicenow-0.1.1-py3-none-any.whl
| Download URL | iflow_mcp_mcp_server_servicenow-0.1.1-py3-none-any.whl |
|---|---|
| Size | 15.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
41ec220fcc3d1d17f80edad7f1dacf471d578ce86f531f8ebc414574d29bb3d2
|
|
BLAKE2b-256 checksum How to use checksums |
73790094a50745225ea6694f16f269f7a5fc27e9679746b3138172d2abf5cf82
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|