Formpaste

com.formpastePublished by formpaste.comOfficial publisherv1.0.0Updated Oct 24, 2026

Create and wire up contact forms from your coding agent. Forms, snippets, and submissions.

VerifiedStreamable HTTPWeb executableDeveloper ToolsBusiness & Commerce

Overview

AI-generated overview

Formpaste lets a coding agent create contact forms, fetch framework snippets, verify wiring, and list submissions on a Formpaste account.

What you can do
Create forms and return their access key plus a wired snippet, with destination verification triggered for new addresses. Fetch copy-paste snippets for html, react, nextjs, astro, vue or svelte, optionally filled with a real access key. List and read forms to check access keys, destination verification, allowed domains and notification, autoresponder or webhook settings. Store a test submission to prove a form is live and receiving. List submissions for a form, with counts and metadata by default or message bodies when requested.
When to use it
Useful when building a site or app and you want the assistant to set up a contact form, drop in a framework-specific snippet, and confirm the form actually receives submissions without leaving the editor.
Requirements
A Formpaste account and an API token minted in the dashboard under Settings, sent as a bearer Authorization header or via the FORMPASTE_TOKEN environment variable. The remote endpoint is reached over streamable HTTP; the npm package formpaste-mcp runs locally and needs Node.js 18 or later, launching mcp-remote against the hosted endpoint.
Before you install
The token is a credential: keep it out of shared files. A full-scope token lets list_submissions read third-party submission content, which is personal data; a setup-scoped token avoids that. Creating a form triggers destination verification the owner must complete in the dashboard. Test submissions are stored in the owner's inbox, and creating forms may hit plan limits (upgrade_required).

Installation

In SourceWeft

  1. Open Formpaste in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.formpaste%2Fformpaste/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "formpaste": {
      "type": "http",
      "url": "https://api.formpaste.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

formpaste-mcp

Create and wire up contact forms from your coding agent. Six tools for forms, snippets, and submissions.

What this is

This package is a thin wrapper that launches mcp-remote pointed at the hosted Formpaste MCP server (https://api.formpaste.com/mcp, streamable-http transport). The equivalent manual mcp-remote config works identically; this package exists mainly so agents and clients can discover and install Formpaste's MCP server by name, not because it does anything the manual config cannot.

Requirements

  • Node.js 18 or later
  • A Formpaste account
  • An API token from Settings -> API & MCP in the Formpaste dashboard

Install

Each client below is configured to talk to the hosted MCP endpoint at https://api.formpaste.com/mcp. Replace fpat_YOUR_TOKEN with a token minted from Settings -> API & MCP.

Claude Code

claude mcp add formpaste --transport http https://api.formpaste.com/mcp \  --header "Authorization: Bearer fpat_YOUR_TOKEN"

Codex

# ~/.codex/config.toml[mcp_servers.formpaste]command = "npx"args = ["mcp-remote", "https://api.formpaste.com/mcp", "--header", "Authorization: Bearer fpat_YOUR_TOKEN"]

Cursor

// .cursor/mcp.json{  "mcpServers": {    "formpaste": { "command": "npx", "args": ["mcp-remote", "https://api.formpaste.com/mcp", "--header", "Authorization: Bearer fpat_YOUR_TOKEN"] }  }}

Claude Desktop

// claude_desktop_config.json{  "mcpServers": {    "formpaste": { "command": "npx", "args": ["mcp-remote", "https://api.formpaste.com/mcp", "--header", "Authorization: Bearer fpat_YOUR_TOKEN"] }  }}

VS Code

// .vscode/mcp.json{  "servers": {    "formpaste": { "command": "npx", "args": ["mcp-remote", "https://api.formpaste.com/mcp", "--header", "Authorization: Bearer fpat_YOUR_TOKEN"] }  }}

Any MCP client, via this package

FORMPASTE_TOKEN=fpat_YOUR_TOKEN npx formpaste-mcp

formpaste-mcp reads FORMPASTE_TOKEN from the environment (or a --token flag) and starts mcp-remote against the hosted endpoint for you.

The six tools

ToolPurposeScope
create_formCreate a form, return its access key and a wired snippetsetup
get_snippetReturn a copy-paste snippet for html/react/nextjs/astro/vue/sveltesetup
list_formsList all forms with ids, names, access keys, inbox/spam countssetup
get_formRead one form's config to verify it is wired correctlysetup
send_test_submissionStore a test submission to prove a form is livesetup
list_submissionsList submissions, optionally including message bodiesfull

Token scopes

Formpaste API tokens have two scopes:

  • full can do everything, including reading submission content via list_submissions.
  • setup can do everything except list_submissions, so it never reads third-party submission content.

Use a setup-scoped token for agent use. It covers form creation, snippets, and verifying that a form is wired correctly, without granting access to the data your forms collect.

Worked example

See examples/wire-a-form.md for a full walkthrough: create a form, get a snippet, paste it into a page, send a test submission, and confirm the form is wired correctly.

Links

Source: README.md at commit f7ba697

Tools

6

create_form

Create a Formpaste form and return its access key + a wired snippet. Triggers destination verification for a new address (the owner completes it in the dashboard); an already-verified destination delivers immediately. Errors with: unauthorized, upgrade_required.

ParametersnamerequiredframeworkdestinationEmailrequired

get_snippet

Return a copy-paste form snippet for a framework (html, react, nextjs, astro, vue, svelte). Pass formId to fill in a real access key; otherwise a placeholder is used. Errors with: unauthorized, invalid_framework.

ParametersformIdframeworkrequired

list_submissions

List submissions for one of your forms. Returns counts + per-submission metadata by default; set includeContent to include message bodies (third-party PII). Errors with: unauthorized, not_found, forbidden. Requires a full-access token.

ParameterslimitfolderformIdrequiredincludeContent

list_forms

List all forms on your account, each with its id, name, access_key, and inbox/spam counts. Use this to discover form ids or confirm a form you just created exists. Errors with: unauthorized.

Takes no parameters.

get_form

Read one of your forms to verify it is wired correctly: returns its access_key, destination_email, destination_verified (whether submissions will be emailed yet), allowed_domains, and notification/autoresponder/webhook config. Never returns the webhook signing secret. Errors with: unauthorized, not_found.

ParametersformIdrequired

send_test_submission

Store a TEST submission so you can prove a form is live and receiving. Stored only: it appears in the owner's Inbox with a Test badge but sends NO email, runs NO spam scoring, and never counts toward quota. Optionally pass sample fields; omit to use a default payload. Capped at the 5 newest test rows per form. Errors with: unauthorized, not_found, invalid_input, too_many_fields, field_too_large.

ParametersfieldsformIdrequired

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts