# Dashform MCP Server (remote · getaiform.com)

Connect AI assistants to Dashform — build and manage AI-powered forms, funnels, quizzes.

- Trust score: 66/100 (medium)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `getaiform.com`: 66/100 (this document), [markdown](https://verifymcp.io/servers/makloai-mcp-server-dashform/api-mcp.md), [page](https://verifymcp.io/servers/makloai-mcp-server-dashform/api-mcp)

## Channel facts

- Endpoint: `https://getaiform.com/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (delete_form).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 4071 tokens (~49/item across 82 items; 82 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 26/100
  - Stability check failed: schema churn in the 8 days we've observed: 0 tool removals, 1 breaking changes, 0 auth/transport breaks, 0 additions.
- **Tool Coverage**: 80/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 41% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http makloai-mcp-server-dashform https://getaiform.com/api/mcp
```

### Codex

```toml
[mcp_servers.makloai-mcp-server-dashform]
url = "https://getaiform.com/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "makloai-mcp-server-dashform": {
      "type": "remote",
      "url": "https://getaiform.com/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add makloai-mcp-server-dashform --url https://getaiform.com/api/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  makloai-mcp-server-dashform:
    url: "https://getaiform.com/api/mcp"
```

### Other

```json
{
  "mcpServers": {
    "makloai-mcp-server-dashform": {
      "type": "http",
      "url": "https://getaiform.com/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 19 to 23.

### 2026-07-31 (score 65, +2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 63, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 62, 0)

- [security regression] Stability: 0.07 → fail
- [security regression] A breaking change shipped without a version bump: still 1.0.0
- [security] Tool “get_form” rewrote its description, which is the text the model reads
- [security] Tool “update_form” rewrote its description, which is the text the model reads
- [security] Tool “create_form” rewrote its description, which is the text the model reads
- [functional regression] “create_form” added a required parameter “form”, so existing callers break
- [functional regression] “create_form” dropped the required parameter “name”
- [cosmetic] “update_form” added an optional parameter “stepsMode”
- [cosmetic] “create_form” dropped the optional parameter “description”
- [cosmetic] “create_form” dropped the optional parameter “templateId”
- [cosmetic] “create_form” dropped the optional parameter “tone”
- [cosmetic] “create_form” dropped the optional parameter “type”

### 2026-07-28 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 61, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 60)

First indexed and scored.

## MCP tools (82)

### `get_user_info` (~39 tokens)

Get User Info

Get the authenticated user's ID, email, name, and the active organization MCP is acting on. Identity comes from the OAuth token — no parameters needed.

### `list_organizations` (~36 tokens)

List Organizations

List all organizations the authenticated user belongs to, with their role in each. Use switch_active_org to change which one MCP acts on.

### `switch_active_org` (~52 tokens)

Switch Active Organization

Set which organization MCP acts on for subsequent tool calls. The selection is verified against your memberships and persists for this connection.

Input parameters:

- `organizationId` (string, required): The organization ID to switch to (from list_organizations)

### `list_forms` (~78 tokens)

List Forms

List forms in the active organization, with status and share/edit URLs. Supports search, sort, and pagination.

Input parameters:

- `cursor` (string): Pagination cursor from a prior call
- `limit` (number)
- `search` (string): Filter by name/description
- `sortBy` (string)
- `sortOrder` (string)

### `get_form` (~53 tokens)

Get Form

Get a form by ID in the authoring vocabulary — the same shape update_form accepts, so a result can be edited and sent straight back. Unset attributes are omitted.

Input parameters:

- `id` (string, required): The form ID

### `create_form` (~72 tokens)

Create Form

Create a complete form in one call — name, steps, theme and settings together. 'structured' is a Logic Funnel (default), 'dynamic' is an AI Funnel. Start and end screens are added automatically unless you supply your own. Call publish_form afterwards to take it live.

Input parameters:

- `form` (object, required)

### `update_form` (~127 tokens)

Update Form

Update a form. Include only what you want to change under `form` — everything else is left untouched, including nested objects: sending one theme colour leaves the other theme settings alone. Steps are merged by key by default, so editing one question needs only that step; pass stepsMode 'replace' to send a complete new list.

Input parameters:

- `form` (object, required)
- `id` (string, required): The form ID to update
- `stepsMode` (string): merge: steps you name are merged by key, the rest are untouched. replace: `steps` is the complete new list.

### `delete_form` (~58 tokens)

Delete Form

Permanently delete a form and all its versions and replies. Pass confirm: true to proceed.

Input parameters:

- `confirm` (boolean): Must be true — this permanently deletes the form and its data
- `id` (string, required): The form ID to delete

### `create_reply` (~167 tokens)

Create Reply

Create a reply on the form's latest published version. Optionally seed respondent info and answers (question key -> value).

Input parameters:

- `data` (object): Initial answers as question key -> canonical string value. Use source option labels; newline-separated values for multiple-choice/picture-choice and complete ranking order; number as a finite decimal…
- `formId` (string, required): The form ID to create a reply for
- `respondentEmail` (string)
- `respondentEmotion` (string)
- `respondentName` (string)
- `status` (string)

### `publish_form` (~40 tokens)

Publish Form

Publish the form's current draft as a new live version. Required before a form can receive replies.

Input parameters:

- `id` (string, required): The form ID to publish

### `get_form_version` (~30 tokens)

Get Form Version

Get a specific form version by its version ID.

Input parameters:

- `id` (string, required): The form version ID

### `get_published_form_version` (~37 tokens)

Get Published Form Version

Get the latest published version of a form (the live snapshot respondents see).

Input parameters:

- `formId` (string, required): The form ID

### `suggest_scoring_criteria` (~38 tokens)

Suggest Scoring Criteria

AI-generate suggested hot/warm/cold lead-scoring criteria for a form.

Input parameters:

- `id` (string, required): The form ID

### `update_scoring_criteria` (~53 tokens)

Update Scoring Criteria

Set a form's hot/warm/cold lead-scoring criteria. Returns the updated form.

Input parameters:

- `id` (string, required): The form ID
- `scoring` (object, required): Lead scoring criteria for this form

### `list_replies` (~59 tokens)

List Replies

List replies for a form (paginated). Returns respondent data, status, and scoring verdict.

Input parameters:

- `cursor` (string): Pagination cursor from a prior call
- `formId` (string, required): The form ID
- `limit` (number)

### `get_reply` (~30 tokens)

Get Reply

Get a single reply by ID, including answers and scoring.

Input parameters:

- `id` (string, required): The reply ID

### `delete_reply` (~46 tokens)

Delete Reply

Permanently delete a single reply. Pass confirm: true to proceed.

Input parameters:

- `confirm` (boolean): Must be true to delete
- `id` (string, required): The reply ID to delete

### `batch_delete_replies` (~56 tokens)

Batch Delete Replies

Permanently delete up to 100 replies of a form. Pass confirm: true to proceed.

Input parameters:

- `confirm` (boolean): Must be true to delete
- `formId` (string, required)
- `ids` (array, required)

### `override_verdict` (~46 tokens)

Override Lead Verdict

Manually set or reset a reply's lead verdict (hot/warm/cold). Returns the updated reply.

Input parameters:

- `action` (required)
- `id` (string, required): The reply ID

### `rescore_form_replies` (~37 tokens)

Rescore Form Replies

Re-run AI lead scoring across a form's replies. Returns the number marked for scoring.

Input parameters:

- `formId` (string, required)

### `mark_actioned` (~31 tokens)

Mark Reply Actioned

Mark a reply as actioned (followed up on).

Input parameters:

- `id` (string, required): The reply ID

### `get_form_scoring_state` (~44 tokens)

Get Form Scoring State

Get a form's lead-scoring state: pending hot-lead count, whether criteria are active, and last criteria update.

Input parameters:

- `formId` (string, required)

### `list_organization_hot_lead_counts` (~25 tokens)

List Hot Lead Counts

List per-form hot-lead counts across the active organization.

### `get_replies_insights` (~48 tokens)

Get Replies Insights

Get aggregate insights for a form's replies over a time range (completion, drop-off, answer distributions).

Input parameters:

- `formId` (string, required)
- `timeRange` (string)

### `analytics_chat` (~64 tokens)

Analytics Chat

Ask a natural-language question about a form's replies. Returns the assistant's final answer (single-shot; the analytics agent may query the data to respond).

Input parameters:

- `formId` (string, required)
- `messages` (array, required): Conversation so far; the last user message is answered

### `list_zapier_hooks` (~28 tokens)

List Zapier Hooks

List Zapier webhook subscriptions for a form.

Input parameters:

- `formId` (string, required)

### `toggle_zapier_hook` (~35 tokens)

Toggle Zapier Hook

Activate or pause a Zapier webhook subscription.

Input parameters:

- `hookId` (string, required)
- `status` (string, required)

### `delete_zapier_hook` (~47 tokens)

Delete Zapier Hook

Permanently delete a Zapier webhook subscription. Pass confirm: true to proceed.

Input parameters:

- `confirm` (boolean): Must be true to delete
- `hookId` (string, required)

### `list_connections` (~40 tokens)

List Connections

List integration connections (webhook, Slack, HubSpot, etc.) in the active organization. Optionally filter by provider.

Input parameters:

- `provider` (string)

### `get_connection` (~22 tokens)

Get Connection

Get a single connection by ID.

Input parameters:

- `id` (string, required)

### `create_webhook_connection` (~69 tokens)

Create Webhook Connection

Create a webhook or Discord connection (no OAuth). For Slack/HubSpot/Mailchimp/etc., connect via the dashboard's OAuth flow first.

Input parameters:

- `accountLabel` (string)
- `provider` (string, required)
- `signingSecret` (string)
- `url` (string, required)

### `revoke_connection` (~51 tokens)

Revoke Connection

Revoke a connection (stops future deliveries). Pass confirm: true to proceed.

Input parameters:

- `confirm` (boolean): Must be true to revoke
- `id` (string, required)
- `reason` (string)

### `delete_connection` (~43 tokens)

Delete Connection

Permanently delete a connection and its integrations. Pass confirm: true to proceed.

Input parameters:

- `confirm` (boolean): Must be true to delete
- `id` (string, required)

### `reconnect_quota_precheck` (~32 tokens)

Reconnect Quota Precheck

Check the backfill backlog for a connection before reconnecting it.

Input parameters:

- `connectionId` (string, required)

### `list_integrations` (~24 tokens)

List Integrations

List integrations configured on a form.

Input parameters:

- `formId` (string, required)

### `get_integration` (~23 tokens)

Get Integration

Get a single integration by ID.

Input parameters:

- `id` (string, required)

### `create_integration` (~66 tokens)

Create Integration

Create a spreadsheet-style integration (Google Sheets/Airtable/Notion) on a form, mapping form answers to columns.

Input parameters:

- `connectionId` (string, required)
- `defaultColumns` (array, required)
- `fieldMapping` (array, required)
- `formId` (string, required)

### `create_integration_from_config` (~60 tokens)

Create Integration From Config

Create a message-style integration (Webhook/Discord/Slack/HubSpot/Mailchimp) on a form from a full action config.

Input parameters:

- `actionConfig` (required)
- `connectionId` (string, required)
- `formId` (string, required)

### `delete_integration` (~44 tokens)

Delete Integration

Permanently delete an integration from a form. Pass confirm: true to proceed.

Input parameters:

- `confirm` (boolean): Must be true to delete
- `id` (string, required)

### `toggle_integration` (~34 tokens)

Toggle Integration

Activate or pause an integration. Returns the updated integration.

Input parameters:

- `desired` (string, required)
- `id` (string, required)

### `list_integration_events` (~33 tokens)

List Integration Events

List recent delivery events for an integration.

Input parameters:

- `integrationId` (string, required)
- `limit` (integer)

### `replay_integration_event` (~29 tokens)

Replay Integration Event

Re-enqueue a failed or past integration delivery event.

Input parameters:

- `eventId` (string, required)

### `list_airtable_bases` (~28 tokens)

List Airtable Bases

List Airtable bases available to a connection.

Input parameters:

- `connectionId` (string, required)

### `list_slack_channels` (~26 tokens)

List Slack Channels

List Slack channels available to a connection.

Input parameters:

- `connectionId` (string, required)

### `list_hubspot_contact_properties` (~30 tokens)

List HubSpot Contact Properties

List HubSpot contact properties available to a connection.

Input parameters:

- `connectionId` (string, required)

### `list_mailchimp_audiences` (~29 tokens)

List Mailchimp Audiences

List Mailchimp audiences available to a connection.

Input parameters:

- `connectionId` (string, required)

### `get_org_branding` (~25 tokens)

Get Org Branding

Get the active organization's white-label branding (logo, favicon, brand color).

### `update_org_branding` (~53 tokens)

Update Org Branding

Update the active org's white-label branding. Owner/admin only. Returns the updated branding.

Input parameters:

- `brandColor` (string)
- `brandLogoUrl` (string)
- `faviconUrl` (string)

### `get_org_email_config` (~26 tokens)

Get Org Email Config

Get the active org's white-label email config (sender name, reply-to).

### `update_org_email_config` (~42 tokens)

Update Org Email Config

Update the active org's white-label email config. Owner/admin only.

Input parameters:

- `emailReplyTo` (string)
- `emailSenderName` (string)

### `list_custom_domains` (~19 tokens)

List Custom Domains

List the active organization's custom domains and their status.

### `add_custom_domain` (~33 tokens)

Add Custom Domain

Add a custom domain to the active org (returns DNS instructions). Owner/admin only.

Input parameters:

- `domain` (string, required)

### `verify_custom_domain` (~37 tokens)

Verify Custom Domain

Re-check a custom domain's DNS/verification and promote it to active when healthy. Owner/admin only.

Input parameters:

- `id` (string, required)

### `remove_custom_domain` (~48 tokens)

Remove Custom Domain

Remove a custom domain from the active org. Owner/admin only. Pass confirm: true to proceed.

Input parameters:

- `confirm` (boolean): Must be true to remove
- `id` (string, required)

### `set_custom_domain_default_form` (~47 tokens)

Set Custom Domain Default Form

Pin (or clear, with null) the default form a custom domain serves at its root. Owner/admin only.

Input parameters:

- `formId` (required)
- `id` (string, required)

### `get_ai_provider_status` (~30 tokens)

Get AI Provider Status

Get the active org's BYOK (bring-your-own-key) AI provider status. Owner only.

### `save_ai_provider_key` (~48 tokens)

Save AI Provider Key

Set the active org's BYOK AI provider key (validated before saving). Owner only. The key is never returned.

Input parameters:

- `key` (string, required)
- `provider` (string)

### `remove_ai_provider_key` (~43 tokens)

Remove AI Provider Key

Remove the active org's BYOK AI provider key. Owner only. Pass confirm: true to proceed.

Input parameters:

- `confirm` (boolean): Must be true to remove

### `get_quiz_credits_status` (~23 tokens)

Get Quiz Credits Status

Get the acting user's quiz-credits balance and status.

### `create_quiz_credits_checkout` (~47 tokens)

Create Quiz Credits Checkout

Create a checkout session to purchase quiz credits. Returns a checkout URL. Requires a verified email.

Input parameters:

- `productId` (string, required)
- `successUrl` (string, required)

### `search_photos` (~46 tokens)

Search Photos

Search Pexels for background photos (welcome/end screens, questions).

Input parameters:

- `pageIndex` (integer)
- `pageSize` (integer)
- `query` (string, required)

### `search_videos` (~46 tokens)

Search Videos

Search Pexels for background videos (welcome/end screens, questions).

Input parameters:

- `pageIndex` (integer)
- `pageSize` (integer)
- `query` (string, required)

### `refine_prompt` (~45 tokens)

Refine Prompt

AI-refine a form-building prompt for the given funnel type. Returns the refined prompt text (single-shot).

Input parameters:

- `formType` (string, required)
- `prompt` (string, required)

### `transcribe` (~31 tokens)

Transcribe Audio

Transcribe base64-encoded audio to text.

Input parameters:

- `audio` (string, required): Base64-encoded audio bytes

### `upload_blob` (~58 tokens)

Upload Blob

Upload a file (base64) to blob storage for use in forms. Returns the blob URL.

Input parameters:

- `contentType` (string)
- `dataBase64` (string, required): Base64-encoded file bytes
- `filename` (string, required)

### `delete_blob` (~41 tokens)

Delete Blob

Delete a blob by its URL. Pass confirm: true to proceed.

Input parameters:

- `confirm` (boolean): Must be true to delete
- `url` (string, required)

### `import_agent_profile` (~43 tokens)

Import Agent Profile

Extract a business/agent profile from a website URL (for marketplace discovery). Returns the extracted profile; use update_form to persist it.

Input parameters:

- `url` (string, required)

### `get_chat` (~33 tokens)

Get Chat

Get a chat (e.g. a form-editor conversation) by its reference ID.

Input parameters:

- `referenceId` (string, required)

### `load_messages` (~27 tokens)

Load Messages

Load the messages of a chat by its reference ID.

Input parameters:

- `referenceId` (string, required)

### `clear_messages` (~46 tokens)

Clear Messages

Clear all messages in a chat by its reference ID. Pass confirm: true to proceed.

Input parameters:

- `confirm` (boolean): Must be true to clear
- `referenceId` (string, required)

### `delete_chat` (~42 tokens)

Delete Chat

Permanently delete a chat by ID. Pass confirm: true to proceed.

Input parameters:

- `confirm` (boolean): Must be true to delete
- `id` (string, required)

### `chat_form_editor` (~60 tokens)

Chat Form Editor

Conversationally edit a form. Provide the form id and the conversation; the assistant reads the form, applies edits (persisted), and returns its summary plus the updated form.

Input parameters:

- `formId` (string, required)
- `messages` (array, required)

### `run_ax_audit` (~126 tokens)

Run AX Audit

Run an Agent Experience (AX) audit on a website: fetch the page and score how ready it is for AI agents and crawlers across 10 dimensions (crawlability, structured data, actionability, agent interaction, discoverability, content quality, performance, authoritativeness, freshness, security). Returns an axScore (0-100), a grade, per-dimension scores, and specific issues with concrete fixes. The URL must be a public https site.

Input parameters:

- `url` (string, required): The public website URL to audit (https). A bare domain is upgraded to https.

### `list_categories` (~35 tokens)

List Categories

List all available service categories on the Dashform marketplace with merchant counts. Use this to understand what types of services are available before searching.

### `search_merchants` (~126 tokens)

Search Merchants

Search for businesses and service providers on the Dashform marketplace. Filter by category, location, or keyword. Each result includes a funnel_id you can use with get_business_info, get_services, check_fit, and book_appointment.

Input parameters:

- `category` (string): Filter by service category (e.g. health_wellness, beauty_personal_care). Use list_categories to see available options.
- `limit` (number): Maximum results to return
- `location` (string): Filter by city or area name
- `query` (string): Search by business name or description keyword

### `search_services` (~108 tokens)

Search Services

Search for specific services across all marketplace merchants. Find services by name, category, price range, or location. Each result includes the provider funnel_id for booking.

Input parameters:

- `category` (string): Filter by service category
- `limit` (number): Maximum results to return
- `location` (string): Filter by provider location
- `max_price` (number): Maximum price filter
- `min_price` (number): Minimum price filter
- `query` (string): Search by service name or description

### `get_business_info` (~59 tokens)

Get Business Info

Get business information for a Dashform funnel, including description, industry, location, services, and booking link. Use this to understand what a business offers before checking lead fit.

Input parameters:

- `funnel_id` (string, required): The funnel public ID or internal ID

### `get_services` (~56 tokens)

Get Services

Get the list of services or products offered by a business through this funnel. Optionally filter by category.

Input parameters:

- `category` (string): Optional category to filter services
- `funnel_id` (string, required): The funnel public ID or internal ID

### `get_form_questions` (~62 tokens)

Get Form Questions

Get the list of questions for this funnel. Returns question keys, types, descriptions, and options. Call this BEFORE check_fit or book_appointment to understand what information to collect from leads.

Input parameters:

- `funnel_id` (string, required): The funnel public ID or internal ID

### `check_fit` (~105 tokens)

Check Lead Fit

Evaluate lead fit against this business. Provide answers keyed by question keys from get_form_questions. Returns a score (0-100), fit assessment, confidence level, reasoning, and recommended next action. Also accepts legacy lead object for backwards compatibility.

Input parameters:

- `answers` (object): Lead answers keyed by question key from get_form_questions
- `funnel_id` (string, required): The funnel public ID or internal ID
- `lead` (object): (Deprecated) Legacy lead object — use answers instead

### `get_availability` (~53 tokens)

Get Availability

Get booking availability for this business. Returns a booking link (e.g. Calendly) if configured, or a message about how to schedule.

Input parameters:

- `funnel_id` (string, required): The funnel public ID or internal ID

### `book_appointment` (~143 tokens)

Book Appointment

Submit a lead's information to request an appointment. Provide answers keyed by question keys from get_form_questions. Creates a reply record visible in the dashboard and triggers connected integrations (CRM, email, webhooks). Also accepts legacy lead object for backwards compatibility.

Input parameters:

- `answers` (object): Lead answers keyed by question key from get_form_questions
- `fit_score` (number)
- `funnel_id` (string, required): The funnel public ID or internal ID
- `lead` (object): (Deprecated) Legacy lead object — use answers instead
- `metadata` (object): Optional metadata for business reference
- `notes` (string)
- `service_name` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/makloai-mcp-server-dashform/api-mcp#diagnostics

## Score history

- 2026-08-03: 66
- 2026-08-02: 66
- 2026-08-01: 65
- 2026-07-31: 65
- 2026-07-30: 63
- 2026-07-29: 62
- 2026-07-28: 62
- 2026-07-27: 61
- 2026-07-26: 60

## Links

- Remote endpoint: https://getaiform.com/api/mcp
- Repository: https://github.com/makloai/mcp-server-dashform
- Website: https://getaiform.com/
- Changelog RSS feed: https://verifymcp.io/servers/makloai-mcp-server-dashform/api-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/makloai-mcp-server-dashform/api-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/makloai-mcp-server-dashform/api-mcp
