ServiceNow MCP Server
A ServiceNow integration server for the Model Context Protocol that enables automated incident management, knowledge base article creation, and other ServiceNow operations through a standardized protocol.
README
š ServiceNow MCP Server
<div align="center"> <img src="images/light.png" alt="MCP Architecture" width="400"/> <p><em>ServiceNow Integration for Model Context Protocol</em></p> </div>
š 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
.envfile 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 servicenow-test-examples.md.
š§© 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 LICENSE file for details.
š Support
For support, please:
- Open an issue in this repository
- Contact the maintainers
- Check the ServiceNow documentation
š¤ Author
<div align="center"> <img src="https://github.com/divyashah0510.png" alt="Divya Shah" width="100"/> <p><strong>Divya Shah</strong></p> <p> AI Engineer | ServiceNow Developer | Open Source Contributor </p> <p> <a href="https://github.com/divyashah0510">GitHub</a> ⢠<a href="https://linkedin.com/in/divya-d-shah">LinkedIn</a> ⢠<a href="https://x.com/Divya_Shah22">Twitter</a> </p> </div>
š„ Watch Live Demo
š Youtube Link
Live Demo
<iframe width="560" height="315" src="https://www.youtube.com/embed/FojEOrdFWxo?si=WQZoNOwEe_ktaiJ_" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
<div align="center"> <p>Made with ā¤ļø by Divya Shah</p> </div>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.