What You Can Build
Six agents you can build on Surface MCP, the exact tool families each one needs, and the ones you cannot build yet.
Surface ships its own agents. 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 covers the ?tools= syntax.
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 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
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
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
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
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
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
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, 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: what is missing is a tool family, and that is a thing we can add.
Ready to Get Started?
See it on your own site, or open the app and build the first form.