MCP App Store
by KeenEthics

Overview

Ploy is an AI marketing platform that turns your website into a growth engine. Use Ploy in ChatGPT to build and improve your site, grow traffic, and turn more visitors into customers. With Ploy, you can: - Build and update pages that match your brand. - Improve your website's visibility in search engines and AI answers. - Create personalized landing pages for campaigns and target accounts. - Review identified visitors and form submissions to find new leads. - Run marketing workflows using your connected tools and business data. Start a task, check its progress, and give Ploy feedback directly in your conversation. Review the results and publish site updates or growth workflows when you're ready. Connect your Ploy account to get started.

Tools

ploy_answer

ChatGPT
Submit answers to a pending request using its requestId and seq as requestSeq, or send a freeform message. Supports text, choices, approval, boolean, and skip; question and choice indexes are zero-based. Returns a receipt or browser handoff.

ploy_artifact

ChatGPT
Read one Ploy artifact's available public content and references. Inline content over 256 KiB is omitted with contentOmitted: true. Returns dashboardUrl for the full artifact or editing.

ploy_artifacts

ChatGPT
List a bounded page of artifact metadata and public references in artifact-ID order. Returns nextCursor for continuation and dashboardUrl for viewing or editing. Inline content is excluded.

ploy_delete

ChatGPT
Delete an idle Ploy and return confirmation. Active or queued work produces a conflict.

ploy_document

ChatGPT
Read Markdown by documentId or exact path in the authorized workspace, up to 10,000 UTF-16 code units per page. Continue at nextOffset with the returned updatedAt version; a changed version returns an error so reading can restart. Does not edit the document.

ploy_documents

ChatGPT
List document IDs, titles, and paths in the authorized workspace, newest updated first. Optional search matches document titles. nextOffset continues with the same search; read content with ploy_document. Pages can shift as documents are added, edited, or deleted.

ploy_form_submissions

ChatGPT
List captured form submissions for a site, newest first. Supports form name/page URL and date filters. Metadata only by default; includeData returns submitted field values without collected IP addresses or user agents. nextOffset continues with the same filters. Pages can shift as submissions are added or deleted.

ploy_get

ChatGPT
Get a Ploy's title, identity, and dashboard path.

ploy_get_started

ChatGPT
Use at the start of a conversation. Returns the workspace's first sites (whether each has content), recent Ploys, and the next step to offer the user. Direct read; never starts an agent run.

ploy_list

ChatGPT
List a bounded page of Ploys in the authorized workspace. Returns metadata and nextCursor for continuation.

ploy_mark_read

ChatGPT
Set a Ploy's read timestamp to the current time and return confirmation. Repeated calls advance the timestamp.

ploy_questions

ChatGPT
Get the latest pending questions with their requestId and seq. A null request means no questions are pending.

ploy_read

ChatGPT
Read one bounded page of public conversation events and current activity. Returns nextCursor even on empty pages, hasMore for pagination, and dashboardUrl for browser handoffs.

ploy_recover

ChatGPT
Recover interrupted or stalled work in a Ploy. Returns an accepted run and starting sequence, or log_quiet when there is no recoverable work. May resume agent actions and consume credits.

ploy_send

ChatGPT
Continue an existing Ploy by queuing a message or steering an eligible running turn. Returns a durable receipt; the idempotencyKey deduplicates retries of the same message.

ploy_site_publish

ChatGPT
Publish the current saved site to production without an agent turn. Requires site-publish and data-read permissions and a siteId from ploy_sites or a site artifact. Returns a durable operationId, not completion; poll ploy_site_publish_status. Retain the idempotencyKey when retrying this publish; use a new key for a new publish. Does not change automatic agent-publish permission.

ploy_site_publish_status

ChatGPT
Read a production publish operation using its siteId and operationId. Returns in_progress, succeeded, or failed with deployment statuses and URLs. Poll at intervals of at least two seconds while in_progress. Failure details are available at dashboardUrl. Does not start a publish or an agent turn.

ploy_site_status

ChatGPT
Check a site's clone progress and preview readiness using its site ID. Returns state, stage, and sandbox status. This does not report production deployment status or publish the site.

ploy_sites

ChatGPT
List site IDs and titles in the authorized workspace, with optional title search. Use a returned site ID for visitors, site status, and form submissions. nextOffset continues with the same filters.

ploy_start

ChatGPT
Create a Ploy and submit its first message to the agent. Returns a durable receipt while work continues. Reference web pages can be named by URL in the message; the agent fetches them. Retries with the same idempotencyKey do not create another Ploy or message.

ploy_stop

ChatGPT
Stop active or queued work in a Ploy. Returns the stop state and whether a durable stop was recorded.

ploy_update

ChatGPT
Rename a Ploy and return its updated metadata.

ploy_upload

ChatGPT
Upload a private attachment of up to 10 MiB from exactly one source: file (a file the user attached in ChatGPT), url (Ploy downloads a public http(s) file, so no bytes pass through the model), contentText (UTF-8 text files), or contentBase64. Returns a confirmed fileId for a later start, message, or answer. Uploading alone does not send a message.

ploy_visitors

ChatGPT
List enriched visitors for a site in the authorized workspace without an agent turn. Returns identified people and companies, excluding anonymous traffic, raw IPs, and vendor payloads; seenOn and appIdentity add where a visitor was seen and what the site's own app identify() calls say about them. Pages are ordered by identification time; nextOffset continues with the same filters. Pages can shift during enrichment.

