Documentation

PostMyForm MCP

Install and configure the PostMyForm MCP server so authorized AI agents can manage forms through seven narrow tools.

Last updated 2026-09-07

Use PostMyForm with an MCP client

PostMyForm MCP lets an authorized AI agent manage forms through the public PostMyForm API.

The examples on this page match release v0.1.0.

Use the canonical public project for source, releases, checksums, and client-specific configuration details:

PostMyForm MCP uses local Model Context Protocol stdio transport. Your MCP client starts the postmyform-mcp executable as a child process and communicates with it through standard input and standard output.

The server then calls the PostMyForm public API over HTTPS.

It is not a hosted MCP endpoint.

Install the MCP server

Release v0.1.0 provides native binaries for:

| Platform | Architecture | Release file | | --- | --- | --- | | Linux | amd64 | postmyform-mcp-linux-amd64 | | Linux | arm64 | postmyform-mcp-linux-arm64 | | macOS | amd64 | postmyform-mcp-darwin-amd64 | | macOS | arm64 | postmyform-mcp-darwin-arm64 | | Windows | amd64 | postmyform-mcp-windows-amd64.exe |

Each release also provides SHA256SUMS. Verify the downloaded binary before installing it.

Linux

For Linux amd64 with GitHub CLI:

gh release download \
  --repo PostMyForm/postmyform-mcp \
  --pattern postmyform-mcp-linux-amd64 \
  --pattern SHA256SUMS

sha256sum -c --ignore-missing SHA256SUMS

sudo install -m 0755 \
  postmyform-mcp-linux-amd64 \
  /usr/local/bin/postmyform-mcp

Use postmyform-mcp-linux-arm64 on Linux arm64.

macOS

Download the binary that matches your Mac architecture and SHA256SUMS.

For Apple Silicon:

shasum -a 256 postmyform-mcp-darwin-arm64

sudo install -m 0755 \
  postmyform-mcp-darwin-arm64 \
  /usr/local/bin/postmyform-mcp

Compare the SHA-256 result with the matching entry in SHA256SUMS.

Use postmyform-mcp-darwin-amd64 on an Intel Mac.

Do not disable macOS security controls to run PostMyForm MCP.

Windows

Download:

postmyform-mcp-windows-amd64.exe
SHA256SUMS

Verify the binary in PowerShell:

Get-FileHash .\postmyform-mcp-windows-amd64.exe -Algorithm SHA256

Compare the result with the matching entry in SHA256SUMS.

You can rename the executable to postmyform-mcp.exe and place it in a directory included in your PATH.

Do not disable Windows security controls to run PostMyForm MCP.

Verify the installed version

Run:

postmyform-mcp --version

Compare the installed version with the latest release published in the PostMyForm MCP releases.

PostMyForm MCP does not update itself automatically.

Authenticate safely

The PostMyForm API credential belongs to the MCP server process. It is not an MCP tool argument.

Use:

  • forms:read for list_forms, get_form, get_form_fields, and get_form_snippet;
  • forms:write for create_form, update_form, and replace_form_fields.

A workflow that reads and changes forms needs both scopes.

Do not put an API token in a command-line argument, URL, or MCP tool input.

For a temporary Bash shell, read the token without echoing it or placing the token value in shell history:

read -rsp "PostMyForm API token: " POSTMYFORM_API_TOKEN
echo
export POSTMYFORM_API_TOKEN

The server reads the credential from POSTMYFORM_API_TOKEN.

When you finish the MCP session, remove the token from the shell environment:

unset POSTMYFORM_API_TOKEN

Do not commit API credentials to source control or place them in screenshots, logs, examples, or documentation.

The released server does not expose the API token or Authorization header as MCP tool data. It also sanitizes errors before they cross the MCP boundary.

Configure an MCP client

A compatible local MCP client must be able to:

  1. start the postmyform-mcp executable;
  2. communicate with it using MCP over stdio;
  3. provide POSTMYFORM_API_TOKEN to the child-process environment.

Prefer a client configuration that inherits POSTMYFORM_API_TOKEN from a controlled parent environment instead of storing the token value in a configuration file.

A generic local-server configuration needs these values:

