Chat is a built-in playground that drives your GetMCP servers the same way Claude Desktop, ChatGPT, and Cursor do — real provider, real tool calls, real OAuth. Skip the "install a desktop client and reconfigure JSON" round-trip; iterate on your tools in seconds.
Drop in an API key for Claude, ChatGPT, Groq, or Gemini and the chat starts using it. Keys are encrypted with libsodium on disk and decrypted only for your authenticated admin session — calls go directly from your browser to the provider, never through GetMCP servers.
Direct calls to api.anthropic.com with prompt caching enabled by default — the conversation prefix re-uses cache on every turn at ~10% of normal input cost.
cache_control auto-placeStandard Chat Completions endpoint with the same tool list shape Cursor uses. OpenAI's automatic prompt caching kicks in once the prefix crosses 1024 tokens — no client config needed.
tools + tool_callsOpenAI-compatible interface against Groq's LPU runtime. When latency matters more than reasoning depth — quick smoke tests, deterministic schemas — Groq turns each turn into a sub-second round trip.
Native Gemini generateContent with function-declaration tools. Schema gets sanitised on the way through (empty required arrays stripped) so existing OpenAPI-derived tools just work.
functionCall / functionResponseWhen the model decides to call a tool, the chat fires a JSON-RPC tools/call against your MCP endpoint with the configured auth, captures the result, and feeds it back. The whole round-trip renders inline — input arguments, raw JSON output, latency, and the model's final answer.
Point the chat at any GetMCP-built server — or any third-party MCP server — and it negotiates auth the same way ChatGPT and Claude Desktop do. Tokens are encrypted on disk and refreshed silently when they expire.
For test servers and read-only public endpoints. The chat skips auth entirely; tools execute as anonymous calls.
Paste a token; the chat sends it as Authorization: Bearer … on every tool call. Encrypted at rest with libsodium.
Configure the header name (X-API-KEY, X-FlowMattic-Key, anything) and the key. Useful for legacy services that don't speak OAuth.
Username + password, base64-encoded into the Authorization header. Both halves are stored encrypted; the base64 happens at request time.
Click Connect: the chat probes the MCP endpoint for the WWW-Authenticate hint, walks RFC 9728 + 8414 discovery, registers a public client (RFC 7591), redirects you with PKCE, and persists the token bundle. Silent refresh on 401.
When the MCP server returns 401 mid-conversation, the chat exchanges the refresh token, swaps the access token in place, and retries the same tool call — without bothering the user.
Chat sessions consume your provider quota and execute MCP tools using stored credentials. The playground is gated to a per-site allowlist, every call is logged, and approvals can be required before any tool fires.
Site administrators always have access. Editors and other admins can be granted access individually from Settings → Security → Chat playground access. The Chats nav item disappears for users who aren't on the list — not just disabled, hidden — and the REST endpoints reject them at the server.
getmcp_settings.chat_allowed_usersEvery Claude request goes out with a top-level cache_control breakpoint. After the first turn, the conversation prefix — tools, system prompt, and every prior message — is served from Anthropic's cache at roughly 10% of normal input price. OpenAI's automatic cache kicks in for the same reason: byte-stable prefix.
cache_control: ephemeral on every Claude callThe chat identifies itself to the MCP server as GetMCP Chat via the standard initialize handshake — so it shows up in your logs alongside Claude Desktop, ChatGPT, and Cursor. Filter by client, replay calls, export to CSV. Same logs page, no separate dashboard.
clientInfo.name: GetMCP ChatBuilt with the same primitives a real chat product would use — markdown rendering, streaming replies, an approval gate, suggested prompts. Settings are persisted server-side per user, so the playground remembers your preferences across machines.
Assistant replies parse ## headings, bullet lists, numbered lists, blockquotes, links, and inline code — collapsed into native HTML, not echoed as raw text.
Final answers stream in with a typewriter effect (toggleable). The thinking dots, tool trace, and per-tool status indicators all reflect the underlying provider state in real time.
Turn Auto-approve tool calls off and the assistant pauses before invoking any MCP tool. Approve or deny inline; deny messages are surfaced back to the model so it can try a different approach.
The empty state proposes prompts based on whichever MCP server is active and what tools it advertises — so you have something to click instead of facing a blank composer.
Each tool card has a View raw JSON toggle. Useful when the model's natural-language summary glosses over a field you care about, or when you're debugging a tool's output shape.
UI preferences, provider keys, and per-server credentials all live in the encrypted getmcp_chat_settings WP option — not browser localStorage — so the same settings follow you across devices.
The shortest path from "I changed a tool description" to "I see how Claude reacts" used to be: rebuild, redeploy, re-add the server in Claude Desktop, restart the desktop app, retry the prompt. Now it's a tab switch.
Change a description, schema, or response transform in the GetMCP admin, then ask the chat again. The MCP server picks up the change on the next call — no client restart, no re-pairing.
Ask the same prompt to Claude Sonnet, GPT-4o, and Llama 3.3 in three turns. Spot which provider misuses your tool surface — and which one nails it on the first try.
No "let me share my screen with my desktop client" preamble. Open the WordPress admin, send a prompt, watch the tool fire. The whole flow is visible — input args, output JSON, final answer.
Customers and prospects can validate your MCP server without setting up Claude Desktop, ChatGPT enterprise connectors, or any external account — just the admin user you grant them.