servicedesk-plus
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@servicedesk-plus list all open high priority tickets"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ServiceDesk Plus Model Context Protocol (MCP) Server
A production-ready Model Context Protocol (MCP) server that connects large language models (LLMs) securely with your ManageEngine ServiceDesk Plus (On-Premise / Self-Hosted) instance. This server allows AI agents (such as Claude Desktop, Cursor, and other MCP hosts) to query, search, create, update, and manage help desk tickets and technical notes in real-time.
π οΈ Features
List & Search Tickets: Rich server-side filtering by status, requester email, and advanced subject-contains keyword queries.
Get Ticket Details: Retrieve comprehensive information on a single ticket, including its subject, description, priority, and resolution content.
Create Tickets: Seamlessly open new help desk requests with custom subjects, HTML/plain-text descriptions, and priorities.
Update Tickets: Real-time updates to ticket statuses, descriptions, and subjects.
Manage Technical Notes: Exposes tools to list and append technical updates directly onto tickets.
Public & Secure: Rigorously designed for open-source safety. Zero hardcoded secrets, domains, or credentials.
Classic UI Integration: Automatically generates browser-viewable deep links tailored for the Classic UI layout.
Complete Offline Testing: Includes a 100% offline unit test suite with mock network interception (
respx).
Related MCP server: freshservice-mcp
π Architecture Overview
βββββββββββββββββββ ββββββββββββββββββββββ βββββββββββββββββββββββ
β β Stdio β β HTTPS β ManageEngine β
β MCP Host β βββββββββ> β servicedesk-plus β βββββββββ> β ServiceDesk Plus β
β (e.g. Claude) β <βββββββββ β (MCP Server) β <βββββββββ β (On-Premise API) β
β β β β (authtoken) β β
βββββββββββββββββββ ββββββββββββββββββββββ βββββββββββββββββββββββπ MCP Tools Exposed
This server exposes 6 robust tools to the AI client:
Tool Name | Parameters | Description |
|
| Retrieve, paginated, and filter tickets. Performs efficient server-side query filtering. |
|
| Retrieve full details of a single ticket (including HTML description and resolutions). |
|
| Create a new help desk request. |
|
| Update fields on an existing ticket. |
|
| Append a technical log or update note to a ticket. |
|
| Fetch all technical notes logged on a specific ticket. |
π Quick Start
Prerequisites
Python 3.10 or higher.
uvis highly recommended for lightning-fast package and tool management (or standardpip).
1. Configure Your Credentials
Copy the .env.example template to .env:
cp .env.example .envOpen .env and fill in your details:
SDP_API_KEY=your_technician_key_here
SDP_BASE_URL=productsupport.example.com
SDP_USERNAME=your_username_hereNote: Your SDP_API_KEY (Technician Key/Authtoken) is generated from your ServiceDesk Plus profile page.
π¦ Local Installation & Build
Building the Package
You can build a clean local package artifact (wheel file) of the server using standard build tools:
Using uv:
uv buildUsing standard Python:
python -m pip install --upgrade build
python -m buildThis will compile and output the package to dist/servicedesk_plus-0.1.0-py3-none-any.whl.
π Configuring Your MCP Host
1. Claude Desktop
Add this to your claude_desktop_config.json (typically located in %APPDATA%\Claude\claude_desktop_config.json on Windows or ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
Option A: Running from Built Local Wheel (Recommended)
This approach executes the server inside an isolated temporary sandbox with standard uvx:
{
"mcpServers": {
"servicedesk-plus": {
"command": "uvx",
"args": [
"--from",
"C:\\Workspace\\google-cli\\productsupport-mcp\\dist\\servicedesk_plus-0.1.0-py3-none-any.whl",
"servicedesk-plus"
],
"env": {
"SDP_API_KEY": "YOUR_API_KEY",
"SDP_BASE_URL": "productsupport.example.com",
"SDP_USERNAME": "your_email@domain.com"
}
}
}
}Option B: Running from Local Sources (Development)
{
"mcpServers": {
"servicedesk-plus": {
"command": "C:\\Workspace\\google-cli\\productsupport-mcp\\.venv\\Scripts\\python.exe",
"args": [
"C:\\Workspace\\google-cli\\productsupport-mcp\\src\\servicedesk_plus\\main.py"
],
"env": {
"SDP_API_KEY": "YOUR_API_KEY",
"SDP_BASE_URL": "productsupport.example.com",
"SDP_USERNAME": "your_email@domain.com"
}
}
}
}π§ͺ Running Unit Tests
This project includes a comprehensive offline unit testing suite utilizing pytest and respx to mock ServiceDesk Plus API responses entirely.
Install development requirements in your virtual environment:
pip install -e .[dev]Run tests:
pytest
All tests run 100% offline, allowing verification of tool registration, query formatting, body payload construction, and response unpacking with zero credentials or internet required.
π License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
6 toolsadd_ticket_noteA
Append a technical update or administrative note to a ticket.
Args: ticket_id: The unique numeric ID of the ticket. note: Text content of the note to append.
Inputs: note (required), ticket_id (required). Returns: result
create_ticketA
Create a new Help Desk ticket in ServiceDesk Plus.
Args: subject: Short summary or subject of the ticket. description: Full plain-text or HTML description detailing the issue. priority: Optional priority name (e.g. 'High', 'Medium', 'Low'). requester_email: Optional email of the requester. If omitted, uses default.
Inputs: subject (required), description (required), priority, requester_email. Returns: result
get_ticketA
Retrieve detailed information on a single ticket, including its status, resolution, and description.
Args: ticket_id: The unique numeric ID of the ticket to retrieve.
Inputs: ticket_id (required). Returns: result
list_ticket_notesA
List all notes attached to a specific ticket.
Args: ticket_id: The unique numeric ID of the ticket.
Inputs: ticket_id (required). Returns: result
list_ticketsA
Retrieve, search, and filter ServiceDesk Plus tickets.
Args: status: Optional status filter (e.g. 'Open', 'In Progress', 'Closed'). requester_email: Optional requester email address filter. search_query: Optional text keyword search for ticket subjects. row_count: Number of tickets to retrieve (default: 20, max: 100). start_index: 1-based start index for paginated results (default: 1).
Inputs: status, row_count, start_index, search_query, +1 more. Returns: result
update_ticketA
Update fields on an existing ticket in ServiceDesk Plus.
Args: ticket_id: The unique numeric ID of the ticket to update. subject: Optional new subject for the ticket. description: Optional new plain-text or HTML description. status: Optional new status name (e.g. 'Open', 'In Progress', 'Closed').
Inputs: ticket_id (required), status, subject, description. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 6 tools
Each tool has a distinct purpose: list, detail, create, update, add note, and list notes. No overlap or ambiguity between them.
All tool names follow a consistent verb_noun pattern with snake_case (e.g., list_tickets, create_ticket, update_ticket). This is uniform and predictable.
Six tools is well-scoped for a help desk ticket server, covering core ticket operations and note management without unnecessary bloat.
The tool set covers create, read, update, list, and notes. Missing delete is acceptable for tickets, but lack of assign/transfer or note editing is a minor gap.
Maintenance
Related MCP Connectors
One MCP server for the services your AI needs: memory, files, Microsoft 365, kanban and more.
AI-powered incident management and server monitoring via MCP.
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server for Support & Service Management
Related MCP Servers
AlicenseAqualityDmaintenanceAn MCP server that lets AI assistants search and read support tickets from Jitbit Helpdesk. Works with both SaaS and on-premise installations.360 npm3MIT- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to interact with Freshservice service desk, supporting ticket search, retrieval, and creation via a configurable, Docker-first deployment.MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that provides IT support tools to search known incidents, check ticket status, and create ticket drafts, enabling an AI assistant to help users with IT support queries.-
- AlicenseAqualityCmaintenanceMCP server that exposes the i-net HelpDesk Ticket Web-API as tools for AI agents, enabling ticket search, reading, creation, and actions like replying, closing, and escalating, with attachment support.8MIT