hit-mcp
Click on "Install 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., "@hit-mcplist open tickets in queue 'Support'"
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.
hit-mcp
An MCP server that connects an AI agent (Claude, Cursor, VS Code, etc.) to HIT — Devpeak's ticket management system. Read only: the agent can browse ticket queues, search tickets, read full ticket history, and use ticket templates — but it cannot modify any data.
Quick start
Install the package globally:
npm install --global @devpeak/hit-mcpGenerate an API token in HIT: click your avatar (top right) → Account settings → Security → API tokens → Create API token.
Configure your MCP client with
HIT_BASE_URL(your HIT instance, e.g.https://support.example.com) andHIT_API_TOKEN(the token from step 2). See examples below.
Configuration per client
Claude Code
claude mcp add hit -e HIT_BASE_URL=https://your-domain-here -e HIT_API_TOKEN=your-token -- npx hit-mcpCursor
Add the following to .cursor/mcp.json:
{
"mcpServers": {
"hit": {
"command": "hit-mcp",
"env": {
"HIT_BASE_URL": "https://support.example.com",
"HIT_API_TOKEN": "..."
}
}
}
}OpenCode
Add a new key under "mcp" in ~/.config/opencode/opencode.jsonc, something like:
{
"mcp": {
"your-server-name": {
"type": "local",
"command": ["npx", "hit-mcp"],
"environment": {
"HIT_BASE_URL": "https://support.example.com",
"HIT_API_TOKEN": "..."
}
}
}
}Related MCP server: RT MCP Server
What can the agent do?
Tool | Description |
| List all support queues you have access to — get an overview of which areas (IT, maintenance, administration, etc.) exist. |
| Browse and search tickets in a queue. Filter by open/closed status, search by subject, paginate. Each ticket links to HIT's web interface. |
| Fetch full details of a single ticket — description, priority, due dates, history. |
| List ticket templates for a queue — useful for seeing what standard workflows are available. |
Note: All access is read-only — the agent can not create, update, or delete tickets.
Building and developing locally
npm install
npm run buildCopy .env.example to .env, fill in HIT_BASE_URL and HIT_API_TOKEN, then run:
npm startThe server starts on stdio. Point your MCP client at the absolute path:
{
"mcpServers": {
"hit": {
"command": "node",
"args": ["/path/to/hit-mcp/dist/index.js"],
"env": {
"HIT_BASE_URL": "https://support.example.com",
"HIT_API_TOKEN": "..."
}
}
}
}Available Tools
4 toolsget_ticketA
Get full details of a single ticket including description, priority, due date, and a link to the web UI
| Name | Required | Description | Default |
|---|---|---|---|
| ticket | Yes | Ticket ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behaviors like read-only nature, but it only lists returned fields. It does not explicitly state the tool is non-destructive or safe, though it's implied by 'get'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 16-word sentence that is clear and front-loaded with the purpose. No redundancy or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what the tool does and what fields are returned. However, it does not explain where to obtain the ticket ID (e.g., from list_tickets) or handle errors when ticket not found. For a simple retrieval tool, it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the parameter with 'Ticket ID' description. The overall description adds value by listing the fields returned, giving context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves full details of a single ticket, listing specific fields (description, priority, due date, web link). It distinguishes from sibling tools like list_tickets which likely return summaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The user must infer that this tool is for detailed view of one ticket, while list_tickets is for summaries. No explicit when-to-use or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_queuesA
List all support queues the authenticated user has access to
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states it lists all queues the user has access to, implying a read operation and a filtered result. However, it does not disclose behavior for edge cases like no queues or access errors; adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no unnecessary words. It is front-loaded with the verb 'list' and the resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no annotations, no output schema), the description is complete enough for an agent to understand its purpose and scope. It could mention the return type but is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters and schema coverage is 100%. With no parameters, the description adds sufficient meaning beyond the schema, earning a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all support queues accessible by the authenticated user, using a specific verb and resource. It distinguishes itself from sibling tools by the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when needing a list of accessible queues) but does not provide explicit when-not-to-use or alternative tool guidance. Sibling tools are for different resources, so context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesB
List ticket templates available in a queue
| Name | Required | Description | Default |
|---|---|---|---|
| queue | Yes | Queue ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present. The description only states that it lists templates, but does not disclose behavioral details such as pagination, filtering, rate limits, return format, or whether it performs a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. However, it could include more information without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter, no output schema, and no annotations, the description is minimal but adequate for a straightforward list operation. It does not explain the return structure or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (parameter 'queue' with description 'Queue ID'). The description reinforces the parameter's role but adds minimal additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', the resource 'ticket templates', and the scope 'available in a queue'. It distinguishes from sibling tools like get_ticket (single ticket), list_queues, and list_tickets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives or when not to use it. Sibling tools are listed but not differentiated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ticketsA
List tickets in a queue. Returns open tickets by default; set closed=true for closed tickets. Supports search and pagination. Each ticket includes a link to its page in the web UI.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| limit | No | Max results per page (default: 50) | |
| queue | Yes | Queue ID | |
| closed | No | List closed tickets instead of open ones (default: false) | |
| search | No | Search term matched against subject and submitter email |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses return behavior (open by default, web UI link) but omits details like rate limits, auth, or pagination limits beyond schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, no fluff, main action stated first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a list tool; mentions search, pagination, and UI links. Missing error handling or rate limits, but acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters (100%). The description adds context (closed flag, search/pagination) but does not significantly enhance schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists tickets in a queue, with default open tickets. It distinguishes from siblings like get_ticket (single ticket) and list_queues (queues).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains default behavior and how to get closed tickets. However, it does not explicitly advise when to use alternatives like get_ticket for a specific ticket.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v0.1.0- First observed
get_ticket - First observed
list_queues - First observed
list_templates - First observed
list_tickets
TDQS
Each tool targets a distinct resource: individual ticket details, queues, templates, and ticket lists. No overlap in functionality.
All tools follow a consistent verb_noun pattern with underscores: get_ticket, list_queues, list_templates, list_tickets.
4 tools is a reasonable number for a read-only ticket system interface, each serving a clear purpose without being excessive.
The tool set is limited to read operations (list/get) and lacks any create, update, delete, or action tools for tickets, leaving significant gaps for a full workflow.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Remote MCP server for managing Muninx tickets, messages, ticket search, and support analytics.
Read-only MCP server for turva.dev, an agent-readiness audit and advisory service.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Read-only MCP server for AIStatusDashboard status, incidents, metrics, and fallback recommendations.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceRead-only MCP server for querying Movidesk tickets through the public Movidesk API.14-
- AlicenseAqualityBmaintenanceRead-only MCP server for Request Tracker (RT) via REST2 API, enabling ticket search, retrieval, correspondence viewing, attachment download, and hierarchy exploration.6231MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Request Tracker REST2 API, enabling ticket, queue, user, and asset management via natural language.MIT
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server for the Humanitix Public API that exposes nine tools to list events, fetch event details, list orders/tickets, check-in counts, and sales summaries.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DevpeakAB/hit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server