VX Agents

API directory

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
GET /decks/{deckId}/slides listSlides List the slides currently in the deck
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.

Authentication

bearerAuth

Bearer token — sent as Authorization: Bearer <token>

Deck api_key (sk_…) returned once by POST /decks. Configure as the VX Agents bearer token for this fixed deck. Viewers never need this key.

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.

Related APIs