Type-safe TypeScript SDK for gc4.ai — OpenAI-compatible AI inference, paid for with gift cards. Provides MCP server integration for chat completions, text completions, and model listing.
Three tools with OpenAI-compatible chat/completion APIs. All have descriptions (194 - 250 chars, within baseline 34 - 392 range) and input schemas with typed parameters. No output schemas documented. Tool names use verb_noun pattern (chat.send, completions.create, models.list) but are dot-separated rather than underscore-separated, deviating from baseline conventions. Error handling descriptions mention in-band HTTP-200 errors but provide no recovery guidance for LLMs. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all being read-only operations.
Create a chat completion. OpenAI-compatible chat completions. Set `stream:true` for an SSE stream (`text/event-stream`); otherwise a single `chat.completion` JSON body. A mid-stream provider failure stays HTTP-200 with an in-band `error` + `finish_reason:"error"`.
Create a (legacy) text completion. OpenAI-compatible legacy text completions. Set `stream:true` for an SSE stream of `text_completion` events; otherwise a single `text_completion` JSON body. Same in-band-200 error channel as chat.
List available models. The model catalog (the bare `{ data: [...] }` shape), behind the same Bearer gate as the inference endpoints.
Parameter descriptions missing. Input schemas define 'model', 'messages', 'stream', 'prompt' with types but no descriptions explaining what each controls or valid formats. LLMs cannot infer parameter semantics from names alone.
Output schemas not documented. Tool descriptions mention response shapes (chat.completion JSON, text_completion events, model catalog) but no formal schema is visible in code. LLMs cannot plan downstream calls or extract required fields.
No tool annotations despite read-only semantics. All three tools are safe to retry (no side effects), but readOnlyHint is absent. Agents cannot distinguish safe tools from destructive ones.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Error recovery guidance missing. Descriptions mention in-band HTTP-200 errors with finish_reason:'error' but do not tell LLMs what to do next (retry, ask user, abort). No actionable error messages.
Naming convention inconsistency. Tools use dot notation (chat.send, completions.create) rather than underscore convention (chat_send, completions_create) seen in 90% of production tools. Reduces LLM parsing clarity.