MCP Hub
Back to servers

osTicket MCP Server

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

glama
Stars
2
Updated
Mar 22, 2026

osTicket MCP Server

Manage your osTicket helpdesk with AI — from Claude Code, Cursor, Windsurf, or any MCP client.

License: MIT MCP osTicket npm


Talk to your helpdesk in natural language. Reply to tickets, add internal notes, assign agents, transfer departments, close tickets — all without leaving your editor.

> show me the open tickets
> reply to ticket 32 saying we're investigating the issue
> assign it to Sarah
> close all the automated notification tickets

Why?

osTicket doesn't have a public API. This MCP server reverse-engineers the staff panel to give AI tools full access to your helpdesk — using the same session-based auth as the web UI. No API keys, no plugins, no osTicket modifications needed.

Quick Start

1. Install

npm install -g mcp-osticket

Or clone and build from source:

git clone https://github.com/tecnologicachile/mcp-osticket.git
cd mcp-osticket
npm install && npm run build

2. Configure

Add to your MCP client config:

Claude Desktopclaude_desktop_config.json

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "osticket": {
      "command": "npx",
      "args": ["-y", "mcp-osticket"],
      "env": {
        "OSTICKET_URL": "https://helpdesk.example.com",
        "OSTICKET_EMAIL": "agent@example.com",
        "OSTICKET_PASSWORD": "your-password"
      }
    }
  }
}
Claude Code~/.claude/settings.json
{
  "mcpServers": {
    "osticket": {
      "command": "mcp-osticket",
      "env": {
        "OSTICKET_URL": "https://helpdesk.example.com",
        "OSTICKET_EMAIL": "agent@example.com",
        "OSTICKET_PASSWORD": "your-password"
      }
    }
  }
}

If installed from source, use "command": "node" with "args": ["/path/to/mcp-osticket/dist/mcp-server.js"].

Cursor.cursor/mcp.json
{
  "mcpServers": {
    "osticket": {
      "command": "mcp-osticket",
      "env": {
        "OSTICKET_URL": "https://helpdesk.example.com",
        "OSTICKET_EMAIL": "agent@example.com",
        "OSTICKET_PASSWORD": "your-password"
      }
    }
  }
}
Windsurf~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "osticket": {
      "command": "mcp-osticket",
      "env": {
        "OSTICKET_URL": "https://helpdesk.example.com",
        "OSTICKET_EMAIL": "agent@example.com",
        "OSTICKET_PASSWORD": "your-password"
      }
    }
  }
}

3. Use

Restart your editor. The tools are available immediately — just ask in natural language.

Tools

ToolDescription
list_ticketsList tickets by queue — open, my, or closed
get_ticketFull ticket detail with conversation thread
reply_ticketReply to a ticket with email control (all, user, or none)
add_noteAdd an internal note (not visible to the end user)
change_ticket_statusChange status to open, resolved, or closed
assign_ticketAssign a ticket to a staff member
transfer_ticketTransfer a ticket to another department
list_agentsList available staff for assignment
list_departmentsList available departments for transfer
search_usersSearch users by name or email
get_queue_countsGet ticket counts per queue

Reply Control

When replying, you control who gets the email:

reply_toBehavior
allEmail all active recipients (default)
userEmail only the ticket owner
noneNo email — just post the reply in the thread

Examples

Triage your inbox:

> list open tickets and summarize them by priority

Bulk operations:

> close all the automated notification tickets (ZohoMail, BaseAPI, etc.)

Reply without email:

> reply to ticket 15 with "Fixed in latest deploy" but don't send an email

Assign and transfer:

> assign ticket 8 to Sarah and transfer it to the Sales department

Search users:

> find all users with @example.com emails

Environment Variables

VariableRequiredDescription
OSTICKET_URLYesBase URL of your osTicket instance (e.g. https://helpdesk.example.com)
OSTICKET_EMAILYesStaff agent email for login
OSTICKET_PASSWORDYesStaff agent password

How It Works

This server authenticates as a staff agent through osTicket's web panel and operates using the same internal endpoints the browser uses:

  • Session auth — logs in via /scp/login.php, maintains session cookie
  • CSRF handling — automatically extracts and refreshes CSRF tokens
  • Ticket locking — acquires and releases locks for write operations (reply, note)
  • AJAX endpoints — uses /scp/ajax.php/* for assign, transfer, and status changes
  • HTML scraping — parses ticket data from the staff panel using Cheerio

No osTicket plugins, API keys, or server modifications required.

Compatibility

osTicket VersionStatus
v1.18.xTested
v1.17.xShould work (not verified)
v1.15–1.16May work with minor differences

The server adapts to dynamic form field names that osTicket generates per-session, so it should be resilient across minor versions.

Integration Tests

Run the test suite against a live osTicket instance:

OSTICKET_URL=http://localhost:8082 \
OSTICKET_EMAIL=agent@example.com \
OSTICKET_PASSWORD=secret \
npx tsx src/test-integration.ts

Contributing

PRs welcome. The main files:

  • src/mcp-server.ts — MCP tool definitions
  • src/osticket-client.ts — osTicket HTTP client (session, scraping, AJAX)
  • src/test-integration.ts — integration tests against a live instance

License

MIT

Reviews

No reviews yet

Sign in to write a review