Agent Conversion

Run evidence-backed website conversion audits with an AI browsing agent.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,506Tokens (tool definitions)
~6.0 KBTypical response size
Moderate attention impact (1.18% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "agent-conversion": {
      "url": "https://agent-conversion-coral.vercel.app/api/mcp"
    }
  }
}

Remote endpoints

https://agent-conversion-coral.vercel.app/api/mcpstreamable-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢test_conversion(url, task, locale)

Start a real Agent Conversion audit: an autonomous browsing agent opens the given website and tries to complete the task, then the run is scored 0-100 with problems and recommendations. Use this when someone wants to know whether an AI agent can find something or complete a commercial step on a specific website, e.g. "Can an agent find the Pro plan's monthly price on example.com?" or "Can an agent start the self-service signup on example.com?". Returns immediately with an audit_id and status "pending" — it does NOT wait for the result. Call get_conversion_report with the audit_id to get the result. Rules: url must be a public http(s) URL (no localhost, private IPs, credentials or custom ports). task must be 10-1000 characters and describe the goal in plain language; phrase purchase-like goals as "reach checkout without buying". Each call costs a real browser run and is rate limited: do not call it repeatedly for the same url+task — poll get_conversion_report instead. Error codes rate_limited, daily_limit and at_capacity mean try again later.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 2048,
      "description": "Public website URL to test, including https://, e.g. https://www.example.com or https://www.example.com/pricing."
    },
    "task": {
      "type": "string",
      "description": "The commercial task in plain language, e.g. \"Find the monthly price of the Pro plan\" or \"Start the free trial signup and stop before entering payment details\"."
    },
    "locale": {
      "description": "Language for the generated summary and recommendations: \"en\" (default) or \"es\".",
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    }
  },
  "required": [
    "url",
    "task"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "const": true
    },
    "audit_id": {
      "type": "string",
      "description": "Pass this to get_conversion_report."
    },
    "status": {
      "type": "string",
      "const": "pending"
    },
    "url": {
      "type": "string"
    },
    "domain": {
      "type": "string"
    },
    "task": {
      "type": "string"
    },
    "locale": {
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    },
    "submitted_at": {
      "type": "string"
    },
    "report_url": {
      "type": "string",
      "description": "Human-readable report; available once the audit completes (404 before)."
    },
    "retry_after_seconds": {
      "type": "number"
    },
    "next_step": {
      "type": "string"
    }
  },
  "required": [
    "ok",
    "audit_id",
    "status",
    "url",
    "domain",
    "task",
    "locale",
    "submitted_at",
    "report_url",
    "retry_after_seconds",
    "next_step"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_conversion_report(audit_id)

Get the status and, once finished, the result of an audit started with test_conversion. Pass the audit_id returned by test_conversion (a report URL also works). status is "pending" while the agent is still running: wait retry_after_seconds and call again. If stale is true, the audit will never finish; start a new one. When status is "completed", result contains: task_completed (did the agent reach the goal), score (0-100 Agent Conversion Score, or null when score_withheld because the run did not finish measuring), summary, successes, frictions and recommendations; evidence.steps lists what the agent did. failure_classification explains a non-clean run: "blocked" (safety boundary or site-side access refusal such as a bot challenge — a real finding about the site), "run_did_not_finish", "infrastructure_failure" or "pipeline_error" (Agent Conversion's own problem, not the site's). report_url is a human-readable report to share. status "failed" means no report will be produced. Calling this tool is free and safe to repeat.

Input Schema

{
  "type": "object",
  "properties": {
    "audit_id": {
      "type": "string",
      "description": "The audit_id returned by test_conversion, or the report URL."
    }
  },
  "required": [
    "audit_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "const": true
    },
    "audit_id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "running",
        "completed",
        "failed"
      ]
    },
    "execution_status": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "completed",
            "incomplete",
            "blocked_by_safety",
            "timeout",
            "infrastructure_error"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "failure_classification": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "blocked",
            "run_did_not_finish",
            "infrastructure_failure",
            "pipeline_error"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "domain": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "task": {
      "type": "string"
    },
    "locale": {
      "type": "string"
    },
    "created_at": {
      "type": "string"
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "report_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "stale": {
      "type": "boolean"
    },
    "retry_after_seconds": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "message": {
      "type": "string"
    },
    "result": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "task_completed": {
              "type": "boolean"
            },
            "score": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "score_withheld": {
              "type": "boolean"
            },
            "summary": {
              "type": "string"
            },
            "successes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "frictions": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "recommendations": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "task_completed",
            "score",
            "score_withheld",
            "summary",
            "successes",
            "frictions",
            "recommendations"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "evidence": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "steps": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "index": {
                    "type": "number"
                  },
                  "outcome": {
                    "type": "string",
                    "enum": [
                      "success",
                      "friction",
                      "failure",
                      "blocked"
                    ]
                  },
                  "text": {
                    "type": "string"
                  }
                },
                "required": [
                  "index",
                  "outcome",
                  "text"
                ],
                "additionalProperties": false
              }
            },
            "started_at": {
              "type": "string"
            },
            "finished_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "latency_ms": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "verification_status": {
              "type": "string"
            },
            "is_mock": {
              "type": "boolean"
            }
          },
          "required": [
            "steps",
            "started_at",
            "finished_at",
            "latency_ms",
            "verification_status",
            "is_mock"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "is_benchmark": {
      "type": "boolean"
    }
  },
  "required": [
    "ok",
    "audit_id",
    "status",
    "execution_status",
    "failure_classification",
    "url",
    "domain",
    "task",
    "locale",
    "created_at",
    "updated_at",
    "report_url",
    "stale",
    "retry_after_seconds",
    "message",
    "result",
    "evidence",
    "is_benchmark"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools