formbase MCP server

MCP serverDev tools

Lets your agent collect verified customer information with a single request.

Use formbase MCP server in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add formbase MCP server and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use formbase MCP server

Details

Available today. Use it from your connected AI after setup.

Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

formbase MCP serverStart free
About this server

Collect verified customer information with one request

Install formbase MCP server

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user formbase-mcp-server 'https://api.formbase.so/api/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://api.formbase.so/api/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=formbase-mcp-server&config=eyJ1cmwiOiJodHRwczovL2FwaS5mb3JtYmFzZS5zby9hcGkvbWNwIn0=

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://api.formbase.so/api/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add formbase-mcp-server --url 'https://api.formbase.so/api/mcp'

    Run it once, then sign in with codex mcp login formbase-mcp-server if the server asks for an account.

From the project's README

As published by formbaseso/formbase-mcp in README.md.

The hosted MCP server for formbase.so. formbase collects and verifies information from customers for workflows and AI agents. Your agent creates a request for one person. That person, the recipient, gets a branded form with what you already know filled in, completes it on any device without an account, and formbase hands the answers back under field keys your agent can read. Over the same connection an agent can also build, publish, translate and share forms, and read their submissions.

This repository holds documentation and example configs only. There is nothing to install or run. The server lives at:

https://api.formbase.so/api/mcp

It speaks MCP (the Model Context Protocol, the standard AI tools use to call other apps) over streamable HTTP. Most AI tools sign in with OAuth: you paste the URL, sign in to formbase in the browser, and pick a workspace. Scripts and headless agents send an API token instead.

Connect your AI tool

Leave any client ID, secret or token field empty. The tool finds the formbase sign-in page from the server and registers itself.

Claude Code

claude mcp add --transport http formbase https://api.formbase.so/api/mcp

Then type /mcp in Claude Code to sign in.

To share the server with everyone who works on a project, commit a .mcp.json to the project instead (this repository has a copy: .mcp.json):

{
  "mcpServers": {
    "formbase": {
      "type": "http",
      "url": "https://api.formbase.so/api/mcp"
    }
  }
}

Claude desktop (and claude.ai)

In Claude, open Customize › Connectors › + › Add custom connector and paste the URL. A connector added on claude.ai also works in the desktop and mobile apps. On Team and Enterprise, an owner adds it first under Organization settings › Connectors; on Free you can add one custom connector.

Cursor

Add this to .cursor/mcp.json in your project, or to ~/.cursor/mcp.json for every project (this repository has a copy: .cursor/mcp.json):

{
  "mcpServers": {
    "formbase": {
      "url": "https://api.formbase.so/api/mcp"
    }
  }
}

VS Code

Run MCP: Add Server from the Command Palette, choose HTTP, and paste the URL. See VS Code's MCP guide for where it saves the server.

Other tools

Any tool that supports remote MCP servers with sign-in works the same way: look for where it adds a server by URL. The connect guide also covers ChatGPT and Codex.

Sign in and pick a workspace

The first time the agent uses formbase, your AI tool opens a formbase page in the browser. Sign in, pick the workspace, and click Authorize. The connection reaches that one workspace only. To use another workspace, add formbase a second time and pick the other one.

To check that it works, ask:

List my formbase forms and whether each one is published.

To remove the connection, open OAuth and API Keys in the formbase workspace sidebar and click Disconnect next to it under Connected apps.

Scripts and headless agents: use an API token

A client that cannot open a browser, such as a script, a CI job or a headless agent, sends an API token as a header instead. Create one under OAuth and API Keys in your workspace sidebar (API tokens). It starts with fb_. Keep it out of git.

Claude Code, from the command line:

claude mcp add --transport http formbase https://api.formbase.so/api/mcp \
  --header "Authorization: Bearer fb_YOUR_TOKEN"

Or in a project's .mcp.json:

{
  "mcpServers": {
    "formbase": {
      "type": "http",
      "url": "https://api.formbase.so/api/mcp",
      "headers": {
        "Authorization": "Bearer fb_YOUR_TOKEN"
      }
    }
  }
}

Cursor, in .cursor/mcp.json or ~/.cursor/mcp.json:

{
  "mcpServers": {
    "formbase": {
      "url": "https://api.formbase.so/api/mcp",
      "headers": {
        "Authorization": "Bearer fb_YOUR_TOKEN"
      }
    }
  }
}

Other clients take the same URL and header; see their documentation for where. A token reaches exactly one workspace, like an OAuth connection.

Try it

Send a request to one person. Use the name of one of your published forms:

Send a formbase request with the "Supplier onboarding" form to Ada Lovelace (ada@acme.example). Fill in the company name "Analytical Engines Ltd" and lock it so she cannot change it. Use supplier-2041 as the external ID. Don't email her; give me the link and I will send it myself.

The agent reads the form's field keys with fields_list, creates the request with request_create, and gives you the link. The agent is not told when the recipient submits, so ask it later:

Has the formbase request supplier-2041 been answered? Show me the answers.

It calls request_get and shows the answers, keyed by field key. Step by step: Send a request with an AI agent and Build a form with an AI agent.

Tools

Every tool is listed on tools/list when a client connects. Clients that load schemas on demand, like Claude Code, fetch a tool's full schema when a task needs it. load_tools returns fuller documentation for a catalog of tools, and load_skill loads a domain guide.

Core tools

The tools most tasks start with.

