MCP FOR ITSM

by madosh
Verified

Integrations

  • Provides integration with Atlassian products (beyond Jira) through a unified interface, handling authentication and API interactions.

  • Enables interaction with Jira instances through a unified API, providing capabilities for accessing issues, managing tickets, and integrating with Jira workflows.

  • Allows connection to Zendesk instances to manage tickets and support requests through a standardized interface that abstracts away Zendesk-specific API complexities.

MCP ITSM Integration

A Model Context Protocol (MCP) implementation for IT Service Management (ITSM) tools, designed to work with Smithery.

Overview

This project provides a unified interface for LLMs to interact with multiple ITSM systems (ServiceNow, Jira, Zendesk, Ivanti Neurons for ITSM, and Cherwell) using the Model Context Protocol (MCP). Instead of requiring LLMs to learn different APIs for each ITSM system, this integration provides a standardized set of tools that work across all systems.

MCP Server Information

This is an MCP-compliant server that implements the Model Context Protocol specification. It provides a standardized interface for Large Language Models to interact with multiple ITSM systems through a unified set of tools.

MCP Compatibility

  • Protocol Version: MCP 1.0
  • Tool Format: JSON Schema compliant
  • Runtime: Node.js
  • Transport: HTTP and stdio
  • Authentication: API key

MCP Server Usage

The server can be used directly with any MCP-compatible client, including:

  • MCP Inspector CLI tool
  • Claude via MCP integration
  • Any LLM with MCP support

To inspect the server locally:

npx @modelcontextprotocol/inspector node index.js

Features

  • Unified Interface: Consistent tool definitions across all ITSM systems
  • Intelligent Routing: Automatically routes requests to the appropriate ITSM system
  • Context Management: Maintains context across interactions
  • MCP Compliant: Follows the Model Context Protocol specification
  • Smithery Integration: Designed to work seamlessly with Smithery

Prerequisites

  • Node.js (v14 or higher)
  • Smithery CLI
  • Access to ITSM systems (ServiceNow, Jira, Zendesk, Ivanti Neurons for ITSM, Cherwell)

Installation

  1. Clone the repository:
    git clone https://github.com/yourusername/mcp-itsm.git cd mcp-itsm
  2. Install dependencies:
    npm install
  3. Configure your ITSM credentials (see Configuration section)
  4. Deploy to Smithery:
    smithery deploy

Configuration

ITSM Credentials

Create a .env file with your ITSM credentials:

# ServiceNow SERVICENOW_INSTANCE=your-instance SERVICENOW_USERNAME=your-username SERVICENOW_PASSWORD=your-password # Jira JIRA_URL=https://your-instance.atlassian.net JIRA_USERNAME=your-username JIRA_API_TOKEN=your-api-token # Zendesk ZENDESK_URL=https://your-instance.zendesk.com ZENDESK_EMAIL=your-email ZENDESK_API_TOKEN=your-api-token # Ivanti Neurons for ITSM IVANTI_URL=https://your-instance.ivanti.com IVANTI_CLIENT_ID=your-client-id IVANTI_CLIENT_SECRET=your-client-secret IVANTI_TENANT_ID=your-tenant-id # Cherwell CHERWELL_URL=https://your-instance.cherwell.com CHERWELL_CLIENT_ID=your-client-id CHERWELL_AUTH_MODE=internal CHERWELL_USERNAME=your-username CHERWELL_PASSWORD=your-password

Smithery Configuration

The smithery.yaml file configures how your tools are deployed to Smithery:

name: mcp-itsm description: MCP ITSM Tools for ticket management across multiple systems version: 1.0.0 tools: ./tools.json command: node index.js

Available Tools

This integration provides the following tools:

  • create_ticket: Create a new ticket in any ITSM system
  • get_ticket: Retrieve ticket details
  • update_ticket: Update an existing ticket
  • list_tickets: List tickets with filtering options
  • assign_ticket: Assign a ticket to a user
  • add_comment: Add a comment to a ticket
  • search_knowledge_base: Search the knowledge base for relevant articles

See tools.json for the complete tool definitions.

Usage

Once deployed to Smithery, LLMs can use these tools to interact with your ITSM systems. Here's an example of how an LLM might create a ticket:

User: "I need to report a bug in our accounting software" LLM: (Makes a tool call) { "type": "tool_call", "data": { "name": "create_ticket", "parameters": { "title": "Bug in accounting software", "description": "User reported an issue with the accounting software", "priority": "medium", "system": "jira" } } } Response: { "type": "tool_response", "data": { "name": "create_ticket", "content": { "id": "ACCT-123", "status": "open", "url": "https://your-instance.atlassian.net/browse/ACCT-123" } } }

Debugging

This project includes several debugging tools:

  • debug_smithery_mcp.bat: Diagnoses MCP-specific issues with Smithery
  • force_redeploy_smithery.bat: Forces redeployment with MCP configuration
  • test_tools.js: Tests MCP tool calls locally

Documentation

Diagrams

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

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

Resources