sdp-mcp
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., "@sdp-mcplist open tickets assigned to me"
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.
sdp-mcp
Model Context Protocol (MCP) server for ManageEngine ServiceDesk Plus (SDP) v3 REST API.
Exposes tickets, tasks, changes, assets, users, technicians, knowledge-base articles, contracts and reference data as MCP tools, so LLM agents can query and operate a ServiceDesk Plus instance conversationally.
Features
Full ticket (request) lifecycle: list, get, create, update, close, trash/force-delete, restore, assign/unassign, hold/unhold, stats, PPM, linked change.
Request sub-resources: conversations, notes, tasks, worklogs, assets, followers, dynamics (custom fields), resolution.
Change management: list, get, create, update; change tasks, notes, trash/delete and CAB approve/reject.
Problem management: full CRUD plus problem notes, tasks, worklogs and request↔problem linking.
Projects: full CRUD plus milestones, tasks, comments and request↔project linking.
Standalone tasks (not tied to a request): list, get, create, update, delete, and task worklogs.
Asset inventory: list, get, create, update, trash/delete, asset types and picklist values.
People: technicians, users, requesters (create/update), with filtering/pagination via
list_info.Reference data: locations, departments, organizations, companies, vendors, request/task/recurring templates.
Knowledge base: list/get/create solutions (KB articles).
Contracts: list/get.
Derived groups: many SDP instances lack a native
/groupsendpoint — this server scrapes groups referenced by change/task records instead.sdp_callgeneric passthrough: hits any/api/v3/...endpoint, so tools not yet wrapped are still reachable.
Related MCP server: Freshservice MCP Server
Requirements
Node.js 18+ (uses global
fetchand ESMimport).A ServiceDesk Plus instance reachable over HTTPS.
Installation
git clone https://github.com/rushikeshsakharleofficial/sdp-mcp.git
cd sdp-mcp
npm installConfiguration
Every credential comes from environment variables — nothing is hardcoded. Copy .env.example for the reference layout.
Variable | Required | Description |
| yes | Base URL of the SDP instance, e.g. |
| one of | Technician API key. When set, requests send the |
| one of | OAuth/Delegated token. When set, requests send |
| with OAuth | Technician email; sent as the |
| no | Path to a CA bundle ( |
Auth priority: OAuth token wins; otherwise the API key is used.
SDP API key
Generate a key in ServiceDesk Plus → Admin → Technicians → your tech → API Keys. The key must belong to a technician with permission for the resources the agent will touch.
OAuth (delegated)
Register your app and get a client credential pair in SDP Admin.
Exchange for a token and supply it via
SDP_OAUTH_TOKEN, withSDP_EMAILas the acting technician.
Both modes authenticate the technician, so list/create/update operations observe that technician's SDP permissions.
Usage
Run standalone (stdio)
SDP_BASE_URL=https://assist.example.com SDP_API_KEY=your-key node server.jsThe server speaks the MCP protocol over standard input/output (StdioServerTransport). Point any MCP-compatible client at it.
opencode
Add to ~/.config/opencode/opencode.jsonc:
{
"mcp": {
"sdp": {
"type": "local",
"command": ["node", "/path/to/sdp-mcp/server.js"],
"enabled": true,
"environment": {
"SDP_BASE_URL": "https://assist.example.com",
"SDP_API_KEY": "your-key"
}
}
}
}Claude Desktop
{
"mcpServers": {
"sdp": {
"command": "node",
"args": ["/path/to/sdp-mcp/server.js"],
"env": {
"SDP_BASE_URL": "https://assist.example.com",
"SDP_API_KEY": "your-key"
}
}
}
}Other MCP clients
Any client that can launch a local stdio process and feed it environment variables works the same way: run node server.js with SDP_BASE_URL and one auth credential set.
Tools
Tickets (requests)
Tool | Description |
| List tickets (default page). |
| Full ticket detail: technician, group, requester, category, subcategory, item, priority, dynamics, time entries. |
| Create a ticket ( |
| Edit a ticket: subject, description, priority, status, technician, group, category, |
| Close a ticket with resolution, closure code, comment, time spent. |
| Trash a ticket, or permanent delete with |
| Restore from trash. |
| Assign to a technician. |
| Remove the assigned technician. |
| Set / clear hold state. |
| Ticket completion stats. |
| Change record linked to the ticket. |
| Ticket budget/duration. |
Conversations, notes, resolution
Tool | Description |
| Conversations on a ticket. |
| Internal notes. |
| The public resolution record. |
Request search & extras
Tool | Description |
| Search tickets by |
| Audit/activity trail on a ticket. |
| Emails associated with a ticket. |
| Linked requests. |
Request tasks, worklogs, dynamics, followers, assets
Tool | Description |
| Tasks attached to a ticket. |
| Time / log entries on a ticket. |
| Time / log entries on a task. |
| Custom (dynamic) field values. |
| Watchers. |
| Asset linkage. |
Tasks
Tool | Description |
| Standalone tasks (paginate via |
| One general task. |
| Standalone task lifecycle. |
Changes
Tool | Description |
| Change requests ( |
| Change tasks ( |
| Change notes. |
| Trash a change, or permanent delete with |
| Approve / reject a change (CAB). |
Problems
Tool | Description |
| Problem records (CRUD). |
| Problem notes, tasks, time entries. |
| Link a problem to a ticket and back. |
Projects
Tool | Description |
| Projects (CRUD). |
| Project milestones. |
| Project tasks. |
| Project comments. |
| Link a project to a ticket and back. |
Assets
Tool | Description |
| Asset inventory lifecycle. |
| Picklist values for an asset type. |
| Configured asset types. |
People
Tool | Description |
| Technician accounts. |
| Users (filter by |
| Requesters (end users who raise tickets). |
Reference data
Tool | Description |
| Sites/locations. |
| Departments. |
| Organizations. |
| Companies. |
| Vendors. |
| Templates. |
| Knowledge base articles. |
| Contracts. |
Groups (derived)
Tool | Description |
| Groups referenced by change and task records. See notes. |
Anything else
Tool | Description |
| Raw passthrough: |
API conventions
All requests hit
/api/v3/<endpoint>onSDP_BASE_URL.This SDP instance does not accept JSON request bodies — mutation payloads are serialized into the
input_dataquery parameter (matching the v3 web-interface behavior). The server handles this automatically.Errors are returned as MCP error content with
HTTP status+ server payload.Non-JSON responses fall back to
{ raw: <text> }.
Known limitations
These are behaviors observed on the source instance (assist.webwerks.in); your tenancy may differ.
No query filters on
list_requests— the instance rejects filter parameters; onlyget_requestreturns full detail./commentsreturns 404 — uselist_request_conversations/add_request_conversationinstead.No native
/groupsendpoint —list_groupsderives groups by scanning change/task records (up to 50 pages of 100 each). If your instance exposes/groups, replacederivedGroups()with a direct call.search_requestsdepends on tenancy — some SDP servers rejectsearch_criteriaonGET /requests;list_requests(unfiltered) is the safe fallback.approve_change/reject_changefollow the documented{change:{approve:...}}shape but submit direction varies across instances — if they fail, usesdp_callwith the raw endpoint.assign_requestpayload encoding is instance-specific; simplest is to copy a technician object obtained fromget_request.
Development
npm run start # node server.jsEdit server.js — every tool is registered in ~80 lines via the reg() helper.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
Provides access to Civic Plus - See Click Fix, allowing you to interact with your data via an LLM.…
Connect AI agents to 1000+ apps with managed authentication and tool-calling.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI models to interact with Freshservice IT service management platform, allowing automated ticket management, change requests, asset tracking, and solution article operations through natural language commands.MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to connect with Freshservice ITSM for managing tickets, assets, agents, and organizational data through natural language. It provides a comprehensive set of tools for performing CRUD operations on service desk records and searching across the Freshservice platform.5369 npm1MIT
- FlicenseNot gradedqualityDmaintenanceExposes the complete Zoho Desk API with over 700 endpoints across 130 categories using a context-efficient search-then-call pattern. It enables users to manage tickets, contacts, agents, and support operations through natural language interactions.3-
- FlicenseNot gradedqualityFmaintenanceIntegrates with Service Desk Plus Cloud API to enable AI assistants perform CRUD operations on service desk entities, including request management, technician management, and email communication.3-