ploy_workspaces

ChatGPT
List a bounded page of workspaces authorized by this connection: the pinned workspace for a workspace grant, or eligible workspaces in the authorized organization. Supply a returned workspace ID on workspace tool calls. nextOffset continues pagination. Workspace selection follows the user's explicit choice in this conversation, not ambient client context or list order. If no workspace is selected, call ploy_workspaces. Use the sole authorized workspace without asking only after checking the complete list from offset 0 through nextOffset null. With multiple workspaces, ask the user to choose before any workspace-scoped call; listing does not select one. Resolve supplied names through ploy_workspaces; ask the user if a name has no match or multiple matches. Prefer MCP form elicitation when available; otherwise ask in chat. Reuse the choice for this conversation unless the user changes it.

ploydb_column

ChatGPT
add: send columns as an array of {label, type, config?} to create all names and types together and return columns in input order. The table may have at most 97 fields including existing fields and title. Single label/type/config is also supported in one call; no separate rename or retype is needed. Batch schema jobs run sequentially; on failure refresh the schema and add only missing columns; delete: remove field and its values; rename: change label, retaining fieldId and secret protection; retype: convert existing values, retaining applicable configuration, and fail if conversion is blocked; secret: mark a column secret, preserving explicit human settings. Agents cannot unmask columns. Read ploydb_columns first. LONG_TEXT is Markdown rich text, suitable for fancy descriptions. RELATION only references rows in this same table; cross-table targets are rejected. Primary title stays TEXT. Managed columns and prompt invariants remain enforced by the domain service.

ploydb_columns

ChatGPT
Read a table's columns, immutable field IDs, labels, types, configuration, secret status, and per-column filterOperators. Load before querying or editing rows. User-facing tables must use labels as headers; keep IDs for tool arguments only.

ploydb_database

ChatGPT
create: create an empty database with displayName; delete: archive a database by ploydbId, owner/admin only; rename: change displayName while retaining identity and table data. Database creation does not create a table.

ploydb_databases

ChatGPT
List a bounded page of ready databases in the authorized workspace. Continue using nextOffset. Use a returned database ID for table discovery. PloyDB stores durable structured data shared with the dashboard and deployed sites; use separate tables for entities, typed columns for values, and row updates for changing data. Avoid one database per row, JSON blobs for queryable properties, or schema changes to represent individual records.

ploydb_import_csv

ChatGPT
Append up to 1,000 rows from CSV text, at most 256,000 characters, to an existing table. Read columns first; headers must uniquely match non-secret, non-managed column labels. Sync-owned fields cannot be written, including empty cells. Import uses permissive CSV coercion, unlike interactive row writes; inspect saved values afterward. Does not upsert or delete. One idempotencyKey per unchanged import deduplicates rows. Create tables and columns separately. Split larger files into chunks with distinct keys.

ploydb_operation

ChatGPT
Poll a duplication receipt's operationId in its original workspace. in_progress is not completion; succeeded includes the new table identity; failed requires inspection before a new operation. Poll at least two seconds apart.

ploydb_row

ChatGPT
add: supply rows (an array of up to 100 field-ID-keyed value objects) and idempotencyKey to create a batch and return rows in input order. Retain the key and unchanged data/order on retry; inserted counts newly created rows, while rows includes existing records on retry. Single values remains supported without a key; update: patch supplied values by rowId, null clears a cell; delete: remove row by rowId. Read schema and current rows first. For LONG_TEXT rich text, send a Markdown string with headings, emphasis, lists, or links; do not send HTML or an editor JSON document. Pass expectedVersion for updates to detect concurrent edits. Secret and managed-column writes are refused. Updates return the saved row with secrets masked; use labels when presenting it. After an unknown add result, inspect rows before retrying to avoid duplicates.

ploydb_rows

ChatGPT
Read one bounded page of rows or CSV. filters are ANDed {field: fieldId, op, value}; sort is [{field: fieldId, dir: asc|desc}]. Use each column's filterOperators: eq/neq exact values, contains text substring, gt/gte/lt/lte ordered values, list_contains/list_not_contains one list member, is_null/is_not_null without value. CHECKBOX writes and filters accept booleans, but returned cells use 1/0; DATE accepts YYYY-MM-DD; SELECT/STATUS use option IDs; list members use option/person/row IDs for their type. search matches non-secret searchable columns. Secret columns allow only presence filters, no sort. Continue nextCursor with identical filters/sort/search; concurrent changes can shift pages. values remain field-ID-keyed: present column labels to the user. CSV exports a page with labeled headers, masked secrets, and continuation metadata, not a complete snapshot.

ploydb_table

ChatGPT
create: supply name, optional titleColumnName (default Name), and optional columns with label/type/config to create the schema in one call. columns are additional to the required TEXT title, at most 97 total; explicit columns omit starter content. skipStarterContent=true creates only the title when columns are omitted, without blank rows or generic Property columns; delete: remove table and all rows; rename: change name without changing its ID; duplicate: start a durable copy of schema and rows using operationKey. Duplicate returns a receipt, not completion; poll ploydb_operation. Reuse the same operationKey on duplicate retries. Read tables before mutation; deletes lose data.

ploydb_tables

ChatGPT
List tables and their column schemas in a database. IDs remain stable across rename; display names are metadata. Columns return secret status and valid filter operators. SELECT and STATUS values use config.options IDs; use their labels when presenting records.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps