ServiceNow MCP Server

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.

Category
访问服务器

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

  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

📄 License

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

📞 Support

For support, please:

👤 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>

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选