Measures tickets against the ones your team already shipped: sections, length, labels, duplicates.
Connect Runs on your machine
claude mcp add ticket-ai-mcp -e TICKET_AI_TRACKER=<TICKET_AI_TRACKER> -e TICKET_AI_PROJECT=<TICKET_AI_PROJECT> -e TICKET_AI_GITLAB_URL=<TICKET_AI_GITLAB_URL> -e TICKET_AI_GITLAB_TOKEN=<TICKET_AI_GITLAB_TOKEN> -e TICKET_AI_JIRA_URL=<TICKET_AI_JIRA_URL> -e TICKET_AI_JIRA_EMAIL=<TICKET_AI_JIRA_EMAIL> -e TICKET_AI_JIRA_TOKEN=<TICKET_AI_JIRA_TOKEN> -e TICKET_AI_GITHUB_TOKEN=<TICKET_AI_GITHUB_TOKEN> -e TICKET_AI_REPO=<TICKET_AI_REPO> -e TICKET_AI_TICKET_LANGUAGE=<TICKET_AI_TICKET_LANGUAGE> -e TICKET_AI_CACHE_DIR=<TICKET_AI_CACHE_DIR> -- uvx ticket-ai-mcp==0.1.1
{
"mcpServers": {
"ticket-ai-mcp": {
"command": "uvx",
"args": [
"ticket-ai-mcp==0.1.1"
],
"env": {
"TICKET_AI_TRACKER": "<TICKET_AI_TRACKER>",
"TICKET_AI_PROJECT": "<TICKET_AI_PROJECT>",
"TICKET_AI_GITLAB_URL": "<TICKET_AI_GITLAB_URL>",
"TICKET_AI_GITLAB_TOKEN": "<TICKET_AI_GITLAB_TOKEN>",
"TICKET_AI_JIRA_URL": "<TICKET_AI_JIRA_URL>",
"TICKET_AI_JIRA_EMAIL": "<TICKET_AI_JIRA_EMAIL>",
"TICKET_AI_JIRA_TOKEN": "<TICKET_AI_JIRA_TOKEN>",
"TICKET_AI_GITHUB_TOKEN": "<TICKET_AI_GITHUB_TOKEN>",
"TICKET_AI_REPO": "<TICKET_AI_REPO>",
"TICKET_AI_TICKET_LANGUAGE": "<TICKET_AI_TICKET_LANGUAGE>",
"TICKET_AI_CACHE_DIR": "<TICKET_AI_CACHE_DIR>"
}
}
}
}
{
"mcpServers": {
"ticket-ai-mcp": {
"command": "uvx",
"args": [
"ticket-ai-mcp==0.1.1"
],
"env": {
"TICKET_AI_TRACKER": "<TICKET_AI_TRACKER>",
"TICKET_AI_PROJECT": "<TICKET_AI_PROJECT>",
"TICKET_AI_GITLAB_URL": "<TICKET_AI_GITLAB_URL>",
"TICKET_AI_GITLAB_TOKEN": "<TICKET_AI_GITLAB_TOKEN>",
"TICKET_AI_JIRA_URL": "<TICKET_AI_JIRA_URL>",
"TICKET_AI_JIRA_EMAIL": "<TICKET_AI_JIRA_EMAIL>",
"TICKET_AI_JIRA_TOKEN": "<TICKET_AI_JIRA_TOKEN>",
"TICKET_AI_GITHUB_TOKEN": "<TICKET_AI_GITHUB_TOKEN>",
"TICKET_AI_REPO": "<TICKET_AI_REPO>",
"TICKET_AI_TICKET_LANGUAGE": "<TICKET_AI_TICKET_LANGUAGE>",
"TICKET_AI_CACHE_DIR": "<TICKET_AI_CACHE_DIR>"
}
}
}
}
{
"servers": {
"ticket-ai-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"ticket-ai-mcp==0.1.1"
],
"env": {
"TICKET_AI_TRACKER": "<TICKET_AI_TRACKER>",
"TICKET_AI_PROJECT": "<TICKET_AI_PROJECT>",
"TICKET_AI_GITLAB_URL": "<TICKET_AI_GITLAB_URL>",
"TICKET_AI_GITLAB_TOKEN": "<TICKET_AI_GITLAB_TOKEN>",
"TICKET_AI_JIRA_URL": "<TICKET_AI_JIRA_URL>",
"TICKET_AI_JIRA_EMAIL": "<TICKET_AI_JIRA_EMAIL>",
"TICKET_AI_JIRA_TOKEN": "<TICKET_AI_JIRA_TOKEN>",
"TICKET_AI_GITHUB_TOKEN": "<TICKET_AI_GITHUB_TOKEN>",
"TICKET_AI_REPO": "<TICKET_AI_REPO>",
"TICKET_AI_TICKET_LANGUAGE": "<TICKET_AI_TICKET_LANGUAGE>",
"TICKET_AI_CACHE_DIR": "<TICKET_AI_CACHE_DIR>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
TICKET_AI_TRACKERRequired | Which tracker to read: gitlab, jira or github. |
TICKET_AI_PROJECTRequired | The project to measure. A GitLab path like acme/shop or its numeric id, a Jira project key like PROJ, or a GitHub owner/repo. |
TICKET_AI_GITLAB_URLOptional | Base URL of the GitLab instance, for example https://gitlab.example.com. Required when the tracker is gitlab. |
TICKET_AI_GITLAB_TOKENOptional, secret | GitLab personal access token. The read_api scope is enough; nothing here writes. |
TICKET_AI_JIRA_URLOptional | Base URL of the Jira instance. Cloud or self-hosted Server and Data Center; which one is detected from the instance. |
TICKET_AI_JIRA_EMAILOptional | Account email, for Jira Cloud's basic auth. Leave unset for a public board or for a Server personal access token. |
TICKET_AI_JIRA_TOKENOptional, secret | Jira API token from id.atlassian.com, or a Server personal access token on its own. Leave unset to read a public instance anonymously. |
TICKET_AI_GITHUB_TOKENOptional, secret | GitHub token with read access to the repository's issues. |
TICKET_AI_REPOOptional | Checkout to search when gathering context for a subject. Defaults to the working directory, which on a wrong guess produces confident nonsense - the report names the directory it searched. |
TICKET_AI_TICKET_LANGUAGEOptional | Force the language tickets should be written in, overriding what was measured in the corpus. Leave unset unless the board is mid-switch: a measurement beats a setting. |
TICKET_AI_CACHE_DIROptional | Where the learned profile is kept between runs. Defaults to .ticket-ai/ under the working directory. |
Details
| Package | [email protected] (PYPI, stdio) |
| First published | 11 Sep 2026 |
| Last updated | 11 Sep 2026 |
| Registry name | io.github.syrian963/ticket-ai-mcp |
More other servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
