Self-hosted tool server exposing host-machine capabilities to LLM clients via MCP and OpenAPI protocols
HostBridge provides 11 tools with generally consistent naming and reasonable parameter schemas, but lacks depth in descriptions, error handling guidance, and output schema documentation. All tools have basic input schemas with type definitions and descriptions, placing it above the baseline for community servers. However, descriptions are generic (averaging 40-60 chars, below the 194-char baseline), parameter descriptions lack actionable constraints, and no tool documents its output schema or error recovery paths. The tool set is logically organized (file system, git, Docker, HTTP) with single-responsibility naming (e.g., fs_read, docker_action), but compositions could be tighter, docker tools require users to know container IDs/names upfront rather than discovering them. Security annotations (risk levels) are present but not formalized. Scoring: definition quality averages 62 across the 11 tools due to sparse descriptions and missing output schemas.
Perform an action on a Docker container
Inspect a Docker container
List Docker containers
Get Docker container logs
List directory contents
Read file contents
Search for files matching a regex pattern
Write content to a file
View commit history
Generic, short descriptions across all tools (averaging 40-60 chars vs baseline 194). Descriptions like 'Get repository status' do not explain when to use the tool vs alternatives, what prerequisite state is needed, or what fields to expect in the response.
No output schemas documented for any tool. LLMs cannot infer what fields to expect (e.g., does docker_list return container IDs? names? both? status?), forcing them to guess and risking failed downstream tool calls or unnecessary discovery lookups.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 39 | - | v1 |
Get repository status
Make an HTTP request
Parameter descriptions lack actionable constraints. Examples: 'pattern' (fs_search) does not state whether it's a Python regex or glob; 'timeout' (http_request) lacks min/max bounds; 'max_lines' (fs_read) has no guidance on what happens when exceeded; enum descriptions for 'mode' (fs_write) do not explain semantic differences between 'create' vs 'overwrite'.
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. E.g., fs_read may fail with 'file not found' or 'permission denied', LLMs need explicit recovery paths.
Docker tools (docker_list, docker_inspect, docker_action) require container ID/name as input but do not document how to discover them. LLMs must know to call docker_list first, but this dependency is not declared. Workaround: document in descriptions or offer a discovery tool.
fs_write with mode='create' or 'overwrite' lacks confirmation/dry-run support. Agents can accidentally overwrite critical files. No mention of whether the tool is idempotent or if repeated calls with the same content are safe.
git_log 'since' and 'until' parameters lack format specification. Are they ISO 8601, Unix timestamps, relative dates (e.g., '2 days ago')? LLMs commonly miscalculate date conversions when format is ambiguous.
fs_search accepts 'search_content' boolean to toggle between filename and content search, but this dual-mode design is not documented as a mutual exclusivity or decision point. Parameter description is minimal.