Let MCP-compatible agents query and operate permitted business systems through BailingHub.
BailingHub MCP server defines 8 tools with complete input schemas and descriptions. Tool names follow verb_noun convention (submit_, get_, wait_, start_, search_, invoke_, complete_, resume_). Descriptions are present and substantive (60-120 chars), explaining WHAT each tool does and WHEN to use it. However, parameter descriptions are minimal (10-30 chars), lacking guidance on format, constraints, or dependencies. Output schemas are not documented, LLMs cannot predict response structure. Error handling is basic (generic failure responses). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications (WRITE vs READ_ONLY). Security-sensitive parameters like 'arguments' (object type) lack validation guidance. Composition is sound, tools chain logically (start_business_turn → invoke_business_capability → complete_business_run), but parameter relationships (e.g., invocationId linking resume to invoke) are undocumented.
Mark an agent run as complete with final status and results
Retrieve the status and result of a previously submitted governed job
Invoke a business capability with governance and approval workflow
Resume a previously paused tool invocation after approval or user input
Search available business capabilities/tools in the current workspace
Start a new business turn/conversation context for agent interaction
Output schemas not documented. LLMs cannot predict response structure for any tool, forcing them to guess at downstream field names and types. This breaks tool chaining and increases hallucination risk.
Parameter descriptions are too brief (10-30 chars). 'Tool arguments as key-value pairs' and 'Unique request identifier for idempotency' lack format guidance, constraints, or examples. LLMs cannot validate inputs without explicit constraints.
No tool annotations despite clear risk classifications. Tools marked WRITE (submit_governed_job, invoke_business_capability, complete_business_run, resume_governed_tool_invocation) should declare destructiveHint=true. READ_ONLY tools should declare readOnlyHint=true. Agents need this metadata to plan safely.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2025-06-18+ | v2 |
Submit a governed job to BailingHub for execution with approval workflow
Wait for a governed job to complete with polling
Parameter relationships undocumented. 'invocationId' in resume_governed_tool_invocation must match an invocationId from invoke_business_capability, but this dependency is not stated. Agents cannot infer valid parameter combinations.
Generic error responses. failure() and agentFailure() return JSON with 'feedback' or 'isError' flags, but do not guide LLM recovery. Errors should state: 'User not found. Try search_business_capabilities() first.' or 'Invalid status: must be completed|failed|cancelled'.