Server has 6 tools with clear verb-based naming (get_, list_, search_, initialize_, clear_). Descriptions are present and reasonably detailed (100-250 chars), explaining WHAT and WHEN. However, input schemas lack formal type constraints (no enums, no min/max bounds), and output schemas are entirely undocumented, LLMs cannot predict response structure. Error handling is minimal; tools return plain strings with no recovery guidance. Parameters lack descriptions in schema (only in docstrings). No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Composition is sound: each tool has one responsibility, and naming is unambiguous.
Delete the workflow index (ChromaDB collections). Removes all indexed data. You will need to run initialize_index() again before the query tools return results.
Look up Ghidra API documentation for a class or method. Supports fuzzy and partial matching — no fully qualified path needed.
Return metadata about the currently built index. Shows the Ghidra version the index was built from, when it was indexed, and how many workflows and API classes are stored.
Search for Ghidra API workflows matching a task description. Returns ranked workflow call chains showing the correct API call sequence for accomplishing the described task. Each result includes ordered API calls with data-flow dependencies and source code.
Build the Ghidra API workflow index (RAG database). Downloads Ghidra source from GitHub (or uses a local copy) and builds the searchable workflow index. Must be run once before the other tools will return results. WARNING: This is a long-running operation. Cloning Ghidra and processing its source files may take 10–30 minutes depending on network and CPU speed.
Output schemas completely undocumented. All 6 tools return plain strings with no structured schema. LLMs cannot predict response fields, forcing them to parse unstructured text and guess at downstream tool inputs.
Input schemas lack formal constraints. 'task_description' and 'name' parameters are bare strings with no length limits, regex patterns, or enum values. No min/max for numeric bounds. Invites hallucinated or invalid inputs from LLMs.
No tool annotations despite clear risk levels. 'clear_index' and 'initialize_index' are destructive/long-running but lack destructiveHint or progress indicators. Agents cannot reason about side effects or plan accordingly.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Find Ghidra APIs commonly used alongside a given class or method. Returns co-occurring APIs based on real usage patterns in Ghidra source code.
Error handling returns plain strings with no recovery guidance. 'No matching workflows found' and 'Index is empty' give no actionable next steps. Agents cannot distinguish retryable from fatal errors.
Parameter descriptions exist only in Python docstrings, not in JSON Schema. FastMCP may not expose them to the MCP client. Schema descriptions field is empty for all parameters.