StuMason/coolify-mcp
TypeScript
Pull Request Opened
PR #129 opened: feat: v2.7.0 — teams, cloud tokens, docs search, version caching
Summary
Three new tools (35 → 38) plus version caching.
teams— list, get, get_members, get_current, get_current_members. Wraps existing client methods.cloud_tokens— Hetzner/DigitalOcean: list, get, create, update, delete, validate. Wraps existing client methods.search_docs— Full-text search across Coolify documentation. Fetchescoolify.io/docs/llms-full.txton first call (943ms), indexes 1,545 chunks via MiniSearch (BM25), serves subsequent searches in ~1ms. Returns ~849 tokens for 5 results.- Version caching —
getVersion()caches result after first call,getCachedVersion()getter for diagnostics.
New dependency
minisearch— 826KB, zero transitive deps, BM25 full-text search. The LLM handles semantic understanding; we just need good ranking.
Context budget
search_docs returns 5 results at ~849 tokens total. Each result: title, URL, description, 300-char snippet, score. No full pages dumped into context.
Test plan
- 262 unit tests passing (17 new: 15 docs-search, 2 version caching, method existence checks)
- Full smoke test against live Coolify server (beta.463) — all existing endpoints still work
- Teams: list, getCurrentTeam, getCurrentTeamMembers, getTeam(0), getTeamMembers(0) verified live
- Cloud tokens: full CRUD lifecycle tested live (create, get, validate, update, delete)
- search_docs: tested against real coolify.io docs — correct results for "docker compose env vars", "502 bad gateway", "health check configuration"
- Version caching: verified cache hit, getCachedVersion(), error-then-retry path
- Survived unplanned Coolify version bump (462 → 463) mid-session with zero issues
- Code review: fixed critical issue (loadAndIndex error recovery), added fetch timeout, defensive index check
+640
additions
-6
deletions
11
files changed