MCP tool implementations for CORE AGI system with unified memory search, reasoning packets, task management, code reading, governance, and graph-based reasoning
Server has 7 tools with READ_ONLY risk classification. All tools have descriptions (10-100 chars, mostly adequate). Input schemas are present with type definitions and parameter descriptions. However, critical gaps exist: (1) Tool names lack clear action verbs, 't_search_memory', 't_reasoning_packet', 't_generate_synthetic_data' are vague about what action occurs; (2) Output schemas are completely undocumented, no response structure defined for any tool; (3) Parameter descriptions lack actionable constraints (ranges, enums, formats); (4) No error handling guidance visible; (5) No pagination support documented despite tools accepting 'limit' parameters; (6) Tool composition unclear, relationships between reasoning_packet, reliance_assessor, and dynamic_relational_graph are not explained. Baseline: 549 production tools average 18-char names with action verbs; these average 22 chars but lack verb clarity. Parameter descriptions average 72 chars in A+ tools; these average 45 chars with minimal constraint info.
Build a task tracking packet with verification state, history, and progress tracking.
Build a structured code reading packet with file contents, functions, and search results for code analysis.
Build a deterministic relational graph from unified memory context with nodes and edges.
Generate bounded synthetic training samples for memory modules with PrincipleUtilityScore field for ranking usefulness.
Build the canonical reasoning packet for a query (single unified memory read).
Unified semantic memory search across KB + native semantic tables.
No output schemas documented. Tools return 'packets' and 'graphs' but response structure is completely undocumented. LLMs cannot plan downstream calls or extract fields without knowing what fields exist.
Tool names lack action verbs. 't_reasoning_packet' and 't_code_read_packet' are nouns, not verbs. Should be 'build_reasoning_packet', 'fetch_code_packet', 'search_memory'. Verb-first naming lets LLMs infer intent from the name alone.
Parameter descriptions lack constraints. 'limit' params accept '1-50' or '1-100' but descriptions do not state ranges. 'tables' param accepts 'comma-separated' but no validation rules or examples. Constraints must be in descriptions, not just JSON Schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
Assess whether the current query/action should stay memory-first or use more tools based on evidence strength and risk.
Tool relationships undocumented. 't_reasoning_packet', 't_tool_reliance_assessor', and 't_dynamic_relational_graph' all accept similar parameters (query, domain, tables, limit) but their distinct purposes and when to call each are not explained. Ambiguous tool selection.
No error handling guidance. Tools accept 'query' and 'tables' parameters but no documentation of what happens if query is empty, tables do not exist, or limit exceeds bounds. No recovery hints for LLMs.