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 MCP server registers 68 tools spanning the same resources as the REST API plus a granular Propal DSL for editor content. This page is the canonical catalog. For live discovery (with the current Zod schemas), call list_propal_components and get_propal_component_schema.
The MCP server enforces organization scoping on every call. The user’s membership is re-checked from the OAuth token.

Organization

ToolPurpose
get_organizationReturns id + name of the current organization.
list_organization_membersLists members of the current organization.

Metrics

ToolPurpose
get_metrics_overviewTop-level KPIs (proposals, conversion, revenue).
get_metrics_pipelinePipeline stages and value distribution.
get_metrics_conversionConversion rates by stage.
get_metrics_salesSales totals by period (weekly / monthly / yearly).
get_metrics_team_performancePer-member performance.
get_metrics_proposal_timingTime-to-send / time-to-sign breakdowns.
get_metrics_rejection_reasonsAggregated rejection reasons.

Themes (CRUD)

ToolPurpose
list_themes, get_themeRead themes available to the org.
create_themeAdvanced mode — full colors + section_styles control.
update_themeAdvanced patch — replace any field.
delete_themeRemoves a theme (forbidden if used by a proposal).

Theming (workflow)

ToolPurpose
list_design_presetsCatalog of ~25 stock presets (matcha, ocean, ink, …).
create_theme_from_presetSnapshots a preset into a persistent theme.
generate_theme_from_paletteSmart mode — generates a full theme from { page_bg, accent, section_bgs? } with WCAG warnings.
update_theme_section_stylePatches a single slot in section_styles[] without rewriting the whole array.
validate_paletteReturns WCAG warnings for a palette without persisting.
apply_theme_to_proposalSets proposal.theme_id.
detach_theme_from_proposalClears theme_id; optionally snapshots the resolved style first so the look is preserved.
get_proposal_resolved_styleReturns the final IProposalStyle applied to a proposal (theme → proposal_style → defaults).
set_proposal_section_attrsPatches a section’s attrs (section_style, theme, background_image) by index.
See theming for the full workflow.

Catalog

ToolPurpose
list_catalog_items, get_catalog_itemRead products/items.
create_catalog_item, update_catalog_item, delete_catalog_itemMutate items.
list_bundles, get_bundle, delete_bundleManage bundles.

Templates

ToolPurpose
list_templates, get_templateRead proposal templates.
create_template_from_proposalSnapshot a proposal into a reusable template.
delete_templateRemoves a template.

Leads

ToolPurpose
list_leads, get_leadRead contacts.
create_lead, update_lead, delete_leadMutate contacts.
list_lead_proposalsReturns the proposals attached to a lead.

Media

ToolPurpose
list_media_files, get_media_fileRead uploaded assets.
create_media_upload_urlReturns a signed URL — clients upload directly to storage.
delete_media_fileRemoves an asset.
list_media_folders, create_media_folder, delete_media_folderFolder structure.

Proposals (metadata)

ToolPurpose
list_proposals, get_proposalRead proposals (filtered by status / lead / archived).
create_proposalCreates blank or from a template.
update_proposalPatches metadata (title, slug, language, theme_id, sign/payment toggles).
delete_proposalSoft-deletes.
publish_proposal, unpublish_proposalToggles page_status.
duplicate_proposalClones a proposal.
get_proposal_signatureReads the signature on a signed proposal.
list_proposal_revision_requestsReads pending revisions.

Components — Propal DSL

ToolPurpose
list_propal_componentsLive catalog of DSL components + structural rules.
get_propal_component_schemaDetailed schema of a single component (props, enums, constraints).
validate_propal_component_treeValidates a tree without writing.
append_propal_component_tree_to_proposalValidates → assembles → atomically appends sections.
See components DSL for the grammar.

Editing

ToolPurpose
get_proposal_treeReturns the document mapped to DSL (best-effort).
insert_section_at_indexInserts BEFORE index.
update_section_at_indexReplaces 1 item by N sections.
delete_section_at_indexRemoves a root item.
reorder_sectionsPermutation of indices.
find_and_replace_in_proposalLiteral text replace, optional case-sensitive / whole-word.
See editing for the full workflow including concurrency semantics.

Discovering tools at runtime

Most clients list tools automatically when they connect. To inspect the catalog yourself, use the MCP Inspector:
npx @modelcontextprotocol/inspector https://api.propal.io/v1/mcp
Each tool exposes:
  • title — short human-readable name
  • description — when to use it, structural rules, return shape
  • inputSchema — Zod-derived JSON Schema (clients use this to validate their own input before calling)
For the components DSL specifically, the descriptions and rules are accessed via the list_propal_components tool — they live in code as the source of truth.