VX Agents

OpenAPI Marketplace

j2slide

v1.2.1 · 3 endpoints · 3 connections · shared by linh

Live presentation slides for AI agents. Push chart/text/KPI JSON and every open viewer updates in real time over WebSocket.

Connect this API to an AI agent Browse all specs

What you can do with j2slide via MCP

Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.

MethodPathOperationDescription
POST /decks/{deckId}/slides pushSlide Push one slide; every open viewer updates immediately Method: POST Path: /decks/{deckId}/slides IMPORTANT: This function has 3 REQUIRED parameter(s) and 13 OPTIONAL parameter(s) REQUIRED parameters MUST be provided OPTIONAL parameters can be omitted if not needed Parameters: Path Parameters: REQUIRED: - deckId: 32-hex deck id from POST /decks (saved at setup). Same id for every call against this bearer token. Request Body: REQUIRED: - type: Slide kind. Chooses which other fields are required server-side. - title: title parameter from application/json OPTIONAL: - unit: Optional axis unit for bar/line/area/stacked_bar (and composite chart bar/line). - data: bar/line (≤90), pie/donut (≤8). label ≤ 24, finite value. - bullets: type=text only. HARD MAX 8 items. Each string 1–120 chars. For 10 marketing metrics, send two slides (e.g. 8 then 2), not one array of 10. - items: type=kpi only. HARD MAX 4 tiles. - columns: type=table only. Header cells (each ≤ 32 chars). - rows: type=table only. Each row is string cells; length must equal columns. - categories: type=area or stacked_bar. Shared X categories. - series: type=area or stacked_bar. Each series values.length = categories.length. - points: type=scatter only. - x_label: type=scatter optional axis label. - y_label: type=scatter optional axis label. - layout: type=composite optional. stack = vertical; split = side-by-side. - blocks: type=composite only. Ordered blocks (image | text | chart). At most one image and one chart total.
GET /decks/{deckId}/slides listSlides List the slides currently in the deck Method: GET Path: /decks/{deckId}/slides IMPORTANT: This function has 1 REQUIRED parameter(s) and 0 OPTIONAL parameter(s) REQUIRED parameters MUST be provided OPTIONAL parameters can be omitted if not needed Parameters: Path Parameters: REQUIRED: - deckId: 32-hex deck id from POST /decks (saved at setup). Same id for every call against this bearer token.
DELETE /decks/{deckId}/slides clearDeck Clear all slides to start a new session. IMPORTANT: confirm with the user before calling — this removes the deck history viewers can navigate. Method: DELETE Path: /decks/{deckId}/slides IMPORTANT: This function has 1 REQUIRED parameter(s) and 0 OPTIONAL parameter(s) REQUIRED parameters MUST be provided OPTIONAL parameters can be omitted if not needed Parameters: Path Parameters: REQUIRED: - deckId: 32-hex deck id from POST /decks (saved at setup). Same id for every call against this bearer token.

Usage guide

## Fixed-deck setup (required once, outside the agent) VX Agents uses **one static bearer token per spec**. j2slide write keys are **per-deck** and returned only at create time, so the agent must not create decks. Create the deck yourself, then configure this spec: 1. Create a deck: `curl -s -X POST https://j2slide.haanhduclinh.workers.dev/decks` 2. Save `deck_id` and `api_key` (api_key is shown **once**). 3. Open `view_url` on the shared screen (`/d/{deck_id}`). 4. Upload this OpenAPI template to an agent (or My Swagger). 5. Set auth type **bearer** to the deck `api_key`. 6. Pass `deckId` = `deck_id` on every tool call. See `docs/swagger-templates/j2slide-usage-guide.md` for a full walkthrough. ## Auth Bearer token = the deck `api_key` (`sk_…`). Configure it once in VX Agents `auth_config`. Do not put the key in chat. ## Limits (enforced server-side) - Request body ≤ 32 KB - 60 slide pushes per minute per deck - Max 200 slides per deck (oldest evicted) - Title ≤ 80 chars; category/slice labels ≤ 24 chars - bar/line: 1–12 points; optional unit ≤ 8 chars - pie: 1–8 slices, non-negative values - text: 1–8 bullets, each ≤ 120 chars - kpi: 1–4 tiles; value ≤ 12 chars; optional delta ≤ 10; trend up/down/flat - Idle decks: slides deleted after 7 days (key hash kept) ## Sandbox warning The default host is the **public demo** (shared sandbox). Treat it as best-effort and ephemeral. Do not put secrets, PII, or confidential data on it. For production, self-host j2slide and change the spec base URL. ## Agent usage tips 1. Prefer `pushSlide` while narrating; open viewers auto-advance if they are already on the latest slide. 2. Use `listSlides` when the user asks what is already on the deck. 3. Confirm with the user before `clearDeck` — it wipes session history. 4. On `validation_failed`, read `details[]` and retry with corrected fields. 5. Always pass the fixed 32-hex `deckId` from setup.

How to use this spec

  1. Create a free VX Agents account (sandbox tools included).
  2. Open the marketplace and connect “j2slide” to an agent.
  3. Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.