| Setting | Value | | --- | --- | | Server name | postmyform | | Command | absolute path to postmyform-mcp | | Arguments | none | | Transport | stdio | | Required inherited environment | POSTMYFORM_API_TOKEN | | Optional inherited environment | POSTMYFORM_API_BASE_URL |

The exact configuration syntax depends on the MCP client.

Start the client from the shell that contains the temporary token, or use the client's supported secret-management or environment-inheritance mechanism.

For copyable configuration examples for supported client patterns, see the PostMyForm MCP repository.

The MCP server does not need access to your website source code or to the PostMyForm application repository.

API endpoint

The production API is used by default:

https://postmyform.com/api/v1

Most users should not set a different endpoint.

For an approved alternate environment, the server also supports POSTMYFORM_API_BASE_URL.

Remote API endpoints must use HTTPS. Plain HTTP is accepted only for loopback addresses during local testing.

Do not let an agent choose or change the API base URL through a tool call.

MCP tools

The released server exposes exactly seven form-management tools.

Read-only tools

list_forms

Lists forms visible to the configured API credential.

It has no tool arguments.

get_form

Gets one form.

Input:

  • form_id — PostMyForm form UUID.

get_form_fields

Gets the complete ordered field configuration for one form.

Input:

  • form_id — PostMyForm form UUID.

get_form_snippet

Gets the generated public form HTML as data.

Input:

  • form_id — PostMyForm form UUID.

The MCP server does not execute the returned HTML or JavaScript.

State-changing tools

create_form

Creates a form.

Inputs include:

  • name — form name;
  • destination_email — email destination;
  • allowed_origins — optional browser submission origins;
  • success_redirect_url — optional success redirect URL.

create_form is a state-changing operation.

update_form

Updates only the requested properties of an existing form.

Inputs include:

  • form_id — PostMyForm form UUID;
  • name;
  • destination_email;
  • allowed_origins;
  • success_redirect_url;
  • clear_success_redirect;
  • spam_honeypot_field;
  • status.

At least one property must be changed.

success_redirect_url and clear_success_redirect cannot be used together.

The editable status values are active and paused.

replace_form_fields

Replaces the complete ordered field collection for a form. It is not an incremental field-edit operation.

Input:

  • form_id — PostMyForm form UUID;
  • fields — complete ordered replacement field collection.

Each field contains:

  • name;
  • label;
  • field_type;
  • required;
  • options.

Supported field types are text, email, textarea, select, and checkbox.

Agent workflow

A typical agent workflow can stay narrow:

  1. Call list_forms to find an existing form.
  2. If no suitable form exists, call create_form with the required form settings.
  3. Use the returned form_id, or the ID of the selected existing form.
  4. Call get_form_fields before changing an existing field collection.
  5. If field changes are required, call replace_form_fields with the complete desired field collection.
  6. Call get_form_snippet with the selected form_id.
  7. Return the generated HTML to the user or to another authorized tool.

PostMyForm MCP returns the generated HTML as data. It does not write the HTML into a website repository and does not run Git commands.

A separate authorized development or repository tool can apply the HTML to a project when the user permits that action.

State-changing MCP operations are not automatically retried.

MCP, CLI, or raw API?

Use PostMyForm MCP when an authorized AI agent already works through an MCP-compatible client and should manage forms through narrow, schema-defined tools.

Use the PostMyForm CLI when a person or shell automation should manage the same public form resources from a terminal.

Use the PostMyForm API reference and raw HTTP when building a custom integration that needs direct control of HTTP requests and responses.

All three interfaces use the public PostMyForm API as the authority for authentication, authorization, plan limits, and form behavior.

Boundaries

PostMyForm MCP manages forms, form fields, and generated form HTML.

It does not provide MCP tools for:

  • billing;
  • submission retrieval or delivery management;
  • account administration;
  • operator functions;
  • arbitrary HTTP requests;
  • shell commands;
  • local file access.

The server cannot commit generated HTML to a repository by itself.

API details

For request and response schemas, authentication details, and the supported public API contract, use the PostMyForm API reference.

The public OpenAPI document is available at https://postmyform.com/openapi.json.

For release-specific installation, checksums, attestations, upgrades, client configuration, and development details, use the canonical PostMyForm MCP repository.