Skip to main content

ServiceNow MCP Server for natural language interactions with ServiceNow

Project description

ServiceNow MCP Server

License: MIT

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 incidents
  • servicenow://incidents/{number}: Get a specific incident by number
  • servicenow://users: List users
  • servicenow://knowledge: List knowledge articles
  • servicenow://tables: List available tables
  • servicenow://tables/{table}: Get records from a specific table
  • servicenow://schema/{table}: Get the schema for a table

Tools

Basic Tools

  • create_incident: Create a new incident
  • update_incident: Update an existing incident
  • search_records: Search for records using text query
  • get_record: Get a specific record by sys_id
  • perform_query: Perform a query against ServiceNow
  • add_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:

  1. Basic Authentication: Username and password
  2. Token Authentication: OAuth token
  3. 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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_mcp_server_servicenow-0.1.0.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_mcp_server_servicenow-0.1.0-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

Details for the file iflow_mcp_mcp_server_servicenow-0.1.0.tar.gz.

File metadata

File hashes

Hashes for iflow_mcp_mcp_server_servicenow-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d5b64014e7590a425778ed3ef1e0212a71280c9b8881ed257253d2f2a5473c7a
MD5 9905234351213003759adf7797aee1aa
BLAKE2b-256 421f6d676bb385c49be17e072348f6b0a6059b4c80f405c9911f89b795d23436

See more details on using hashes here.

File details

Details for the file iflow_mcp_mcp_server_servicenow-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for iflow_mcp_mcp_server_servicenow-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62bc7d556229954e94a8776ff43083a4fe40d968ea13c97b53787db41a10f566
MD5 0d5827e0f168c8c77cb7e4e0e376c3ca
BLAKE2b-256 ba330870e512dfd7cc7501b87759960110282c3fb83f826193f1ffc78b218336

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page