mcphost defines 8 tools with HTTP transport and structured schemas. Most tools have descriptions and input schemas with typed parameters. However, descriptions are often terse (10-50 chars), parameter descriptions lack detail on constraints/formats, and output schemas are not documented. Error handling guidance is minimal. Tool naming follows verb_noun convention (publish, remove, test, set, query, export) but some names are generic (host.usage, host.export). No tool annotations (readOnlyHint, destructiveHint) despite clear risk classifications in metadata. Schemas are present but sparse, many parameters lack descriptions or format constraints. This is a solid foundation but falls short of production-grade quality.
Export tenant data as a tar.gz archive
Publish tenant's server.json to a configured registry API
Set a secret value for use in tool specifications
Execute a SELECT query against tenant data tables
Publish a tool to the MCP endpoint
Remove a published tool from the MCP endpoint
Test a published tool without recording usage or executing dependent steps
Parameter descriptions are missing or minimal. 'name', 'kind', 'spec', 'sql', 'value' parameters lack format constraints, valid ranges, or usage guidance. LLMs cannot infer whether 'spec' is a JSON object, a string, or a reference.
Tool descriptions are terse (10-50 chars). 'Publish a tool to the MCP endpoint' and 'Remove a published tool' lack context on when to use them, what happens on success, or what errors to expect. Descriptions should be 50-200 chars with actionable guidance.
No output schemas documented. Tools return data but LLMs cannot plan downstream calls without knowing response structure. host.usage, host.export, host.table.query lack documented return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Retrieve usage statistics for the tenant
Tool annotations missing. Metadata declares WRITE, DESTRUCTIVE, READ_ONLY risks but tools lack readOnlyHint, destructiveHint, idempotentHint in schema. Agents cannot infer safety properties from definitions alone.
Generic tool names reduce clarity. 'host.usage' and 'host.export' do not convey what they operate on or return. 'get_usage_stats' and 'export_tenant_data' would be more specific and self-documenting.