ToolWhat it does
form_listList forms in a workspace. Supports folder filter, fuzzy name search, and cursor pagination.
form_getGet full details for a form: questions, cover, logo, and a live preview URL.
form_createCreate a new empty form in a workspace. Returns a preview URL for live editing.
form_updateUpdate form metadata: name, folder, emoji, cover, or logo.
form_deleteMove a form to the trash and revoke its share links.
form_publishPublish a form so it can accept submissions. Safe to call twice.
workspace_listList all workspaces your token can reach.
workspaceFolder_listList folders in a workspace.
formSubmission_listList a form's submissions, partial and completed, with pagination.
fields_listList the field keys a request can address on a published form, each with its value type, option keys, and a usage line. Call it before request_create.
request_createAssign a published form to one named recipient: prefill, locked fields, context, delivery, expiry, and an optional callback.
request_getRead one request: status, timeline, and, once completed, answers keyed by field key, plus display text.
request_listList requests for a form or a whole workspace, filtered by status, outcome, or your own external id.
editor_getDocumentGet the full structure of a form: all blocks, their types, and properties.
editor_updateElementEdit a block: replace its text, change properties (title, required and so on), or move it.
editor_deleteElementRemove a block from the form.
editor_insertTextQuestionInsert a short or long text question. Each question type has its own insert tool with a precise schema.
editor_insertContactQuestionInsert an email, phone number, or website URL question.
editor_insertNumberQuestion, editor_insertDateQuestionInsert a number or date question.
editor_insertRadioQuestion, editor_insertCheckboxQuestion, editor_insertSelectQuestionInsert a single-choice (radio), multiple-choice (checkbox), or dropdown question.
editor_insertDecisionQuestionInsert the decision question: the approve / decline / changes choice whose answer becomes a request outcome. A radio built by hand never produces one.
editor_insertRatingQuestion, editor_insertLinearScaleQuestionInsert a star rating or a linear scale question.
editor_insertHeader, editor_insertParagraph, editor_insertImage, editor_insertPageDividerInsert content that is not a question: headings, paragraphs, images, and page dividers.
load_toolsLoad documentation for a tool catalog: schemas and usage patterns for grouped tools.
load_skillLoad a domain guide (themes, question types, logic rules and more).

Tool catalogs

These tools are on tools/list too. Run load_tools with a catalog name for fuller documentation, then call the tools directly.

CatalogTools
form-dataformAnalytics_get: views, submissions, completion rate, and breakdowns by device, country, browser and source. Needs the Pro or Business plan; returns UPGRADE_REQUIRED otherwise.
form-appearanceformTheme_get, formTheme_set, form_update: light and dark themes, plus the cover and logo.
form-behaviorformSettings_get, formSettings_update: notification emails, completion redirect, password, retention, language, payment.
form-sharingformShareLink_list, formShareLink_create, formShareLink_update: share links, with custom domain support.
form-translationstranslationLanguage_list, translationDraft_get, translationDraft_update, translationDraft_publish, translationLanguage_delete: translate a form as a draft, then publish it.
form-lifecycleform_unpublish, form_restore.
workspace-managementworkspaceFolder_create, workspaceFolder_update, workspaceFolder_delete.
editor-actionseditor_formatText, editor_setLogic, editor_testLogic: text formatting, writing logic, and testing it.
request-lifecyclefields_list, request_create, request_get, request_list, request_cancel, request_remind, request_replayCallback, document_create: the whole request surface. Withdraw a pending request, send the recipient a reminder, replay a callback that never landed, and reserve an upload for a document you hand to one recipient.
editor-insertsThe other insert tools: editor_insertTimeQuestion, editor_insertSwitchQuestion, editor_insertFileQuestion, editor_insertSignatureQuestion, editor_insertDocumentsBlock, editor_insertMatrixQuestion, editor_insertRankingQuestion, editor_insertPaymentQuestion, editor_insertScheduleAppointmentQuestion, editor_insertPictureChoiceQuestion, editor_insertEmbedded, editor_insertTable, editor_insertList, editor_insertRow, editor_insertCalculatedField, editor_insertHiddenField, editor_insertRepeatingGroup, editor_insertLogic, editor_insertVariable.

Skills, resources and prompts

Skills are built-in guides an agent loads with load_skill: question-types, logic-rules, editing-flows, form-best-practices, form-themes, form-settings, analytics, toon-format, and requests (field keys, prefill value shapes, delivery, per-request documents, callbacks, polling, and error recovery).

Every skill and tool catalog is also an MCP resource at skill://<name>, such as skill://requests. The server also serves three prompts: identity, editor_tools, and data_tools.

Tools that ask first

These tools are marked destructive, because undoing them takes another call or is not possible: form_delete, form_unpublish, workspaceFolder_delete, editor_deleteElement, translationLanguage_delete, and request_cancel. Most AI tools ask you before running them. The prompt comes from your AI tool, so check its approval settings if you need a hard stop.

Limits

  • Rate limit. 120 tool calls per minute per token, shared with the REST API. Only tools/call counts. Over the limit, the call returns a failed tool result with RATE_LIMITED and a retryAfterMs.
  • Monthly allowance. Each request_create spends one unit of your workspace's monthly allowance, whether or not the recipient ever answers.
  • No file uploads through a tool call. Images are set by URL. A document for one recipient is the exception: document_create returns an upload URL you PUT the file to.
  • No workspace AI skills. Skills you write in formbase only work in formbase's built-in AI chat. The server's own skills (load_skill) work over MCP.

Docs

Report a problem

Issues are public. Never paste a token (fb_... or fbo_...) or your customers' answers into one; email us instead.

License

The files in this repository are MIT licensed; see LICENSE. Using the formbase service is covered by the terms of service.

Signals

Last commit
Oct 2026
Advanced
Delivery
formbase-mcp MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
io-github-formbaseso-formbase-mcp
Source
github.com/formbaseso/formbase-mcp
Hosted endpoint
https://api.formbase.so/api/mcp