divyashah0510/mcp-server-servicenow
If you are the rightful owner of mcp-server-servicenow and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
This repository provides a ServiceNow integration server for the Model Context Protocol (MCP), facilitating seamless interaction between ServiceNow instances and AI models.
create_incident
Create new incidents in ServiceNow.
create_kb_article
Create knowledge base articles in ServiceNow.
create_client_script
Create client-side scripts in ServiceNow.
create_business_rule
Create business rules in ServiceNow.
create_sla_definition
Create SLA definitions in ServiceNow.
create_record_producer
Create record producers with customizable variables in ServiceNow.
create_variable_set
Create reusable variable sets for catalog items in ServiceNow.
š ServiceNow MCP Server
ServiceNow Integration for Model Context Protocol
š Overview
This repository contains a ServiceNow integration server for the Model Context Protocol (MCP). It enables seamless interaction between ServiceNow instances and AI models through a standardized protocol, allowing for automated incident management, knowledge base article creation, and other ServiceNow operations.
⨠Features
- š ServiceNow Integration: Direct integration with ServiceNow instances
- š ļø Multiple Operations Support:
- Create and manage incidents
- Create knowledge base articles
- Create client scripts
- Create business rules
- Create SLA definitions
- Create record producers
- š Secure Authentication: Environment-based credentials management
- š FastAPI-based Server: High-performance async operations
š ļø Prerequisites
- Python 3.12 or higher
- ServiceNow instance with appropriate API access
- Valid ServiceNow credentials
- Optional: Gemini API key for AI capabilities
- UV icorn for running the server
- FastAPI for building the server
āļø Configuration
-
Clone the repository:
git clone https://github.com/your-org/mcp-server-now.git cd mcp-server-now
-
Create a
.env
file with your credentials:SERVICENOW_INSTANCE=https://your-instance.service-now.com SERVICENOW_USERNAME=your_username SERVICENOW_PASSWORD=your_password GEMINI_API_KEY=your_api_key # Optional
-
Install dependencies:
pip install -e .
š Getting Started
Running the Server
mcp install <file_name>.py
Example Usage
The server provides several tools for ServiceNow operations. Here are some examples:
-
Create an Incident:
create_incident( short_description="Network outage in building B", description="Users reporting connectivity issues", urgency="2", impact="2" )
-
Create a Knowledge Base Article:
create_kb_article( short_description="How to Reset Your Password", article_body="<h1>Password Reset Instructions</h1><p>1. Navigate to the login page</p>", workflow_state="published" )
For more examples, see .
š§© Available Tools
The server provides the following tools:
create_incident
: Create new incidentscreate_kb_article
: Create knowledge base articlescreate_client_script
: Create client-side scriptscreate_business_rule
: Create business rulescreate_sla_definition
: Create SLA definitionscreate_record_producer
: Create record producers with customizable variablescreate_variable_set
: Create reusable variable sets for catalog items
Record Producer Details
The create_record_producer
tool allows you to create ServiceNow record producers with the following features:
create_record_producer(
name="Report Network Issue",
table_name="incident",
short_description="Use this form to report network connectivity issues",
category_sys_id="optional_category_sys_id",
script="optional_server_side_script",
variables=[
{
"name": "issue_type",
"label": "Type of Issue",
"type": "choice",
"choices": ["Connectivity", "Performance", "Access"],
"mandatory": True
},
{
"name": "affected_users",
"label": "Number of Affected Users",
"type": "integer",
"mandatory": True
}
]
)
Key features:
- Customizable form fields with various types (string, integer, boolean, reference, etc.)
- Server-side scripting support
- Category assignment
- Mandatory field configuration
- Default values and help text
Variable Sets
The create_variable_set
tool allows you to create reusable variable sets that can be attached to multiple catalog items:
create_variable_set(
name="Hardware Request Variables",
description="Common variables for hardware requests",
variables=[
{
"name": "device_type",
"label": "Device Type",
"type": "choice",
"choices": ["Laptop", "Desktop", "Tablet", "Phone"],
"mandatory": True
},
{
"name": "justification",
"label": "Justification",
"type": "text",
"mandatory": True,
"help_text": "Please explain why you need this hardware"
}
]
)
Variable sets support:
- Multiple variable types (string, integer, boolean, reference, choice, etc.)
- Custom validation rules
- Help text and descriptions
- Mandatory field configuration
- Default values
- Reference fields to other ServiceNow tables
š§ Development
Project Structure
mcp-server-now/
āāā servicenow.py # Main server implementation
āāā servicenow-test-examples.md # Example usage
āāā pyproject.toml # Project configuration
āāā .env # Environment variables
āāā README.md # This file
Adding New Tools
To add new ServiceNow operations:
- Create a new async function in
servicenow.py
- Decorate it with
@mcp.tool()
- Add proper documentation and error handling
- Test the new functionality
š Resources
š License
This project is licensed under the MIT License - see the file for details.
š Support
For support, please:
- Open an issue in this repository
- Contact the maintainers
- Check the ServiceNow documentation
š¤ Author
Divya Shah
AI Engineer | ServiceNow Developer | Open Source Contributor
š„ Watch Live Demo
š Youtube Link
Live Demo
Made with ā¤ļø by Divya Shah