Local-first AI operations dashboard exposing quota intelligence, token usage analytics, budget forecasting, and model recommendations to AI coding agents via Model Context Protocol
Niyantra provides 13 read-only tools with clear, domain-specific descriptions (avg ~150 chars). All tools have descriptions and most parameters are typed. However, critical gaps undermine production readiness: (1) No input schemas visible for 6 tools (quota_status, usage_intelligence, budget_forecast, analyze_spending, switch_recommendation, codex_status, quota_forecast, copilot_status, plugin_status), these accept empty objects or no parameters, but schema definitions are not shown in source. (2) Parameter descriptions are present but minimal (10-30 chars), lacking format constraints, ranges, or validation guidance. (3) No output schemas documented, LLMs cannot predict response structure for chaining. (4) No error handling guidance, tools return data or fail silently. (5) Tool names are descriptive but lack verb-noun consistency (e.g., 'quota_status' vs 'get_quota_status'). All tools are READ_ONLY, reducing risk, but lack of structured output documentation and error recovery patterns limits agent reliability.
Analyze AI subscription spending patterns. Returns category breakdown, monthly/annual totals, savings opportunities (annual billing, unused subs, category overlap), and budget status.
Recommend the best model to use in a quota group based on remaining quota, consumption rate, and time until reset. Groups: 'claude_gpt' (Claude + GPT models), 'gemini_unified' (Gemini Pool).
Compare the configured monthly budget against recurring subscription commitments. This surface does not project true usage-based spend because Niyantra does not yet persist a trustworthy daily spend ledger.
Get Codex/ChatGPT quota detection state. Shows if Codex CLI is installed, current plan, token expiry, and latest usage snapshot with 5-hour and 7-day window utilization.
Get GitHub Copilot detection state and usage. Shows if a PAT is configured, current plan (Pro/Pro+/Free/Business/Enterprise), premium interaction usage percentage, chat usage percentage, and latest snapshot. Requires a GitHub PAT with read:user scope.
No output schemas documented for any tool. LLMs cannot predict response structure, forcing them to guess field names and types for downstream chaining. This violates pattern:tool and pattern:response-shaper.
Input schemas missing or not visible for 9 of 13 tools. Tools accepting empty objects or optional parameters lack explicit schema definitions in source code. Cannot verify parameter types, constraints, or validation.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
Heuristically correlate git commits with nearby Claude Code token events. Each Claude event is assigned to at most one commit within the lookback window to avoid double counting, but the result remains attribution guidance rather than ground truth.
Check availability of a specific model or quota group. Accepts a model name (e.g. 'Claude Sonnet', 'Gemini Pro', 'GPT') and returns remaining quota, reset time, and usage rate if available.
Get the latest data from all installed external plugins (F18 Plugin System). Optionally filter by plugin_id. Returns each plugin's provider name, label, usage percentage, usage display string, plan type, and last capture timestamp. Plugins are external scripts in ~/.niyantra/plugins/ that track custom AI services.
Get time-to-exhaustion (TTX) forecasts for tracked Antigravity quota groups. Uses sliding-window rate calculations from recent snapshot history (last 60 min) for burn rate estimates. Returns per-group TTX with severity levels, confidence indicators, and estimated cost when pricing data is available.
Get quota status for all tracked Antigravity/Windsurf accounts. Returns per-account readiness with quota group percentages and reset timers.
Get a recommendation on which Antigravity/Windsurf account to use right now. Analyzes remaining quota, burn rate, and reset timers across all accounts. Returns 'switch' (use a different account), 'stay' (current is optimal), or 'wait' (all exhausted, reset imminent) with scoring breakdown.
Get observed token usage analytics from Claude Code JSONL sessions plus any provider rows already persisted into Niyantra's token_usage table. Coverage is Claude-heavy unless other providers have actually written token rows.
Get detailed usage intelligence for all tracked models including consumption rates, projected usage at reset, projected exhaustion times, and cycle history. Requires 30+ minutes of tracking data for rate calculations.
Parameter descriptions lack format constraints and validation guidance. E.g., 'days' parameter in token_usage_stats states 'default 30, max 365' but no minimum or type validation shown. 'provider' enum values not formally constrained in schema.
No error handling guidance. Tools return data or fail silently with no recovery hints. Pattern:recovery-guide not implemented, LLMs cannot self-correct on failures.
Tool names lack consistent verb-noun pattern. 'quota_status', 'model_availability', 'usage_intelligence' are noun-based; should be 'get_quota_status', 'check_model_availability', 'get_usage_intelligence' for clarity. Violates pattern:tool naming convention.