andreferraroandCursor 9ef746aa4f
sonar / sonar (push) Skipped
sonar / sonar (pull_request) Failing after 1m35s
fix: publish LCOV in Sonar CI so PR quality gate passes
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 15:03:49 -03:00

TicketLab_MCP

Quality Gate Status

Hello world — repositório de testes MCP do TicketLab.

Quick start

npm ci
cp .env.example .env   # preencha LITELLM_API_KEY
npm run migrate
npm start

Requires Node.js 22+ and npm (package-lock.json).

SQLite

npm run migrate

Cria/atualiza SQLITE_PATH (default data/ticketlab.sqlite) com a migration migrations/001_tickets.sql.

LiteLLM

Configure no .env (veja .env.example):

  • LITELLM_BASE_URL
  • LITELLM_MODEL
  • LITELLM_API_KEY

Observability lab stack

Local Grafana + Tempo + Loki + OTEL Collector (+ Prometheus):

docker compose up -d
What Where
Grafana UI http://localhost:3001 (admin / admin)
Demo dashboard http://localhost:3001/d/ticketlab-demo (folder TicketLab; starred)
OTLP HTTP http://localhost:4318
OTLP gRPC localhost:4317
Tempo http://localhost:3200
Loki http://localhost:3100
Prometheus http://localhost:9090

Copy .env.example → .env for LiteLLM, SQLite e OTLP. Datasources (Prometheus, Loki, Tempo) are provisioned automatically. Stop with docker compose down.

Scripts

  • npm run build — compile TypeScript to dist/
  • npm start — hello world with OTLP (trace → Tempo, log → Loki, metric → Prometheus)
  • npm run typecheck — type-check without emitting
  • npm run migrate — apply SQLite migrations
  • npm test — build and run tests

CI / quality gate

Pushes and PRs into develop, release/** and main run SonarQube via Gitea Actions. Merge is blocked until the Quality Gate passes.

Plane MCP (self-hosted CE)

Plane CE 1.3.1 does not expose Cloud-only routes such as /projects-lite/. The Cursor config in .cursor/mcp.json therefore runs plane-ce-mcp locally via uvx with PLANE_BASE_URL=https://plane.app.andreferraro.com (requires uv on PATH).

Workarounds on CE: always pass project_id to list_work_items after list_projects; workspace-wide list_work_items and count_work_items may still fail.

S
Description
No description provided
Readme
156 KiB
Languages
Python 100%