ticket-ai
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TICKET_AI_REPO | No | Path to the repository checkout if not the assistant's working directory. | |
| TICKET_AI_PROJECT | Yes | The project identifier (e.g., acme/shop or numeric id). | |
| TICKET_AI_TRACKER | Yes | The tracker to use: gitlab, jira, or github. | |
| TICKET_AI_JIRA_API | No | Jira API type. Only needed if detection gets it wrong. | auto |
| TICKET_AI_JIRA_URL | No | The URL of the Jira instance (e.g., https://acme.atlassian.net). | |
| TICKET_AI_CACHE_DIR | No | Directory to cache the learned profile. Defaults to .ticket-ai/. | |
| TICKET_AI_GITLAB_URL | No | The URL of the GitLab instance (e.g., https://gitlab.example.com). | |
| TICKET_AI_JIRA_EMAIL | No | Email for Jira Cloud authentication. | |
| TICKET_AI_JIRA_TOKEN | No | Jira API token or personal access token. | |
| TICKET_AI_UI_LANGUAGE | No | Language for UI buttons and headings. | |
| TICKET_AI_GITHUB_TOKEN | No | GitHub personal access token. | |
| TICKET_AI_GITLAB_TOKEN | No | GitLab personal access token (read_api scope is enough). Optional on public projects. | |
| TICKET_AI_TICKET_LANGUAGE | No | Language to write tickets in. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| learn_conventionsA | Learn how this team writes tickets, and cache the result. Slow: it reads the comments and linked changes of up to Pass |
| house_styleA | What this team's tickets look like: template, length, labels, habits. Reads the cached profile. Says so plainly if none has been learned yet rather than returning something empty that looks like an answer. |
| ticket_templateA | The skeleton to fill in when writing a new ticket here. Use this before drafting, not after. It returns the sections this team actually uses and the length they actually write - then write the ticket yourself. The server has no opinion about the content. |
| template_gapsA | Compare the issue template this repository declares with the tickets it gets. Reads
Use this when asked how to improve a board rather than one ticket. It is the only tool here that reads what the project said it wanted, instead of only what it does. |
| ticket_contextA | Gather what is known about a subject before you write the ticket for it. Call this together with
Read the files it points at before drafting. The list is a search result, not an understanding of the code, and it will include things that merely share a word. |
| review_draftA | Check a ticket you have written but not created yet. Call this on your own draft before showing it to the user, and fix
what it finds rather than reporting it. It is the same measurement
This exists so the check happens before the point of no return. Creating the ticket first notifies whoever watches the board and turns every fix into an edit with a history. |
| review_ticketA | Measure one ticket against the learned house style. Every finding cites a count over the exemplar sample. Repeat those numbers to the user - they are the difference between this and generic advice. |
| review_open_ticketsA | Review every open ticket and list them least-aligned first. A planning tool: the answer to "what needs tidying before we can estimate
any of this". One line per ticket, so call |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Most tools have clear, distinct purposes: house_style and learn_conventions are related but house_style reads the cache while learn_conventions populates it, which is well-communicated. review_ticket and review_draft are similar but review_draft explicitly targets unpublished drafts)Skip, so they are distinguishable. template_gaps and ticket_template serve different functions (gap analysis vs skeleton). The one potential confusion is review_ticket and review_draft, but the descriptions clearly differentiate them.
Most tools follow a noun_action pattern (e.g., learn_conventions, review_ticket, review_open_tickets), but there are inconsistent verb placements and some names are less clear: house_style is a noun phrase, ticket_template is a noun phrase, and template_gaps is a noun phrase without a verb. This mixes patterns (verb-first vs noun-first) and some names are not imperative verbs, which is inconsistent.
With 8 tools, the count is well within the ideal 3-15 range. Each tool has a specific role in the ticket lifecycle: learning conventions, retrieving templates, gathering context, reviewing drafts, reviewing created tickets, and reviewing the open board. No tool feels redundant, and the set is tightly scoped to the server's purpose of ticket style analysis and validation.
The tool set covers the full lifecycle: learning conventions (learn_conventions, house_style), generating templates (ticket_template), gathering context (ticket_context), checking gaps (template_gaps), and reviewing both drafts and existing tickets (review_draft, review_ticket), plus batch review (review_open_tickets). There are no obvious missing operations for the stated purpose; if anything, the coverage is thorough.