Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.propal.io/llms.txt

Use this file to discover all available pages before exploring further.

The Propal MCP server exposes the same data and operations as our REST API, but tailored for AI agents through the Model Context Protocol. Plug it into your favorite AI assistant — Claude Desktop, Claude.ai, ChatGPT, Codex, Cursor, Windsurf, VS Code, the MCP Inspector, or any custom client — and let an agent draft, edit, restructure, and theme proposals on your behalf, with end-to-end type safety on every call.

Supported clients

Any MCP-compatible client connects with the same endpoint + OAuth flow. Setup details for each client are in the quickstart:

Claude Desktop

Anthropic’s desktop app via mcp-remote.

Claude.ai

Custom connector in Settings → Integrations.

ChatGPT

Custom connector (Plus, Pro, Team, Enterprise).

Codex CLI

OpenAI’s coding agent — ~/.codex/config.toml.

Cursor

Native remote MCP via Settings → MCP.

Windsurf

Cascade → MCP Servers → Remote (HTTP).

VS Code

Continue.dev, Copilot Chat, or any MCP-aware extension.

MCP Inspector

Browser UI for exploration and debugging.

Custom client

Any MCP SDK in any language.

Why MCP instead of REST?

REST APIMCP server
AudienceDevelopers, integrations, dashboardsAI agents (Claude, ChatGPT, Codex, Cursor, Windsurf, VS Code, custom)
DiscoveryOpenAPI specLive tool catalog (list_propal_components, schemas on demand)
AuthAPI key (Bearer)OAuth 2.1 (mcp:use scope)
CompositionManual orchestrationThe agent picks tools and chains calls
Editing proposal contentNot exposedFull Propal DSL (read + write)
ThemingCRUD onlyPresets, smart palette, advanced, apply/detach
If your goal is human-built integrations, use the REST API. If you want an agent to think about your proposal — generate a section, restyle a paragraph, swap a theme — the MCP is the right surface.

What you can do

Compose proposals

Build sections from a typed DSL: paragraphs, headings, columns, cards, pricing tables, galleries, embeds. The agent assembles the document block-by-block, not a TipTap blob.

Edit existing proposals

Read the current tree as DSL, insert/update/delete sections by index, reorder, or run a project-wide find & replace.

Control theming

Pick a preset, generate a theme from a mini-palette, or go advanced with full token control. Apply, detach, and patch per-section.

Manage everything else

Leads, proposals metadata, media, catalog, templates, organization, metrics — all available as MCP tools.

Endpoint

The MCP server lives at:
https://api.propal.io/v1/mcp
It uses the Streamable HTTP transport. OAuth 2.1 metadata is published at /v1/.well-known/oauth-authorization-server so MCP clients can discover the authorization server automatically.

Tool count

The server currently exposes 68 tools across 9 domains:
  • organization (2) — read org details and members
  • metrics (7) — pipeline, conversion, sales, etc.
  • themes (5) + theming (9) — CRUD plus presets, palette, palette validation, apply/detach, resolved style, per-section attrs
  • catalog (8) — items and bundles
  • templates (4) — list/create-from-proposal/delete
  • leads (6) — CRUD + linked proposals
  • media (7) — files, folders, signed upload URLs
  • proposals (10) — CRUD + publish/unpublish/duplicate
  • components (4) + editing (6) — Propal DSL discovery, validation, append, plus read/insert/update/delete/reorder/find & replace
Use list_propal_components for live discovery; the catalog evolves with the product.

What’s next

1

Get connected

Follow the quickstart to attach Claude Desktop or the MCP Inspector in under 5 minutes.
2

Understand authentication

OAuth 2.1 handles consent, token refresh, and scope enforcement — see how it works and what mcp:use unlocks.
3

Learn the component DSL

The components DSL is the heart of the MCP — a typed grammar that produces valid editor content without exposing raw TipTap JSON.

Not in v1

  • Webhooks
  • Multi-tool transactions (each mutation is independent; agents serialize themselves and refetch between calls — see editing)
  • External URLs on image / icon / video (placeholders only — embed accepts URLs, see components DSL)
  • Section nesting (a section cannot contain another section)