OpenAI-compatible chat-completion binding plugin for MCPG. Ships CompatChatPlugin (kind: compat.chat) for any endpoint that speaks the OpenAI /chat/completions ABI: vLLM, LocalAI, Together, Groq, OpenRouter, llama.cpp's OpenAI server, Vertex AI's OpenAI compatibility surface, and others.
Two tools with partial schema visibility. compat.chat has a detailed input schema with 11 parameters (base_url, api_key, model, prompt, timeout_ms, connect_timeout_ms, sampling, response_format, tools, streaming, retry, guardrails, cache, budget) but lacks output schema documentation. compat.embedding has minimal schema (4 params) and no output schema. Both descriptions are present but generic (194-char baseline suggests these are adequate length). Critical gaps: no output schemas documented, no error handling guidance, no parameter constraints (enums, ranges), no idempotent/destructive hints. Tool names lack action verbs (should be 'execute_chat_completion' or 'generate_embedding'). Parameters like 'sampling', 'response_format', 'tools' are documented but lack type details and constraints in descriptions.
OpenAI-compatible chat completions backend plugin. Executes chat completion requests against OpenAI-compatible endpoints (vLLM, LocalAI, Together, Groq, OpenRouter, llama.cpp, Vertex AI, etc.). Supports streaming responses, tool use, response format validation, and templated prompts.
OpenAI-compatible embeddings backend plugin. Generates embeddings for text inputs using OpenAI-compatible endpoints.
Tool names lack action verbs. 'compat.chat' and 'compat.embedding' do not start with verbs (execute_, generate_, create_). LLMs infer intent from names, these names are ambiguous about what action occurs.
No output schemas documented. Tool descriptions mention 'streaming responses' and 'embeddings' but do not specify return structure, fields, or pagination. LLMs cannot plan downstream calls without knowing what fields to extract.
Parameter constraints missing. 'sampling' object, 'response_format' object, and 'tools' array lack type details, enums, or range constraints in descriptions. LLMs will hallucinate valid values.
No error handling guidance. Descriptions do not explain what errors can occur, whether they are retryable, or what the LLM should do next (e.g., 'If base_url is unreachable, check network connectivity').
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | <=2025-11-25 | v2 |
No tool annotations. Neither tool declares readOnlyHint, destructiveHint, or idempotentHint. compat.chat is a WRITE operation (risk: WRITE) but lacks destructiveHint annotation.