
Formswrite
from formswrite
Turn docs into forms
Formswrite MCP
Connect Claude Desktop, Cursor, Claude Code, and other MCP clients to the Formswrite API.
Convert documents to Google Forms, edit questions, list and publish forms, and run AI form assistant tools โ all from your LLM.
What you can do
Once installed, your LLM gains access to the Formswrite toolset:
create_formโ create a Formswrite job from a Google Doc, PDF, or pasted textget_form_dataโ read the current questions, options, and metadata of a formmodify_questionsโ add, edit, delete, or reorder questionsupdate_form_metadataโ update title, description, or introductionpublish_formโ publish a draft form so it can accept responsesexport_formโ export a form to Google Forms, Moodle, Kahoot, Quizizz, Canvas, and 25+ other formatslist_jobs/get_jobโ browse and inspect your conversion jobs
How it works
This package is a small stdio โ Streamable HTTP bridge. It runs locally on your machine, opens a connection to https://mcp.formswrite.com/mcp using your API token, and forwards JSON-RPC messages between your MCP client (stdio) and the Formswrite server (HTTP).
All tool logic lives on the Formswrite backend โ this package contains no business logic and never sees your form data outside of forwarding it.
Links
- Formswrite: https://formswrite.com
- Dashboard: https://app.formswrite.com
- Issues: https://github.com/formswrite/formswrite-mcp/issues
- MCP spec: https://modelcontextprotocol.io
claude mcp add formswrite -- npx -y @formswrite/mcpBefore it works, you'll need: FORMSWRITE_API_TOKEN
Install
1. Get an API token
Sign in to your Formswrite dashboard and create an API token at: https://app.formswrite.com/settings/api-tokens
2. Add to your MCP client
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"formswrite": {
"command": "npx",
"args": ["-y", "@formswrite/mcp"],
"env": {
"FORMSWRITE_API_TOKEN": "fw_..."
}
}
}
}Restart Claude Desktop. The Formswrite tools will appear in the tools list.
Cursor
In Settings โ MCP, add:
{
"formswrite": {
"command": "npx",
"args": ["-y", "@formswrite/mcp"],
"env": { "FORMSWRITE_API_TOKEN": "fw_..." }
}
}Claude Code
claude mcp add formswrite -- npx -y @formswrite/mcpThen set the token in ~/.claude/settings.json:
{ "env": { "FORMSWRITE_API_TOKEN": "fw_..." } }Direct Streamable HTTP (no npm needed)
If your client supports the Streamable HTTP transport natively (Cursor 0.45+, ChatGPT MCP, recent Claude Desktop), you can skip this package and connect directly:
URL: https://mcp.formswrite.com/mcp
Header: Authorization: Bearer fw_...Configuration
| Env var | Required | Default | Description |
|---|---|---|---|
FORMSWRITE_API_TOKEN | yes | โ | API token from your Formswrite dashboard |
FORMSWRITE_MCP_URL | no | https://mcp.formswrite.com/mcp | Override for staging or self-hosted |
Troubleshooting
Diagnostic output is written to stderr (stdout is the JSON-RPC channel). To see logs:
- Claude Desktop: open the MCP logs panel (Settings โ Developer)
- CLI: run
FORMSWRITE_API_TOKEN=... npx @formswrite/mcp 2>&1 >/dev/null
Common issues:
Missing tokenโFORMSWRITE_API_TOKENis not set in your client's MCPenvblock401 unauthorizedโ token is invalid, expired, or for the wrong environment. Generate a new one at the dashboard URL above429 rate_limitedโ you're past the 60 req/min limit; slow down
Licensed under MITโ you can use, modify, and redistribute it under that license's terms.
License
MIT โ see LICENSE.