NKS osTicket MCP
An MCP server for osTicket that lets AI agents manage tickets and related support data through 15 tools.
List, filter, sort, and paginate tickets, and search by subject.
Read ticket details and full message threads; get aggregate stats and all ticket statuses.
Create, update, assign, reply to, and delete tickets, including internal notes, status/due date/topic changes,
staffId,replyTo, and local file attachments.Manage parent/child subtickets: link, unlink, list children, and get parent.
Download ticket attachments as base64.
Configure request timeout and self-signed TLS handling, with osTicket API errors returned to the agent.
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., "@NKS osTicket MCP find tickets about password reset"
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.
NKS osTicket MCP
A Model Context Protocol server for osTicket. It lets AI agents such as Claude list, search, read, create, update, reply to and delete tickets, plus read stats, manage parent/child subtickets and download attachments.
It talks to the companion NKS osTicket API plugin, which exposes a single JSON endpoint inside osTicket.
Features
🎫 Ticket CRUD - List, search, read, create, update and delete tickets from an AI agent
💬 Replies and notes - Customer-facing replies (emailed) and internal notes, optionally posted as a specific agent (
staffId) and with selectable recipients (replyTo)📊 Stats and statuses - Total, open, closed and overdue counts; list of all ticket statuses
🌳 Subtickets - Link, unlink and browse parent/child tickets
📎 Attachments - Attach local files to a reply; thread entries list their attachments and any of them downloads as base64
⏱️ Error reporting - Requests time out after 30 s by default (504), network failures return 502, and API errors come back to the agent with osTicket's code and message; self-signed TLS can be allowed
🧩 15 tools - One MCP server over stdio, configured by environment variables
Related MCP server: OTRS MCP Server
Requirements
Node.js 18 or later
The NKS osTicket API plugin installed on your osTicket instance
An osTicket API key (Admin → Manage → API Keys) with the permissions your tools need, bound to the source IP this server runs from
Installation
git clone https://github.com/nks-hub/nks-osticket-mcp.git
cd nks-osticket-mcp
npm install
npm run buildConfiguration
Set via environment variables (see .env.example):
Variable | Required | Default | Description |
| yes | – | URL of the API entry, |
| yes | – | osTicket API key |
| no |
| Request timeout in ms |
| no |
|
|
Usage
Claude Code / Claude Desktop
Add to your MCP server configuration:
{
"mcpServers": {
"osticket": {
"command": "node",
"args": ["/absolute/path/to/nks-osticket-mcp/dist/index.js"],
"env": {
"NKS_OSTICKET_URL": "https://support.example.com/api/nks-osticket.php",
"NKS_OSTICKET_API_KEY": "your-api-key"
}
}
}
}Tools
Tool | Purpose |
| List tickets (filter by status/department, paginated) |
| Full-text search by subject |
| One ticket with full message thread |
| Total / open / closed / overdue counts |
| All ticket statuses |
| Create a ticket |
| Change status / due date / topic, add internal note (optionally as agent |
| Post a customer-facing reply (emailed; optional |
| Assign a ticket to an agent ( |
| Delete a ticket (irreversible) |
| Link child under parent |
| Remove a child's parent link |
| List a parent's children |
| Get a child's parent |
| Download an attachment (base64) |
attachments on osticket_reply_ticket is a list of { "path": "C:/tmp/screenshot.jpg" }, optionally with name and type. The server reads each file from its own disk, guesses the MIME type from the extension (jpg, png, gif, webp, pdf, txt, otherwise application/octet-stream) and sends it base64-encoded. Attaching files needs plugin 1.3.0 or later; osTicket's maximum file size setting caps each file.
Development
npm run dev # run from source with tsx
npm run type-check # tsc --noEmit
npm run build # compile to dist/
npm start # run the compiled serverThe project has no automated test suite yet; npm run type-check and npm run build are the checks. Changes are listed in CHANGELOG.md.
Contributing
Contributions are welcome! For major changes, please open an issue first.
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'feat: description')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Support
📧 Email: dev@nks-hub.cz
🐛 Bug reports: GitHub Issues
License
MIT License — see LICENSE for details.
Available Tools
14 toolsosticket_create_ticketC
Create a new ticket. Requires subject and message.
Inputs: message (required), subject (required), name, email, +2 more.
osticket_delete_ticketA
Permanently delete a ticket and its thread. Irreversible.
Inputs: number (required).
osticket_download_attachmentA
Download a ticket attachment by its numeric file id (from a thread entry's attachments[].fileId in osticket_get_ticket), returned as base64.
Inputs: fileId (required).
osticket_get_childrenB
List all child tickets of a parent ticket.
Inputs: number (required).
osticket_get_parentA
Get the parent ticket of a child ticket (null if none).
Inputs: number (required).
osticket_get_statsA
Aggregate ticket statistics: total, open, closed, overdue.
Inputs: no named parameters.
osticket_get_ticketA
Get one ticket with full detail including the message thread. Each thread entry may include an "attachments" array (fileId, name, type, size, inline, cid); pass an attachment's numeric fileId to osticket_download_attachment. Provide number or id.
Inputs: id, number.
osticket_link_subticketB
Link a child ticket under a parent (parent/child relationship).
Inputs: child (required), parent (required).
osticket_list_statusesA
List all ticket statuses with their canonical state.
Inputs: no named parameters.
osticket_list_ticketsA
List tickets, newest first. Filter by status (open/closed/resolved/archived or numeric id) and department. Paginated.
Inputs: sort, limit, offset, status, +1 more.
osticket_reply_ticketA
Post a customer-facing reply to a ticket. This is emailed to the ticket's user.
Inputs: number (required), response (required), alert, title, +3 more.
osticket_search_ticketsA
Full-text search tickets by subject. Optional status filter and pagination.
Inputs: query (required), sort, limit, offset, +1 more.
osticket_unlink_subticketB
Remove a child ticket's parent link.
Inputs: child (required).
osticket_update_ticketB
Update a ticket: change status, set/clear due date, change help topic, and/or add an internal staff note.
Inputs: number (required), note, status, dueDate, +4 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Each tool has a clearly distinct resource/action pairing: ticket CRUD, listing/searching, stats, statuses, replies, attachments, and parent/child linking are all separable. The closest overlap is list_tickets vs search_tickets, but their descriptions make the boundary clear.
All tools use a consistent osticket_ prefix followed by a snake_case verb_noun pattern such as get_ticket, create_ticket, reply_ticket, and link_subticket. The naming is predictable throughout.
Fourteen tools is well within the appropriate range for a ticket-management server. Each tool maps to a meaningful ticket operation without excessive surface area.
Core ticket lifecycle coverage is strong: create, read, update, delete, list, search, reply, stats, statuses, attachments, and parent/child linking are all present. Minor gaps include listing departments/help topics/agents, ticket assignment, and priority management, which agents may need for full osTicket workflows.
Maintenance
Related MCP Connectors
Work your Zono Support help desk from an AI client: tickets, customers, purchases and knowledge.
Work your HelpRabbit help desk: tickets, replies, customers, the AI agent and its knowledge.
Read tickets, contacts, companies, agents and groups; create, update and reply to tickets.
Search tickets, read conversations and people; create and update tickets and people in Octadesk.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI-driven management of osTicket helpdesks through natural language, allowing users to reply to, assign, and transfer tickets without requiring API keys. It reverse-engineers the osTicket staff panel to provide full access to ticket operations using session-based authentication.2-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to create, search, and manage OTRS tickets and configuration items via the OTRS API.9Apache 2.0

Xalantis MCP Serverofficial
AlicenseAqualityCmaintenanceEnables managing support tickets from Claude, Cursor, and other AI tools, including listing, creating, updating, and replying to tickets.654 npmMIT- FlicenseNot gradedqualityCmaintenanceEnables ticket management and AI triage through Mistral-compatible models, with tools for creating, listing, retrieving, triaging, and updating support tickets.-