This documentation always describes the latest published version.
| Prerequisite | Note |
|---|---|
| Node.js 18 or higher | engines in package.json requires >=18.0.0 |
| npm | To install dependencies and to build |
| osTicket with the REST API enabled | According to their documentation, the plugins below run on osTicket 1.18.x |
| Plugin API Endpoints | Provides the endpoints for reading, searching, changing, deleting, statistics, attachment download and subtickets |
| Plugin API Key Wildcard | Provides the endpoint /api/wildcard/tickets.json, which the tool osticket_create_ticket always calls |
| Plugin Subticket Manager | Only for the four subticket tools |
The wildcard endpoint also accepts keys with the IP 0.0.0.0 from any source IP. According to the plugin documentation this is meant for development environments only. Bind production keys to the fixed IP of the machine that runs the MCP server.
The server reads its .env file from the fixed path ~/.claude/mcp-servers/osticket/.env and writes its log file to ~/.claude/mcp-servers/osticket/logs/server.log. Clone the repository into that directory.
git clone https://github.com/markus-michalski/claude-mcp-osTicket.git ~/.claude/mcp-servers/osticket
cd ~/.claude/mcp-servers/osticket
npm install
npm run build
npm run build compiles the TypeScript sources to dist/. The entry point is dist/index.js.
cp .env.example .env
Fill in at least OSTICKET_API_URL and OSTICKET_API_KEY. All variables are listed on the page Configuration.
OSTICKET_API_URL=https://tickets.example.com
OSTICKET_API_KEY=your-api-key
If the directory lives elsewhere, the server only finds the
.envfile when it sits in the working directory of the process. It is more reliable then to pass the variables throughenvin the MCP client.
The server is a stdio server. The client starts it with the command node and the path to dist/index.js. In Claude Code, for example:
claude mcp add -s user osticket node ~/.claude/mcp-servers/osticket/dist/index.js
Alternatively, add the server to your client's MCP configuration:
{
"mcpServers": {
"osticket": {
"type": "stdio",
"command": "node",
"args": ["/home/your-name/.claude/mcp-servers/osticket/dist/index.js"]
}
}
}
Restart the client afterwards. On startup the server runs a health check against /api/tickets-stats.php. If it fails, the server writes a warning to the log and keeps running.
cd ~/.claude/mcp-servers/osticket
git pull
npm install
npm run build
Restart the MCP client afterwards so it loads the new build.
osticket entry from the MCP configuration, in Claude Code with claude mcp remove osticket.~/.claude/mcp-servers/osticket. It also contains .env and the log files.