What people build with it
The MCP server is not a second Selda. It is the same engine with a different front door, so the useful question is not “what can it do” but “what does it let you stop doing by hand”. Seven patterns, each one built from tools that exist today.
Nothing here sends. There is no send tool in the MCP surface and there never will be. Every pattern below ends in drafts a human approves in the Selda app. That is precisely what makes it safe to let a model drive the rest.
1. Ask about your own company, in the tool you already use
For: anyone who is not a developer and never wants to be.
You connect Selda to ChatGPT or Claude once, from the app, with no key to copy. After that your assistant can see what your company actually knows — and answer from that instead of guessing.
- “Who should I be talking to at Acme, and what do we already know about them?”
- “What happened in my campaigns this week?”
- “Who replied and hasn’t been answered yet?”
- “Remember that we now also sell the maintenance package” — goes into the Brain, and every future message is written knowing it
The tools behind these are projects.get, leads.list, messages.byLead, campaigns.stats,
knowledge.get and brain.add. You never type a tool name; you ask a question.
This is the pattern most people end up using, and it needs no code at all.
2. Your own AI tool drives the campaign
For: anyone who already works in ChatGPT, Claude or Cursor and does not want a second place to think.
You write the brief where you are. Selda does the finding and the writing. The work comes back to you, you improve it, and it goes back — without either side becoming a copy-paste job.
| step | tool |
|---|---|
| the brief becomes a run | engine.start |
| poll it | runs.status — awaitingHuman names what it is waiting for |
| confirm the company list | in the app: Selda proposes the companies and the decision-maker roles, you decide |
| read every company, contact and draft | runs.leads |
| write your improved version back | drafts.update |
The run stops once it has the company list (awaiting_profile) and waits for you to confirm or
edit it. That gate is deliberately not something an API key can press — Selda proposes, you decide —
so a script should treat awaitingHuman as “your turn”, never as a hang and never as a finish.
Then you approve and send in the app. A run of ten leads takes a few minutes of engine time; asking for two is not faster, because discovery costs the same either way.
3. Your product’s signups become leads
For: anyone with their own software, where the interesting event happens outside Selda.
Someone registers, books a demo, or reads the pricing page three times. Your backend says so, and that person is in the pipeline — no export, no weekly copy-paste.
events.ingest— report that something happened outside Seldaleads.add/leads.addBatch— add the company and contact directly, withanalysiscarrying research you already have
This is the direction people usually mean by “inbound”. It needs no new integration: it is one call from your backend.
4. Your CRM stays the system of record
For: teams who already have a CRM and are not migrating to a new one.
Selda finds, researches and writes. Your CRM keeps owning the truth. The two stay in step through events rather than a sync.
webhooks.create— register your endpoint forreply.received,meeting.booked,campaign.completed,lead.added,message.sent,credits.lowleads.list,messages.byLead— read the pipeline and the full thread on your own schedule
5. Research you already did
For: anyone with a folder of analyses, notes or PDFs about their prospects.
Selda uses your material as the authoritative source instead of crawling the sites again — your judgement about a company beats a fresh scrape of its homepage.
POST /mcp/material/upload— one file per company; the path groups them (boreo/analyysi.pdf)material.import— the folder becomes a campaign and a company list, and stops there for review
To attach research to a single company instead, pass analysis on leads.add.
6. Replies handled in your own stack
For: anyone whose conversations should live where their team already is.
webhooks.create—reply.receivedfires the moment an answer landsreplies.classify— interested, not now, wrong person, unsubscribereplies.draft— an answer written by the same engine that wrote the opener, with the same guards
The reply conversation stays yours by default. Selda drafts; you decide and send.
7. One key per client
For: agencies and operators running several businesses in one organisation.
A key created from a workspace is bound to that workspace. You can connect one client to one tool without exposing the others.
projects.listreturns only the workspace the key belongs to- any call aimed elsewhere is refused with
403 workspace_not_allowed
Keys created before 8 August 2026 carry no binding and stay organisation-wide, so nothing you already connected changes. Create a new key from a workspace to scope it.
Zapier, Make and n8n
A common question, and the answer has two halves.
These platforms do not speak MCP. MCP is a protocol for AI assistants — Claude, ChatGPT, Cursor — and Zapier is not one of them. So Selda’s tools do not appear in Zapier’s tool list.
They do not need to. Everything the MCP server can do is the same HTTP API underneath, and that is exactly what an automation platform is good at:
| direction | how |
|---|---|
| Zapier → Selda | Webhooks by Zapier, POST to https://api.selda.ai/mcp/mutate with header Authorization: Bearer sk_… and body {"fn":"leads.add","args":{…}} |
| Selda → Zapier | webhooks.create pointed at a Catch Hook URL; Selda POSTs plain JSON with the event in a header |
So a Zap like “new row in Google Sheets → add a lead in Selda” or “Selda got a reply → post it to Slack” works today, with no integration to install. The same is true of Make and n8n.
The one thing to know: a webhook out of Selda is signed. Verify the signature header if the receiving side is public, exactly as you would with Stripe.
What it costs
Test keys are free, and are not gated on a plan or an invoice. You can build the entire integration, push in leads, knowledge and events, read everything back and edit drafts — on any plan, including free.
The calls that spend real money or reach real people need a live workspace on a paid plan:
company.lookup, leads.enrich, leads.enrichBatch, connectors.sync and engine.start.
Each one states its own reason in liveOnlyReason in the
capability manifest, and the refusal says it in
plain words rather than a code:
{ "code": "live_key_required:paid_engine_run",
"message": "This runs Selda's discovery engine, which spends real money searching,
crawling and researching companies, so it needs a live key on a paid plan." }→ Set it up: MCP server · Full tool list: reference