Skip to content

MCP: read here, act on the platform

Two connect lines: read these docs keyless, then act on your Startup through the platform MCP, try mode first.

Two lines connect your agent. The first reads these docs without a key; the second acts on your Startup, and every write runs in try mode first.

Connect your agent: read, then act
claude mcp add --transport http salesbuilder-docs https://salesbuilder.dev/mcp
claude mcp add --transport http startup-builder https://api.sb/mcp
Act through MCPMode try
You, to your agent

Pick three Plays for our hours and budget, and show me the first task, as a dry run.

curl -X POST "https://api.sb/leaseline.app/play-mixes/compile?mode=try" \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"startup":"leaseline.app"}'

curl -X POST https://api.sb/leaseline.app/tasks/next \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
import { $ } from 'startup-builder'

await $.PlayMix.compile({ startup: 'leaseline.app' }, { mode: 'try' })
return await $.Task.next()   // the first Task
npx startup-builder do PlayMix.compile --json '{"startup":"leaseline.app"}' --try
npx startup-builder do Task.next
{
  "name": "do",
  "arguments": {
    "code": "await $.PlayMix.compile({ startup: 'leaseline.app' }, { mode: 'try' })\nreturn await $.Task.next()   // the first Task",
    "mode": "try"
  }
}
Response200application/json
{
  "task": {
    "$id": "https://api.sb/leaseline.app/tasks/task_1",
    "$type": "Task",
    "status": "pending",
    "mode": "try"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/action_1",
    "operation": "Task.next",
    "status": "done"
  }
}
sample

MCP

Tool on salesbuilder.dev/mcpWhat it doesInput
searchFinds pages, Plays and refusal codes on this site by keyword.{ query, limit }
fetchReturns one page as Markdown by its path, such as /plays/instant-response.{ id }
guidesReturns the guides whose phrasings answer a task, with the calls each runs.{ phrase, limit }
Read it keyless, from any shell
curl -s https://salesbuilder.dev/mcp -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
curl -s https://salesbuilder.dev/mcp -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"guides","arguments":{"phrase":"my first cold email won’t go out","limit":1}}}'

GET and DELETE on it answer 405, and a notification answers 202. It reads; it never acts.

Tool on https://api.sb/mcpWhat it doesInput
searchFinds records, Nouns, Verbs, and docs by keyword, meaning, or filter.{ query, limit }
fetchReturns one record, list, or definition by id or path; /$.d.ts returns the types of $.{ id }
doRuns a short TypeScript program with the typed $ in scope, as one Action.{ code, mode }

To act, an agent sends one program to do as { code, mode: 'try' } first: it waits for the result and stores nothing. The MCP tab of every Run it window on this site is that call.

Compiled, not written: edit its page, then regenerate. Every step runs from a sentence or a line of code. In your words: the CRM words you know, and where each lives here.