# How to integrate Formdesk MCP with Atomic Agent

```json
{
  "title": "How to integrate Formdesk MCP with Atomic Agent",
  "toolkit": "Formdesk",
  "toolkit_slug": "formdesk",
  "framework": "Atomic Agent",
  "framework_slug": "atomic-agent",
  "url": "https://composio.dev/toolkits/formdesk/framework/atomic-agent",
  "markdown_url": "https://composio.dev/toolkits/formdesk/framework/atomic-agent.md",
  "updated_at": "2026-08-11T13:09:50.053Z"
}
```

## Introduction

Atomic Agent is an open-source AI agent that runs on your machine and supports local models through llama.cpp. Connect it to 1,500+ apps through Composio, including Formdesk.
This guide uses Atomic Agent's built-in Composio integration. You need Atomic Agent v0.5.6 or later, your own Composio API key, and a Formdesk account. See the [Atomic Agent documentation](https://atomicagent.io/docs/?cta_placement=atomic-agent-docs) for installation instructions.

## Also integrate Formdesk with

- [OpenAI Agents SDK](https://composio.dev/toolkits/formdesk/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/formdesk/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/formdesk/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/formdesk/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/formdesk/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/formdesk/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/formdesk/framework/hermes-agent)
- [Google ADK](https://composio.dev/toolkits/formdesk/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/formdesk/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/formdesk/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/formdesk/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/formdesk/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/formdesk/framework/crew-ai)
- [Pydantic AI](https://composio.dev/toolkits/formdesk/framework/pydantic-ai)
- [AutoGen](https://composio.dev/toolkits/formdesk/framework/autogen)

## TL;DR

### How Atomic Agent connects to Formdesk
Atomic Agent connects to Composio's Tool Router over Streamable HTTP MCP. It discovers the tools needed for your request, and Composio handles account authentication.
Execution and account-connection tools follow Atomic Agent's configured approval policy. Review any approval prompt before allowing an action on your connected account.

## Connect Formdesk to Atomic Agent

### Connect Formdesk to Atomic Agent
- Sign up or sign in to the [Composio dashboard](https://dashboard.composio.dev/?cta_placement=atomic-agent-api-key). Copy your API key.
- In Atomic Agent, open the Integrations tab and select Composio. Select API key, press e, paste the key, and press Enter. The tools become available immediately, without a restart.
- Ask Atomic Agent to do something in Formdesk. It searches Composio for the right tool.
- On first use, open the sign-in link returned in the chat. Connect your Formdesk account, then return to Atomic Agent to continue.
### Headless setup
Add the following line to ~/.atomic-agent/.env, replacing YOUR_COMPOSIO_API_KEY with your key. Start Atomic Agent after saving the file.

```bash
COMPOSIO_API_KEY=YOUR_COMPOSIO_API_KEY
```

## What is the Formdesk MCP server, and what's possible with it?

The Formdesk MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Formdesk account. It provides structured and secure access to your online forms, so your agent can perform actions like submitting entries, managing form fields, handling visitors, and retrieving detailed information on your behalf.
- Automated form entry submission: Let your agent instantly submit new responses to any of your Formdesk forms using collected or generated data.
- Dynamic form structure management: Easily create new fields or delete existing ones, allowing your agent to adapt forms as your requirements change.
- Detailed entry and field retrieval: Have your agent fetch comprehensive details about specific form entries or fields for auditing, review, or analysis.
- Visitor management automation: Add or remove visitors in your forms, streamlining registration and access workflows with AI assistance.
- Effortless form and data cleanup: Direct your agent to delete forms, entries, fields, or visitors, keeping your Formdesk workspace organized and up to date.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `FORMDESK_AUTOMATIC_LOGIN` | Validate Formdesk Authentication | Validates the Formdesk API bearer token and returns authentication details. This action confirms that your connected Formdesk account credentials are valid by making a test API call to the /forms endpoint. It returns the bearer token information that can be used for subsequent authenticated requests. **Important**: This does NOT perform username/password login. Formdesk uses API keys (bearer tokens) for authentication, which are obtained from your Formdesk account's User Management section. The username/password parameters are placeholders for API compatibility and are not used. **Use this action to**: - Verify that your Formdesk API credentials are valid - Retrieve the bearer token from your connected account - Confirm API connectivity before performing other operations **How it works**: 1. Uses the bearer token from your connected account metadata 2. Validates the token by calling the Formdesk /forms endpoint 3. Returns token details if validation succeeds |
| `FORMDESK_CREATE_ENTRY` | Create Formdesk Entry | Submit a new entry (result) to a Formdesk form. This action creates a new form submission with the provided field values. Before using this action: 1. Use FORMDESK_GET_FORM_LIST to find the form ID 2. Use FORMDESK_GET_FORM_FIELDS to understand which fields the form expects 3. Prepare field values that match the form's schema The action returns the ID of the newly created entry, which can be used with FORMDESK_GET_ENTRY_DETAILS to retrieve the full entry data. |
| `FORMDESK_CREATE_FIELD` | Create Field | Creates a new field in a Formdesk form. Use this action to add fields like text inputs, email fields, textareas, checkboxes, date pickers, etc. to an existing form. You must have the form ID from FORMDESK_GET_FORM_LIST or FORMDESK_GET_FORM_DETAILS before creating fields. The field definition should specify at minimum the field name, type, and label. Additional properties like 'required', 'placeholder', 'description', and 'default' can be included. |
| `FORMDESK_CREATE_VISITOR` | Create Visitor | Tool to add a new visitor to a specific Formdesk form. Use when you need to register a visitor's metadata before submitting entries. |
| `FORMDESK_DELETE_ENTRY` | Delete Formdesk Entry | Deletes a specific entry (form submission/result) from a Formdesk form. This action is idempotent - it will succeed even if the entry doesn't exist (404), making it safe to call multiple times. Use this when you need to remove a form submission permanently. The entry can be obtained from GET_FORM_ENTRIES or GET_ENTRY_DETAILS actions. |
| `FORMDESK_DELETE_FIELD` | Delete Field in Formdesk | Tool to delete a specific field in a Formdesk form. Use after confirming formId and fieldId. |
| `FORMDESK_DELETE_FORM` | Delete Form in Formdesk | Delete a specific form from Formdesk. This action permanently removes a form from the Formdesk account. Use with caution as this operation is destructive and cannot be undone. If the form ID does not exist, the action returns success=False with an appropriate message rather than raising an error. Returns success=True if the form was deleted, or success=False if the form was not found. |
| `FORMDESK_DELETE_VISITOR` | Delete Visitor in Formdesk | Deletes a specific visitor from a Formdesk form. This action is idempotent - it will succeed even if the visitor doesn't exist (404), making it safe to call multiple times. Use this to remove a visitor from a form's visitor list. Obtain valid form_id from GET_FORM_LIST and visitor_id from GET_FORM_VISITORS actions. |
| `FORMDESK_GET_FIELD_DETAILS` | Get Field Details | Retrieves comprehensive details about a specific field in a Formdesk form. Returns structured information including field ID, name, type (e.g., text, email, number), label, validation rules, and whether the field is required. Use this after obtaining formId from Get Form List and fieldId from Get Form Fields to inspect specific field properties, validation rules, or configuration. |
| `FORMDESK_GET_FORM_DETAILS` | Get Form Details | Retrieves comprehensive details about a specific Formdesk form by its ID. Returns form metadata including name, description, active status, timestamps, public URL, and configuration settings. Use this when you need to inspect form properties or verify form existence before performing other operations. |
| `FORMDESK_GET_FORM_FIELDS` | Get Form Fields | Tool to retrieve all fields of a specific form. Use after obtaining the formId to inspect its field definitions. |
| `FORMDESK_GET_FORM_LIST` | Get Form List | Retrieve a list of all forms in the Formdesk account. This action returns basic information about each form including its ID and name. Use the form ID with other actions (like Get Form Details, Get Form Fields, Get Form Entries) to access more detailed information about a specific form. No parameters are required - this action lists all forms accessible with the current authentication credentials. |
| `FORMDESK_GET_FORM_VISITORS` | Get Form Visitors | Retrieves all visitors registered to access a specific Formdesk form. Visitors are users who have been granted access to view or complete a form. This action returns visitor details including their credentials, permissions, and registration information. Use this when you need to list all visitors for a form or check visitor access rights. Note: First use 'Get Form List' to obtain valid form IDs if you don't have one. |
| `FORMDESK_GET_VISITOR_DETAILS` | Get Visitor Details | Retrieve complete details of a specific visitor in a Formdesk form. A visitor represents a unique person or entity who can submit entries to a form. Visitors have attributes (name, email, custom fields) and can be associated with multiple form entries. Use this action to get full visitor information including all custom attributes defined in your form. Prerequisites: You must have both the form_id and visitor_id. Obtain these from: - form_id: Use 'Get Form List' action - visitor_id: Use 'Get Form Visitors' or 'Create Visitor' actions |
| `FORMDESK_KVK_HANDELSREGISTER_LOOKUP` | KVK Handelsregister Lookup | Tool to lookup company details from the Dutch KVK Handelsregister. Use when auto-filling company address fields. |
| `FORMDESK_MANAGE_VISITOR_ENTRIES` | Manage Visitor Entries | Retrieve form entries (submissions) from a Formdesk form. This action fetches submission data from a form's results database. You can: - List all entries in a form - Filter entries by visitor ID - Retrieve a specific entry by its ID Use cases: - View all form submissions - Track entries submitted by specific visitors - Retrieve detailed information about a specific submission Note: The form must exist and be accessible with your API credentials. |
| `FORMDESK_MULTIPLE_PAGES_FORM` | Create Multi-Page Form | Tool to create a multi-page Formdesk form. Use when you need forms split into multiple pages for better user experience. |
| `FORMDESK_UPDATE_FIELD` | Update Field | Updates properties of an existing field in a Formdesk form. This action modifies field configuration such as labels, types, validation rules, required status, placeholder text, help text, and default values. Only the properties specified in the request are updated; other properties remain unchanged (partial update). Use this when you need to: - Change a field's display label or help text - Modify field validation requirements - Update placeholder or default values - Change field type or options for select/radio fields - Toggle required/optional status Note: Requires valid form_id and field_id from existing Formdesk resources. |
| `FORMDESK_UPDATE_FORM` | Update Form | Updates properties of an existing form in Formdesk. Use this action to: - Rename a form - Activate or deactivate a form (control whether it accepts responses) - Update other form metadata At least one of 'name' or 'isActive' must be provided. Only specified fields will be updated; other properties will remain unchanged. Use GET_FORM_LIST to retrieve valid form IDs first. |
| `FORMDESK_UPDATE_VISITOR` | Update Visitor | Update an existing visitor's attributes in a Formdesk form. A visitor represents a unique person or entity who can submit entries to a form. This action modifies visitor attributes such as name, email, or custom fields. Only the attributes you specify will be updated; other attributes remain unchanged. Prerequisites: You must have both the form_id and visitor_id. Obtain these from: - form_id: Use 'Get Form List' action - visitor_id: Use 'Get Form Visitors', 'Create Visitor', or 'Get Visitor Details' actions Use Cases: - Update visitor contact information (email, phone, address) - Correct visitor name or other profile details - Modify custom visitor attributes defined in your form - Keep visitor records synchronized with external systems |
| `FORMDESK_WEBHOOK_INTEGRATION` | Webhook Integration | Tool to send form submission data to external webhooks. Use after retrieving entry details to push data to a custom endpoint. Note: This action calls external webhooks directly, not Formdesk API, so it doesn't need the FormdeskBaseAction preprocessing. |

## Supported Triggers

None listed.

## Troubleshooting

### Why is my API key rejected?

Copy the key directly from the Composio dashboard. Atomic Agent requires ASCII characters because it sends the key in an HTTP header. Remove any extra characters introduced when copying.

### Why are Composio tools unavailable after saving a key?

Check that you use Atomic Agent v0.5.6 or later and that Composio is enabled in your configuration. A "composio": { "enabled": false } setting disables the integration while keeping the saved key on disk.

### Does Composio have a free plan?

The Hobby plan includes 100,000 tool calls per month. Composio-managed OAuth apps have a lower included allowance. See [Composio pricing](/pricing) for the current limits that apply to your connection.

## Complete Code

None listed.

## Conclusion

### Use Formdesk from Atomic Agent
With your account connected, ask Atomic Agent to work with Formdesk in natural language. You can connect more apps through the same Composio integration as you need them.
Visit the [Atomic Agent website](https://atomicagent.io/?cta_placement=atomic-agent-site) or inspect the [Atomic Agent source code](https://github.com/AtomicBot-ai/atomic-agent?cta_placement=atomic-agent-repo).

## How to build Formdesk MCP Agent with another framework

- [OpenAI Agents SDK](https://composio.dev/toolkits/formdesk/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/formdesk/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/formdesk/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/formdesk/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/formdesk/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/formdesk/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/formdesk/framework/hermes-agent)
- [Google ADK](https://composio.dev/toolkits/formdesk/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/formdesk/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/formdesk/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/formdesk/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/formdesk/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/formdesk/framework/crew-ai)
- [Pydantic AI](https://composio.dev/toolkits/formdesk/framework/pydantic-ai)
- [AutoGen](https://composio.dev/toolkits/formdesk/framework/autogen)

## Related Toolkits

- [0CodeKit](https://composio.dev/toolkits/0codekit) - 0CodeKit is a utility API platform for AI, document, image, and data workflows. Use it to convert, validate, generate, store, and automate data without custom backend code.
- [Airtop](https://composio.dev/toolkits/airtop) - Airtop is a cloud browser platform for AI-powered web automation. Use it to navigate sites, extract data, and run reusable browser workflows.
- [Apify MCP](https://composio.dev/toolkits/apify_mcp) - Apify MCP is the official MCP server for Apify's web scraping and browser automation platform. Use it to run actors, collect structured web data, and automate crawling workflows.
- [Apilio](https://composio.dev/toolkits/apilio) - Apilio is a home automation platform that lets you connect and control smart devices from different brands. It helps you build flexible automations with complex conditions, schedules, and integrations.
- [Basin](https://composio.dev/toolkits/basin) - Basin is a no-code form backend for quickly setting up reliable contact forms. It lets you collect and manage form submissions without writing any server-side code.
- [Bika.ai](https://composio.dev/toolkits/bika) - Bika.ai is an AI automation database platform for managing spaces, teams, records, automations, and outgoing webhooks. It helps teams organize structured data and automate database-driven workflows in one place.
- [Botster](https://composio.dev/toolkits/botster) - Botster is a web automation service for running configurable data collection bots. Use it to collect structured web data without building and maintaining scrapers yourself.
- [Bouncer](https://composio.dev/toolkits/bouncer) - Bouncer is an email validation platform that verifies the authenticity of email addresses in real-time and batch. It helps boost deliverability and reduce bounce rates for your communications.
- [BrowserAct](https://composio.dev/toolkits/browseract) - BrowserAct is a hosted browser-automation service for running web workflows. Use it to execute repeatable browser tasks with templates, proxies, and APIs.
- [Celigo](https://composio.dev/toolkits/celigo) - Celigo is an integration platform as a service for connecting apps, data, and business workflows. It helps teams automate cross-system processes without building every integration from scratch.
- [CheckFlow](https://composio.dev/toolkits/checkflow) - CheckFlow is a workflow and checklist platform for repeatable processes, tasks, templates, teams, data sets, and automation. Use it to standardize operations, track process execution, and keep teams aligned.
- [Conveyor](https://composio.dev/toolkits/conveyor) - Conveyor is a platform that automates security reviews with a Trust Center and AI-driven questionnaire automation. It streamlines compliance and vendor security processes for faster, hassle-free reviews.
- [Cronfree Time Scheduler](https://composio.dev/toolkits/cronfree_time_scheduler) - Cronfree Time Scheduler is an API-based scheduler for recurring webhook calls. Use it to create and remove timezone-aware schedules without running cron.
- [Crowdin](https://composio.dev/toolkits/crowdin) - Crowdin is a localization management platform that streamlines translation workflows and collaboration. It helps teams centralize multilingual content, boost productivity, and automate translation processes.
- [Databox](https://composio.dev/toolkits/databox) - Databox is a business analytics platform that connects your data from any tool and device. It helps you track KPIs, build dashboards, and discover actionable insights.
- [Detrack](https://composio.dev/toolkits/detrack) - Detrack is a delivery management platform for real-time tracking and proof of delivery. It helps businesses automate notifications and keep customers updated every step of the way.
- [Dify](https://composio.dev/toolkits/dify) - Dify is a platform for running and managing published workflow apps via a Service API. Use it to execute workflows and inspect configuration and run history quickly.
- [Digital Humani](https://composio.dev/toolkits/digital_humani) - Digital Humani is a reforestation API for browsing planting projects, submitting tree requests, and tracking planted trees. It helps teams connect climate action directly to products, campaigns, and customer experiences.
- [Dnsfilter](https://composio.dev/toolkits/dnsfilter) - Dnsfilter is a cloud-based DNS security and content filtering solution. It helps organizations block online threats and manage safe internet access with ease.
- [EnforcedFlow](https://composio.dev/toolkits/enforcedflow) - EnforcedFlow is a work routing platform for advanced round-robin groups, agent criteria, availability, and email assignments. It helps teams distribute work fairly and quickly using configurable assignment rules.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Formdesk MCP?

With a standalone Formdesk MCP server, the agents and LLMs can only access a fixed set of Formdesk tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Formdesk and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Atomic Agent?

Yes, you can. Atomic Agent fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Formdesk tools.

### Can I manage the permissions and scopes for Formdesk while using Tool Router?

Yes, absolutely. You can configure which Formdesk scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Formdesk data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
