Local MCP gateway for Qiaomu's multi-provider LLM registry. Provides unified access to multiple LLM providers (OpenAI-compatible, Anthropic) with intelligent routing, model discovery, and advanced discussion/reasoning features.
Server has 15 tools with complete input schemas and descriptions. Naming follows verb_noun convention (qllm_list_providers, qllm_chat, qllm_compare). Descriptions are present but vary in quality (50-250 chars, within baseline 194 avg). All parameters have type definitions and descriptions. However, output schemas are not documented, responses are returned as JSON strings without formal schema declarations. Error handling returns JSON with error fields but lacks recovery guidance. Tool annotations present (readOnlyHint, destructiveHint, idempotentHint) for most tools. No pagination support documented despite tools returning lists. Security: no secrets exposed as parameters (good), but no audit logging or permission gates visible.
Chat with a routed or explicit provider/model.
Return Claude Code capabilities and feature matrix.
Return Claude Code help text.
Return Claude Code model aliases and current docs-derived model catalog.
Run Claude Code CLI with a prompt and optional stdin.
List recent Claude Code sessions.
Return Claude Code executable and version.
Compare responses from multiple providers for the same prompt.
Output schemas not documented. Tools return JSON strings without formal response schema declarations. LLMs cannot predict output structure for downstream planning.
No pagination support documented. Tools like qllm_list_providers and qllm_list_models may return large result sets without limit/offset parameters or total_count fields.
Error responses lack recovery guidance. _error_response() returns status/error/error_type but does not suggest next steps or categorize errors as retryable/user-fixable/fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Run HeavySkill-style multi-perspective discussion with parallel analysis and synthesis.
Render a HeavySkill discussion report in Markdown or HTML format.
List configured or remote models for one provider. Args: params (ListModelsInput): Provider id, source mode, timeout, and output format. Returns: str: JSON or Markdown model list. Remote mode calls the provider's /models endpoint.
List local qiaomu-llm providers without exposing API keys. Args: params (ListProvidersInput): Filtering options: - include_disabled: include disabled providers - require_secret: only show providers with an available secret - capability: optional capability filter such as chat, models, tools, images - response_format: json or markdown Returns: str: JSON or Markdown provider list with secret status only.
Run a multi-step pipeline with provider routing and result chaining.
Rank providers for a task without calling a model.
Show one provider's non-secret metadata and secret status. Args: params (ShowProviderInput): Provider id and output format. Returns: str: JSON or Markdown provider metadata. Raw secrets are never returned.
qllm_claude_capabilities has empty input schema (no parameters). Description is minimal (50 chars). Unclear when/why to call this vs other claude_* tools.
qllm_chat and qllm_compare accept 'extra_body' as free-form object. No validation or documentation of allowed keys. LLMs may pass invalid provider-specific parameters.