servicedesk-plus

servicedesk-plus

MCP server for ManageEngine ServiceDesk Plus that lets AI agents list, search, create, update, and manage help desk tickets and technical notes in real-time.

Category
访问服务器

README

ServiceDesk Plus Model Context Protocol (MCP) Server

Python Version License: MIT

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

📐 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
list_tickets status (opt), requester_email (opt), search_query (opt), row_count (opt), start_index (opt) Retrieve, paginated, and filter tickets. Performs efficient server-side query filtering.
get_ticket ticket_id (req) Retrieve full details of a single ticket (including HTML description and resolutions).
create_ticket subject (req), description (req), priority (opt), requester_email (opt) Create a new help desk request.
update_ticket ticket_id (req), subject (opt), description (opt), status (opt) Update fields on an existing ticket.
add_ticket_note ticket_id (req), note (req) Append a technical log or update note to a ticket.
list_ticket_notes ticket_id (req) Fetch all technical notes logged on a specific ticket.

🚀 Quick Start

Prerequisites

  • Python 3.10 or higher.
  • uv is highly recommended for lightning-fast package and tool management (or standard pip).

1. Configure Your Credentials

Copy the .env.example template to .env:

cp .env.example .env

Open .env and fill in your details:

SDP_API_KEY=your_technician_key_here
SDP_BASE_URL=productsupport.example.com
SDP_USERNAME=your_username_here

Note: 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 build

Using standard Python:

python -m pip install --upgrade build
python -m build

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

  1. Install development requirements in your virtual environment:
    pip install -e .[dev]
    
  2. 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.

推荐服务器

Baidu Map

Baidu Map

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

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

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

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

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

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

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

官方
精选
本地
TypeScript
VeyraX

VeyraX

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

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

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

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

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

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

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

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选