A developer tool and MCP server for Go projects that provides LLM-powered assistance with code analysis, file operations, and subprocess execution
Apogee has 8 tools with basic descriptions and input schemas, but significant gaps in parameter documentation and output schema specification. Tool names follow verb_noun convention (read_file, write_file, grep, list_dir, find_files, copy_file, terminal, sub_agent), which is good. However, parameter descriptions are minimal or missing entirely. For example, 'grep' has only 2 parameters with brief descriptions; 'terminal' accepts a bare 'command' string with no validation guidance or safety warnings. No output schemas are documented anywhere in the source. Error handling is absent, no guidance on what happens on failure, no recovery hints. The 'terminal' tool is particularly risky: it executes arbitrary shell commands with no input sanitization, no dry-run option, and no permission gates. The 'sub_agent' tool delegates to child LLM sessions but provides no documentation of what the sub-agent can access, what constraints apply, or how failures are handled. Overall, definitions are skeletal, sufficient for basic operation but well below production quality.
Copy a file from a read-only location to the workspace scratch directory
Find files matching a pattern in the workspace or read-only library roots
Search for patterns in files within the workspace or read-only library roots
List the contents of a directory in the workspace or read-only library roots
Read the contents of a file from the workspace or read-only library roots
Delegate a task to a sub-agent (child LLM session) with its own conversation and tool access
Execute a shell command in the workspace with access to the Go toolchain and environment
Write or create a file in the workspace scratch directory
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing what each tool returns.
terminal tool accepts arbitrary shell commands with no input validation, sanitization, or safety warnings. No dry-run option, no confirmation step for destructive operations. Extreme security and safety risk.
Parameter descriptions are minimal or absent. 'grep' pattern param lacks format guidance (regex syntax?). 'terminal' command param has no safety constraints. 'sub_agent' prompt param has no scope documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
No error handling guidance. Tools provide no recovery hints, categorization of errors as retryable/user-fixable/fatal, or actionable error messages. LLMs cannot self-correct on failure.
sub_agent tool lacks permission gates and scope documentation. No description of what resources the sub-agent can access, what constraints apply, or how failures propagate. Delegation without guardrails.