{
  "slug": "io-github-syrian963-ticket-ai-mcp",
  "name": "io.github.syrian963/ticket-ai-mcp",
  "title": "Ticket AI",
  "description": "Measures tickets against the ones your team already shipped: sections, length, labels, duplicates.",
  "version": "0.1.1",
  "publishedAt": "2026-09-11T11:46:27.917279Z",
  "updatedAt": "2026-09-11T11:46:27.917279Z",
  "repoUrl": "https://github.com/syrian963/Ticket-AI-MCP",
  "websiteUrl": "https://github.com/syrian963/Ticket-AI-MCP",
  "namespace": {
    "type": "github",
    "owner": "syrian963"
  },
  "kind": "local",
  "packages": [
    {
      "registryType": "pypi",
      "identifier": "ticket-ai-mcp",
      "version": "0.1.1",
      "transport": "stdio",
      "runtimeHint": "uvx"
    }
  ],
  "remotes": [],
  "envVars": [
    {
      "name": "TICKET_AI_TRACKER",
      "isSecret": false,
      "isRequired": true,
      "description": "Which tracker to read: gitlab, jira or github."
    },
    {
      "name": "TICKET_AI_PROJECT",
      "isSecret": false,
      "isRequired": true,
      "description": "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."
    },
    {
      "name": "TICKET_AI_GITLAB_URL",
      "isSecret": false,
      "isRequired": false,
      "description": "Base URL of the GitLab instance, for example https://gitlab.example.com. Required when the tracker is gitlab."
    },
    {
      "name": "TICKET_AI_GITLAB_TOKEN",
      "isSecret": true,
      "isRequired": false,
      "description": "GitLab personal access token. The read_api scope is enough; nothing here writes."
    },
    {
      "name": "TICKET_AI_JIRA_URL",
      "isSecret": false,
      "isRequired": false,
      "description": "Base URL of the Jira instance. Cloud or self-hosted Server and Data Center; which one is detected from the instance."
    },
    {
      "name": "TICKET_AI_JIRA_EMAIL",
      "isSecret": false,
      "isRequired": false,
      "description": "Account email, for Jira Cloud's basic auth. Leave unset for a public board or for a Server personal access token."
    },
    {
      "name": "TICKET_AI_JIRA_TOKEN",
      "isSecret": true,
      "isRequired": false,
      "description": "Jira API token from id.atlassian.com, or a Server personal access token on its own. Leave unset to read a public instance anonymously."
    },
    {
      "name": "TICKET_AI_GITHUB_TOKEN",
      "isSecret": true,
      "isRequired": false,
      "description": "GitHub token with read access to the repository's issues."
    },
    {
      "name": "TICKET_AI_REPO",
      "isSecret": false,
      "isRequired": false,
      "description": "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."
    },
    {
      "name": "TICKET_AI_TICKET_LANGUAGE",
      "isSecret": false,
      "isRequired": false,
      "description": "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."
    },
    {
      "name": "TICKET_AI_CACHE_DIR",
      "isSecret": false,
      "isRequired": false,
      "description": "Where the learned profile is kept between runs. Defaults to .ticket-ai/ under the working directory."
    }
  ],
  "category": "productivity",
  "subcategory": "tasks",
  "company": "",
  "categoryAuto": true,
  "checks": [
    {
      "id": "source-linked",
      "label": "Source repository linked",
      "result": "pass",
      "detail": "https://github.com/syrian963/Ticket-AI-MCP"
    },
    {
      "id": "version-pinned",
      "label": "Version pinned",
      "result": "pass",
      "detail": "Every package has an explicit version"
    },
    {
      "id": "secrets-requested",
      "label": "Secrets requested",
      "result": "warn",
      "detail": "Asks for 3 secrets: TICKET_AI_GITLAB_TOKEN, TICKET_AI_JIRA_TOKEN, TICKET_AI_GITHUB_TOKEN"
    },
    {
      "id": "known-registry",
      "label": "Known package registry",
      "result": "pass",
      "detail": "All packages come from npm, PyPI, OCI, NuGet or MCPB"
    },
    {
      "id": "namespace",
      "label": "Namespace ownership",
      "result": "info",
      "detail": "Name verified via GitHub account syrian963"
    },
    {
      "id": "meta-text",
      "label": "Registry text aimed at the AI",
      "result": "pass",
      "detail": "Description and settings contain no hidden characters or instructions to the AI"
    },
    {
      "id": "install-scripts",
      "label": "Install scripts",
      "result": "pass",
      "detail": "ticket-ai-mcp 0.1.1 has no setup.py; nothing runs at install"
    },
    {
      "id": "code-flags",
      "label": "Code red flags",
      "result": "pass",
      "detail": "Read 31 files in ticket-ai-mcp 0.1.1: no obfuscation, encoded execution, credential reads or data-collection endpoints found"
    },
    {
      "id": "ai-text",
      "label": "Text aimed at the AI",
      "result": "pass",
      "detail": "No hidden characters or instructions to the AI in 31 files, including comments and the README"
    }
  ],
  "scannedAt": "2026-10-29",
  "level": "Scanned",
  "install": [
    {
      "label": "Claude Desktop (pypi)",
      "kind": "claude_desktop_json",
      "text": "{\n  \"mcpServers\": {\n    \"ticket-ai-mcp\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"ticket-ai-mcp==0.1.1\"\n      ],\n      \"env\": {\n        \"TICKET_AI_TRACKER\": \"<your value>\",\n        \"TICKET_AI_PROJECT\": \"<your value>\"\n      }\n    }\n  }\n}"
    }
  ],
  "curated": true,
  "stars": 0,
  "archived": false,
  "pushedAt": "2026-09-12T11:38:05Z",
  "health": {
    "score": 49,
    "parts": {
      "popularity": 0.12271478031495592,
      "activity": 0.8313528297828592,
      "issues": null,
      "security": 0.8
    },
    "fail": 0,
    "warn": 1,
    "raw": {
      "stars": 0,
      "forks": 0,
      "downloads": 19,
      "hn": null,
      "issuesOpen": 0,
      "issuesClosed": 0,
      "prsMerged": 1,
      "commits90": 36,
      "release": "2026-09-11T11:46:35Z",
      "pushed": "2026-09-12T11:38:05Z",
      "growth": null,
      "growthDays": null,
      "archived": false
    },
    "at": "2026-10-31T07:42:38.200Z"
  }
}
