Skip to main content
Glama

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

  1. Install the package globally:

    npm install --global @devpeak/hit-mcp
  2. Generate an API token in HIT: click your avatar (top right) → Account settingsSecurityAPI tokensCreate API token.

  3. Configure your MCP client with HIT_BASE_URL (your HIT instance, e.g. https://support.example.com) and HIT_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-mcp

Cursor

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_queues

List all support queues you have access to — get an overview of which areas (IT, maintenance, administration, etc.) exist.

list_tickets

Browse and search tickets in a queue. Filter by open/closed status, search by subject, paginate. Each ticket links to HIT's web interface.

get_ticket

Fetch full details of a single ticket — description, priority, due dates, history.

list_templates

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 build

Copy .env.example to .env, fill in HIT_BASE_URL and HIT_API_TOKEN, then run:

npm start

The 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 tools
get_ticketA

Get full details of a single ticket including description, priority, due date, and a link to the web UI

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketYesTicket ID

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
queueYesQueue ID

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
limitNoMax results per page (default: 50)
queueYesQueue ID
closedNoList closed tickets instead of open ones (default: false)
searchNoSearch term matched against subject and submitter email

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 4 tool updatesv0.1.0
    • First observedget_ticket
    • First observedlist_queues
    • First observedlist_templates
    • First observedlist_tickets

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct resource: individual ticket details, queues, templates, and ticket lists. No overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with underscores: get_ticket, list_queues, list_templates, list_tickets.

Tool Count4/5

4 tools is a reasonable number for a read-only ticket system interface, each serving a clear purpose without being excessive.

Completeness2/5

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

ActivityStale
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Request Tracker REST2 API, enabling ticket, queue, user, and asset management via natural language.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A 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

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