Standing Eve agent and MCP server for scheduled PR, issue, and snapshot status boards.
Server has 4 tools with clear verb-based names and reasonable descriptions (avg 156 chars). All tools have descriptions meeting the 10-1024 char baseline. However, critical gaps exist: (1) input schemas are minimal or absent for most tools, get_board and trigger_tick have empty input objects with no parameter descriptions; (2) output schemas are completely undocumented, no structured response definitions visible in source; (3) parameter descriptions are sparse, resolve_addressed_review_threads and dismiss_stale_bot_reviews accept only a 'pr' string with minimal guidance on format; (4) no error handling guidance or recovery paths documented. Tool names follow verb_noun pattern well (get_, trigger_, resolve_, dismiss_), but lack of schema rigor and output documentation significantly limits LLM usability.
Dismiss stale CHANGES_REQUESTED reviews from bot accounts where a fix commit landed after the review. Mechanical eligibility only, no judgment call — mutates GitHub. Input: a PR as 'owner/repo#123' or a github.com PR URL.
Read the current PR status board. Returns the full board JSON as structured content and the rendered markdown as text. Read-only; never triggers a tick.
Resolve unresolved GitHub PR review threads whose file was changed in a commit landed after the thread's originating review. Mechanical eligibility only, no judgment call — mutates GitHub. Input: a PR as 'owner/repo#123' or a github.com PR URL.
Run one PR-board tick now (same logic as the cron schedule) and return its result. 'skipped_overlap' means a tick was already running — the board will be refreshed by that tick instead; retry later rather than immediately.
Output schemas completely undocumented. get_board claims to return 'full board JSON as structured content and rendered markdown as text' but no schema definition visible. LLMs cannot plan downstream operations without knowing response field names and types.
Input schemas are minimal. get_board and trigger_tick have empty input objects ({}). resolve_addressed_review_threads and dismiss_stale_bot_reviews accept only a 'pr' string parameter with minimal format guidance ('owner/repo#123 or a github.com PR URL'). No enum constraints, no validation rules, no examples of valid formats.
No error handling guidance. Tools like resolve_addressed_review_threads and dismiss_stale_bot_reviews mutate GitHub state but provide no documentation of failure modes, retryability, or recovery paths. LLMs cannot determine whether to retry, ask the user, or abort.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Parameter descriptions are generic. The 'pr' parameter in resolve_addressed_review_threads and dismiss_stale_bot_reviews is described only as 'PR reference as owner/repo#123 or a github.com PR URL', no guidance on which format is preferred, whether both are equally valid, or what happens if the PR is not found.
No pagination or result limits documented. get_board returns 'full board JSON' with no indication of size limits, pagination support, or guidance on handling large boards.