๐Ÿš€ ServiceNow MCP Server

by divyashah0510

204 downloads
Not rated
GitHub

Description

# ๐Ÿš€ 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โ€ฆ

About

# ๐Ÿš€ 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โ€ฆ

Details

Author
divyashah0510
Downloads
204
Categories
Other

- Direct integration with any ServiceNow instance
- Supports creating incidents, KB articles, client scripts, business rules, SLA definitions, record producers, and variable sets
- Environmentโ€‘based secure credential management
- Built on FastAPI for highโ€‘performance async operations
- Optional Gemini API key for AI capabilities

Configure environment variables (SERVICENOW_INSTANCE, SERVICENOW_USERNAME, SERVICENOW_PASSWORD, optional GEMINI_API_KEY) in a .env file, install dependencies with pip install -e ., then start the server using mcp install <file_name>.py. The server exposes MCP tools such as create_incident, create_kb_article, and create_record_producer.

๐Ÿš€ ServiceNow MCP Server

<div align="center">
MCP Architecture
<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

1. Clone the repository:

   git clone https://github.com/your-org/mcp-server-now.git
   cd mcp-server-now
   

2. 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
   

3. 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:

1. Create an Incident:

   create_incident(
       short_description="Network outage in building B",
       description="Users reporting connectivity issues",
       urgency="2",
       impact="2"
   )
   

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 incidents
- create_kb_article: Create knowledge base articles
- create_client_script: Create client-side scripts
- create_business_rule: Create business rules
- create_sla_definition: Create SLA definitions
- create_record_producer: Create record producers with customizable variables
- create_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:

1. Create a new async function in servicenow.py
2. Decorate it with @mcp.tool()
3. Add proper documentation and error handling
4. Test the new functionality

๐Ÿ“š Resources

- Model Context Protocol Documentation
- ServiceNow REST API Documentation
- FastAPI Documentation

๐Ÿ“„ 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">
Divya Shah
<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

<div align="center">
<p>Made with โค๏ธ by Divya Shah</p>
</div>

No reviews yet โ€” be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.