MCP tool surface for Bowire multi-protocol API workbench. Provides tools for discovering services, invoking APIs, linting API designs, managing mocks, and recording traffic across gRPC, REST, GraphQL, SignalR, MQTT, WebSocket, SSE, MCP, OData, and Socket.IO protocols.
Two tools with detailed descriptions and clear input schemas. Tool names use verb_noun pattern (discover, lint). Descriptions are comprehensive (200+ chars) and explain WHAT, WHEN, and WHY. Input schemas include type definitions and parameter descriptions. However, output schemas are not explicitly documented in the source code provided, only inferred from description text. No error handling guidance visible. Parameters lack enum constraints where applicable (protocol field accepts free-form string instead of enum). Missing idempotency and retry guidance.
Run discovery against a server URL and return the discovered services and methods. Optional `protocol` filters to one plugin (grpc, rest, graphql, signalr, mqtt, ws, sse, mcp, odata, socketio); without it every registered protocol that handles the URL gets a turn. The `attempts` array reports what each plugin did — outcome is ok / empty / partial / error / timeout — so an empty `services` list always comes with an explanation instead of leaving you to guess. `partial` means that plugin returned services AND hit a fault while producing them, so its contribution is incomplete; the optional `details` array breaks the message down step by step.
Discover a server URL and run Bowire's design-time linter over the API surface — the same rules `bowire lint` and the workbench Lint rail use. Flags design smells (secrets or PII in responses, unbounded list responses, missing versioning, string-typed timestamps, ...) each with a severity, honouring the workspace's .bowire/rules.json. Returns { findings: [{ ruleId, severity, service, method, field, message }], summary: { total, high, medium, low, info } }.
Output schemas not documented. Descriptions mention return structure (services, attempts, details for discover; findings, summary for lint) but no formal JSON Schema provided. LLMs cannot reliably extract fields without explicit schema.
Protocol parameter accepts free-form string instead of enum. Description lists valid values (grpc, rest, graphql, signalr, mqtt, ws, sse, mcp, odata, socketio) but no enum constraint. LLMs may hallucinate invalid protocol names.
No error handling guidance. Descriptions do not explain what happens on timeout, invalid URL, or discovery failure. LLMs cannot determine recovery strategy.
grpcDescriptorSet parameter lacks format/path validation guidance. Description says 'path to compiled gRPC descriptor set' but does not specify absolute vs relative, file existence check, or error if missing.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
No pagination or result-limiting guidance. If discovery returns hundreds of services/methods, response could exhaust context window. No mention of limits or pagination support.