Surface AI
Server Details
Test and personalize your site's pages from Claude Code or Codex, and check results. Key required.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2026-07-28
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 12 tools
Surface and variant operations are generally clearly separated, and the analytics tools split conversion/winner metrics from daily traffic. The main overlap is surface_create vs surface_setup, since both create surfaces and setup can also create variants, though the descriptions distinguish basic creation from one-step page setup.
All tools use snake_case and consistently namespace operations under surface_ or variant_. The resource-prefix pattern is predictable across create, get, list, update, status, control, results, and traffic operations.
Twelve tools is well-scoped for a surface A/B testing server: seven surface-focused tools and five variant-focused tools cover setup, management, and analytics without obvious padding. The composite surface_setup earns its place as a guided one-step workflow.
The core lifecycle is covered: surfaces can be created, fetched, listed, updated, configured, and analyzed, while variants can be created, listed, edited, activated, paused, archived, and made control. Minor gaps remain around post-setup goal management and a dedicated surface delete, though status changes likely provide a workaround.
Available Tools
12 toolssurface_createCreate a surfaceCInspect
Create a new surface. Add its content with variant_create, and deploy the integration snippet from the dashboard.
Inputs: name (required), page_url (required), paradigm (required), description.
surface_getGet a surfaceBInspect
Full details for one surface, including its edge_url and dashboard_url. To open the surface in the dashboard, open dashboard_url.
Inputs: surface_id (required).
surface_listList surfacesAInspect
List every surface in the caller's organization.
Inputs: no named parameters.
surface_resultsGet a surface's resultsAInspect
How a surface's test is doing: per variant, its sessions, sessions that reached the goal, conversion rate (rate_per_session) and win_probability — the bandit's estimated chance that variant is best. termination.should_terminate is the bandit's own signal that the test has a clear winner. Also all-time traffic per event. Results are recomputed hourly; before the first run, variants is empty and note says why. Link the user to dashboard_url for charts.
Inputs: surface_id (required).
surface_setupSet up a surface on a pageAInspect
Create a surface for a page in one step: the content fields it swaps, the goals it optimizes, and the variants — with the integration bundle deployed. Returns the install guide for adding the snippet to that page. Ask the user to choose the fields, goals and variants first; the new_surface prompt walks through it. Prefer data-attribute selectors such as [data-surface-field="headline"], added to the page source. Variants go live as soon as the snippet is deployed.
Inputs: name (required), goals (required), fields (required), page_url (required), +2 more.
surface_trafficGet a surface's daily trafficCInspect
Sessions per day for a surface, optionally between two dates.
Inputs: surface_id (required), end_date, start_date.
surface_updateUpdate a surfaceCInspect
Change a surface's name, description, status, paradigm, edge route, page URL or location.
Inputs: surface_id (required), name, status, location, +4 more.
variant_createCreate variantsBInspect
Add one or more content variants to a surface.
Inputs: variants (required), surface_id (required).
variant_listList variantsCInspect
List the content variants served by a surface.
Inputs: surface_id (required).
variant_set_controlSet the control variantBInspect
Make a variant the control of its segment, replacing the current control.
Inputs: surface_id (required), variant_id (required).
variant_set_statusSet a variant's statusAInspect
Activate, pause or archive a variant. Only active variants are served.
Inputs: status (required), surface_id (required), variant_id (required).
variant_updateEdit a draft variantAInspect
Replace a draft variant's contents. Only drafts can be edited.
Inputs: contents (required), surface_id (required), variant_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Live SEO workflow tools for Claude Code, Codex, and AI agents.
Website checker for AI coding agents. Measures your site in a real browser, with evidence.
How ChatGPT, Claude, Gemini and Perplexity read a site: free check, fix plan, compare, history.
AI website builder: build, publish and edit websites from Claude, ChatGPT or Claude Code.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceTurn ChatGPT into Codex! OR Turn Claude Web into Claude Code!693 npm5,447MIT

Menso MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables AI clients to launch real purchase or signup test runs against a live public URL and then fetch run status, scored findings with friction points and suggested fixes, and a public replay of every step taken. It works over Streamable HTTP with an API key, so no installation is needed in Claude Code, Cursor, Windsurf or any compatible client.3 npmMIT- AlicenseNot gradedqualityAmaintenanceGives Claude Code a real browser so it can navigate, click, type, screenshot, and assert against web pages directly from the terminal. Enables multi-step test scenarios, visual regression checks, session recording, and console/network error monitoring with security controls.106 npmMIT
- AlicenseAqualityBmaintenanceLets AI agents like Claude capture website screenshots, check cache status, and monitor usage.113MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.