Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TICKET_AI_REPONoPath to the repository checkout if not the assistant's working directory.
TICKET_AI_PROJECTYesThe project identifier (e.g., acme/shop or numeric id).
TICKET_AI_TRACKERYesThe tracker to use: gitlab, jira, or github.
TICKET_AI_JIRA_APINoJira API type. Only needed if detection gets it wrong.auto
TICKET_AI_JIRA_URLNoThe URL of the Jira instance (e.g., https://acme.atlassian.net).
TICKET_AI_CACHE_DIRNoDirectory to cache the learned profile. Defaults to .ticket-ai/.
TICKET_AI_GITLAB_URLNoThe URL of the GitLab instance (e.g., https://gitlab.example.com).
TICKET_AI_JIRA_EMAILNoEmail for Jira Cloud authentication.
TICKET_AI_JIRA_TOKENNoJira API token or personal access token.
TICKET_AI_UI_LANGUAGENoLanguage for UI buttons and headings.
TICKET_AI_GITHUB_TOKENNoGitHub personal access token.
TICKET_AI_GITLAB_TOKENNoGitLab personal access token (read_api scope is enough). Optional on public projects.
TICKET_AI_TICKET_LANGUAGENoLanguage 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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
learn_conventionsA

Learn how this team writes tickets, and cache the result.

Slow: it reads the comments and linked changes of up to sample closed tickets, which is a few hundred API calls. Call it once per project, not once per question.

Pass from_tickets when the user can name good examples - those are taken as given and nothing is filtered out. Leave it empty and the tracker is mined instead: closed tickets are ranked by whether a merge request shipped for them, whether anyone had to reopen them, and how many clarifying questions they drew before work started.

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 .github/ISSUE_TEMPLATE or .gitlab/issue_templates from the checkout and lines each field up against how often tickets actually carry it. The gap is the finding, and it runs both ways:

  • A required field almost nobody fills in is a form asking for something people cannot easily supply. Say so: the cheap fix is to change the form, not to nag the team.

  • A section most tickets carry that no form mentions is a convention the project grew and never wrote down. Adding it to the template is how it survives the next person who joins.

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 ticket_template, then write the ticket yourself. This returns evidence, not prose - and specifically the evidence you cannot get by reading the repository:

  • which past tickets covered this ground, so you can say whether this is a duplicate before anyone spends a week on it;

  • which files the merge requests for those tickets actually changed. That exists only in the tracker's history. It is usually the fastest way to find where the work will land, and it is worth naming in the ticket.

  • which files in the checkout mention the subject, as a starting point for your own reading.

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 review_ticket runs, so a draft that passes here passes there.

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 review_ticket for the detail on the ones that matter.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 8 tools

Disambiguation4/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness5/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues