Markus Michalski FAQ

osTicket MCP Server: Security

Security of the osTicket MCP Server: where the API key is stored and how it is sent, TLS, access to local files, logging, permissions, and behavior on errors and input.

Deutsche Version

Back to overview

osTicket MCP Server: Security

This documentation always describes the latest published version.

This page describes what the server does with credentials and files and what you have to secure yourself.

API key

Topic Behavior
Storage In plain text in the .env file or in the environment variables the MCP client passes to the process. The server sets no file permissions
Transmission As the header X-API-Key on every request
Output The startup report on stderr shows [SET] instead of the key. The URL and the default values appear in plain text
Input check A key containing a line break is rejected so that nobody can inject headers

The .env file is listed in the project's .gitignore. Also restrict the file permissions, for example with chmod 600 ~/.claude/mcp-servers/osticket/.env.

Connection to osTicket

API key permissions

The key decides what Claude may do in osTicket. Give it only the permissions you need.

Goal Permissions
Read only can_read_tickets (also covers search, statistics and the status list)
Create tickets The key's create permission in osTicket
Change tickets can_update_tickets
Delete tickets can_delete_tickets. Off by default in the plugin, enable it only deliberately
Subtickets can_manage_subtickets

The tool osticket_delete_ticket deletes permanently and cannot be undone. If the permission is missing, the plugin rejects the call.

The endpoint /api/wildcard/tickets.json, which ticket creation uses, checks the API key in the plugin API Key Wildcard. The creation route POST /api/tickets.json of the plugin API Endpoints, in contrast, does not check key and permission itself. The server does not use that route.

Access to local files

The server loads attachments from any path that arrives as a parameter. There is no list of allowed directories. Whoever controls the tool call can attach any file the process may read, up to 10 MB, to a ticket.

This matters when Claude reads ticket content written by someone else: a ticket can contain instructions that lure the model into a tool call. Confirm tool calls with attachments in the MCP client instead of approving them in bulk.

When downloading, the server writes the file to the operating system's temporary directory. The file name is sanitized and gets a random prefix so nothing is overwritten. The files stay until you delete them.

Input

Errors and logs

Data in the model context

Everything a tool returns, that is tickets, messages and sender addresses, ends up in the context of your MCP client's model. Consider beforehand whether the ticket content may be processed there.