# What You Can Build



Surface ships its own [agents](https://www.withsurface.com/docs/platform/sam/overview). This page is the other
half: what you can build yourself against the same workspace, with your own
model and your own prompt.

Each recipe below names the tool families it needs, so you can load only those.
[Tool Bundles](https://www.withsurface.com/docs/mcp-server/tool-bundles) covers the `?tools=` syntax.

## A Content Agent [#a-content-agent]

Drafts against your own positioning, then takes the draft through review and
publishing without a person moving text between tools.

|              |                                                                                                                                                        |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Load**     | `?tools=content` plus the Vault: `?tools=content,vault`                                                                                                |
| **Reaches**  | 25 CMS tools, 12 content review tools, 7 content analytics tools, 4 Vault tools                                                                        |
| **The move** | Read [the Vault](https://www.withsurface.com/docs/platform/vault/overview) for voice and proof first, draft into the CMS, then use the review pipeline rather than publishing straight |

Reading the Vault before drafting is the whole difference between this and a
generic writing agent. It is also what Surface's own writer does.

## An AI Visibility Agent [#an-ai-visibility-agent]

Watches where you show up when a buyer asks an answer engine, and acts on the
gaps.

|              |                                                                                                                                 |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------- |
| **Load**     | `?tools=aiVisibility,contentAnalytics`                                                                                          |
| **Reaches**  | 11 AI visibility tools, 7 content analytics tools                                                                               |
| **The move** | Read the tracked prompts and per-model scores, find who gets cited instead of you, then hand the gap to the content agent above |

## A Lead Triage Agent [#a-lead-triage-agent]

Decides which leads are worth a human, and says why.

|              |                                                                                                                          |
| ------------ | ------------------------------------------------------------------------------------------------------------------------ |
| **Load**     | `?tools=insights`                                                                                                        |
| **Reaches**  | 7 analytics, 6 AI scoring, 3 leads, 2 responses, 2 workflow tools                                                        |
| **The move** | Pull the scored leads, read the responses behind them, and check the workflow runs when a lead did not route as expected |

## A Form Building Agent [#a-form-building-agent]

Builds and edits forms from a plain-English spec.

|              |                                                                                                                                |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------ |
| **Load**     | Nothing. The 33 forms tools are in the default connection                                                                      |
| **Reaches**  | Steps, components, conditional routing, styling, the marketing pane, publishing                                                |
| **The move** | `list_component_types` and `describe_component_type` return the exact schema at runtime, so your agent never guesses a payload |

Edits save a **draft**. Nothing a visitor sees changes until `publish_form`.

## A Campaign Reporting Agent [#a-campaign-reporting-agent]

Answers questions about a running outbound campaign from its own tables.

|              |                                                                                                                                  |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------- |
| **Load**     | `?tools=campaigns` (which carries the Vault too, deliberately)                                                                   |
| **Reaches**  | 4 read-only campaign tools, 4 Vault tools                                                                                        |
| **The move** | `list_campaign_tables` first, then `describe_campaign_table` before any query. Column names come from there; a guessed one fails |

The Vault rides along because a campaign's schema notes live at
`Campaigns/<slug>/schema.md` and are the other half of understanding its
tables.

## A CRM Context Agent [#a-crm-context-agent]

Answers "what do we already know about this account" before a call.

|              |                                                                                             |
| ------------ | ------------------------------------------------------------------------------------------- |
| **Load**     | Nothing. The 12 HubSpot tools are in the default connection                                 |
| **Reaches**  | Companies, contacts, open deals, pipelines, owners, activities, properties                  |
| **The move** | `hubspot_list_properties` first to discover internal names, then look up by domain or email |

Read-only, and HubSpot only. There is no Salesforce, Attio or Zoho read surface
over MCP today.

## What You Cannot Build Yet [#what-you-cannot-build-yet]

Worth knowing before you scope something, because a family that does not exist
is a wall rather than a workaround:

|                      |                                                                                                                                        |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| **An ads agent**     | No ads tool family. Meta Ads insights and LinkedIn lead sync are [connectors](https://www.withsurface.com/docs/platform/integrations/ads), not tools an agent can call |
| **An SEO agent**     | No SEO tool family. The nearest real thing is the content agent above, working from AI visibility gaps                                 |
| **A meetings agent** | No meetings tool. The app tracks completed and no-show meetings; MCP cannot reach them                                                 |
| **A segments agent** | No segments tool at all. Not a family, not a method                                                                                    |
| **A routing agent**  | `set_step_routing` is form-step routing, not lead routing. Lead routing is configured, not called                                      |

If one of these is what you need, [tell us](mailto:founders@withsurface.com):
what is missing is a tool family, and that is a thing we can add.

[Tool Bundles →](https://www.withsurface.com/docs/mcp-server/tool-bundles) ·
[Full tool reference](https://www.withsurface.com/docs/mcp-server/tools) ·
[API setup](https://www.withsurface.com/docs/mcp-server/setup)
