Neo4j-guided AI coding workflow for MCP with polymorphic incarnation support for research orchestration, decision support, data analysis, and knowledge graph management
The server defines 15 tools, but quality is highly inconsistent. Only 6 tools have visible, complete input schemas in the source code (propose_tool, request_tool, get_tool_proposal, list_tool_proposals, get_tool_request, list_tool_requests from tool_proposals.py). The remaining 9 tools are defined in archived files (archive/2025-06-24-transaction-fix/server.py) which are not provided in full, making their schemas and implementation unverifiable. Of the visible tools, schemas are present but descriptions are generic and parameter descriptions lack depth. Critical issues: (1) Many tool names do not clearly convey action intent, e.g. 'suggest_tool' is vague (suggest for what purpose?), 'get_guidance_hub' is overly domain-specific without explaining its purpose to an LLM. (2) Descriptions are too short (10-50 chars typical) and lack context about WHEN to use each tool or what downstream tools expect. (3) No error handling guidance in any description. (4) Parameters like 'context' in suggest_tool and get_best_practices lack constraints, format specs, or examples of valid inputs. (5) Tool composition issues: propose_tool and request_tool appear to do similar things (proposing/requesting tools) but naming does not make the distinction obvious. (6) No documented output schemas visible for any tool, LLMs cannot know what fields to expect or how to chain tools.
Get a specific action template by name
Get best practices for a specific context or domain
Get the main AI guidance hub and its structure
Get details of a specific project
Get a specific tool proposal by ID
Get a specific tool request by ID
Get the execution history of a workflow
List available action templates for workflow guidance
9 of 15 tools defined in archived files with no visible schemas or full implementation. Affects tools 7-15.
Tool descriptions are uniformly too short (25-45 characters) and lack context. Rubric baseline: 194 chars avg, 34-392 range. Current descriptions do not explain WHEN to use the tool, WHAT it returns, or how to chain it with other tools. E.g. 'Propose a new tool for the NeoCoder system' lacks rationale guidance for the LLM.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 40 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | 1.6.0+ | v1 |
List all projects in the system
List all tool proposals with optional filtering
List all tool requests with optional filtering
Log the execution of a workflow step
Propose a new tool for the NeoCoder system
Request a new tool feature for the NeoCoder system
Get tool suggestions based on current context
Parameters lack detailed descriptions. E.g. 'context' in suggest_tool and get_best_practices has no format, example, or constraint spec. 'status' and 'priority' filters are documented in brief but do not explain when to use filtering vs listing all.
No output schemas documented. Tools return unspecified structures. LLMs cannot predict field names, types, or pagination behavior.
Tool naming does not clearly distinguish similar tools. propose_tool and request_tool both manipulate tool data but names do not make the distinction obvious (propose = offer to implement? request = customer asks?). list_tool_proposals vs list_tool_requests similarly ambiguous.
No error handling or recovery guidance in any tool description. Rubric requires: 'Error responses must tell the LLM what to do next.' Currently missing for all tools.
Tool composition issues: no documented return field consistency. If get_tool_proposal returns proposal_id, does propose_tool return the same field? Without documented chaining, LLM must guess or make extra calls.