An Electron application that allows you to install, manage and run MCP servers and connect them to AI agents and clients
ToolHive Studio exhibits significant definition quality issues across its 20 tools. While tool names follow action-verb conventions (createAiMcpTool, getMcpServerTools, proxyMcpToolCall), descriptions are often minimal or generic, lacking actionable guidance for LLM selection. Parameter schemas are present for most tools but lack comprehensive type information and constraints. Critical gaps include: (1) Missing input schema details for object-type parameters (e.g., 'client' object in createAiMcpTool lacks typed properties), (2) Descriptions averaging <100 chars with insufficient context about when/why to use each tool, (3) No output schemas documented in the provided definitions, (4) Missing parameter descriptions for nested objects. The codebase reveals tool implementation but the exposed schema definitions are incomplete. Risk classification (READ_ONLY vs WRITE) is present but does not appear in standard MCP tool annotation format. Error handling patterns are not evident from the tool definitions. Several tools (e.g., tools 6-8, 10-17) appear to be IPC handlers rather than true MCP tools, conflating inter-process communication with MCP tool exposure.
Constructs an appropriate MCP transport (StreamableHTTP or SSE) based on workload configuration
IPC handler to get enabled MCP servers derived from tool configurations
IPC handler to retrieve all enabled MCP tools
IPC handler to get tools from an MCP server by name and optional thread ID
IPC handler to save enabled tools for an MCP server
IPC handler to check availability of container engines (Docker, Podman, Rancher Desktop)
Establishes an MCP client connection to a workload's HTTP or SSE transport endpoint
Object-type parameters lack detailed property schemas. Tools like createAiMcpTool accept a 'client' object and 'definition' object with no visible nested property definitions, required fields, or type constraints. This forces LLMs to guess at internal structure.
Descriptions are too brief to guide LLM tool selection. Tools like 'is-toolhive-running' and 'get-toolhive-socket-path' have descriptions under 20 characters, failing to explain when to call them or what problem they solve. Average description length is ~35 chars vs. production baseline of 194 chars.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Creates an AI-compatible MCP tool from a native MCP tool definition, converting MCP CallToolResult format to model-compatible output and handling input required states
Creates and returns all available MCP tools from enabled servers for a chat thread, with optional schema sanitization
Fetches UI resources from an MCP server by resource URI
IPC handler to get the current ToolHive socket path
IPC handler to get current ToolHive process status including any errors
Retrieves available tools from a specific MCP server by name and optional thread ID
Discovers and returns all available tools from a workload by connecting to its MCP endpoint
IPC handler to check if ToolHive process is running
IPC handler to check if using externally managed ToolHive via custom socket
Proxies a tool call to an MCP server by server name and tool name
IPC handler to restart the ToolHive process
IPC handler to clear shutdown server history
IPC handler to retrieve servers that were last running before shutdown
No output schemas documented for any tool. LLMs cannot plan downstream tool calls or know what fields to extract. Production tools must declare return types (e.g., 'Returns: { success: boolean, toolIds: string[], error?: string }').
IPC handler tools (prefixed 'chat:', 'shutdown-store:') are exposed as MCP tools but lack parameter schemas. Tools 6-8 and 10-17 have empty or missing input schemas. MCP tool registration requires explicit JSON Schema for all parameters.
No error handling guidance in tool descriptions. Tools do not explain what errors may occur, what they mean, or how LLMs should recover (e.g., 'Returns error_code INVALID_WORKLOAD if workload is unreachable. Try check-container-engine first.').
Parameter descriptions are missing or generic. Most parameters lack explanation of format, constraints, or why the parameter is needed. Example: 'threadId' is described as 'Optional thread ID for context-aware tool retrieval' but does not explain what context is retrieved or what the thread ID format is.
No pagination or result limits documented. Tools like 'createMcpTools' and 'getWorkloadAvailableTools' return arrays but do not specify max result count, pagination support, or cursor behavior. Large unbound results can exhaust context.