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:readforlist_forms,get_form,get_form_fields, andget_form_snippet;forms:writeforcreate_form,update_form, andreplace_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:
- start the
postmyform-mcpexecutable; - communicate with it using MCP over stdio;
- provide
POSTMYFORM_API_TOKENto 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:
- Call
list_formsto find an existing form. - If no suitable form exists, call
create_formwith the required form settings. - Use the returned
form_id, or the ID of the selected existing form. - Call
get_form_fieldsbefore changing an existing field collection. - If field changes are required, call
replace_form_fieldswith the complete desired field collection. - Call
get_form_snippetwith the selectedform_id. - 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.