A real-time intelligence console for planet Earth with photorealistic 3D globe, live aircraft/ships/satellites/earthquakes/CCTV, and hands-free voice control. Runs in a browser.
IntelHub exposes 4 tools with severe definition gaps. Tool names lack action verbs (initDrawTool, mountDrawTool, createApplicationTools, resolveGoogleServerKey are imperative but not verb_noun patterns). Descriptions exist but are verbose (100-200+ chars) and lack clarity on WHEN to use each tool or what state changes occur. Input schemas are present but parameters lack type definitions beyond 'object', no nested field documentation, no enums, no constraints. Output schemas are completely undocumented. No error handling guidance. Tools appear to be UI/rendering utilities rather than agent-callable operations, raising fundamental questions about whether this is a valid MCP server for agentic use.
Attach scene tools, rendering listeners and the application debug handle. Initializes SceneDirector, annotations engine, draw tool, voice commands, and render governor.
Wire the Draw control for manual whiteboard drawing on the globe. Allows users to draw shapes (area, line, pin) on the 3D globe by clicking vertices, with support for labels and colors. Returns a handle with a destroy() method.
React adapter for the draw tool. Provides a DrawToolHandle with methods to start drawing sessions, add vertices from world coordinates, finish shapes, and subscribe to preview/state changes.
Resolve server credentials after applying environment overrides per key. Returns Google Maps API key from environment or defaults.
Input schemas lack type definitions for nested parameters. All parameters are typed as 'object' with no documentation of required fields, nested structure, or constraints. E.g., 'viewer' param in initDrawTool is 'object' with description 'Cesium.Viewer instance', no schema of what properties Cesium.Viewer must have.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract return values. What does initDrawTool return? A handle object, but what fields does it have? What is the structure of the destroy() method?
Tool names do not follow verb_noun convention. 'initDrawTool' and 'mountDrawTool' are imperative but not standard patterns. 'createApplicationTools' is closer but still ambiguous, does it create, initialize, or configure? LLMs struggle to infer intent from non-standard names.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 26 | 2026-07-28+ | v2 |
No error handling guidance. Tools provide no recovery hints, error classification, or actionable messages. If createApplicationTools fails, what should the agent do? Retry? Ask the user? Abort?
Fundamental design mismatch: tools appear to be UI/rendering utilities (draw tool, scene initialization) rather than agent-callable operations. These are library functions, not MCP tools. MCP tools should expose discrete, composable actions an agent can invoke independently. Drawing on a globe requires stateful UI interaction, not a single tool call.