How it works
You ask
“Research Acme”, “what's up?”, “process the meeting”. Any language your profile lists.
The server returns a brief
The playbook for that job with your profile filled in: the steps, which of your agent's tools to use, what to record and the next allowed step.
Your agent does it
With its own connectors: mail, calendar, Drive, Slack, your recorder, your CRM, or the local database.
You approve
Drafts wait in your mailbox or in the chat. A send happens when you say so.
That split is the point. Your agent already has your Google or Microsoft account, your files and your CRM. We do not need a copy of any of it to tell it how to run a proper sales process. The playbooks live on the server and reach your agent as it works, so they improve without a reinstall.
Getting started, end to end
From nothing to your first brief in about ten minutes. You add one server to the agent you already use, sign in with your work email, answer a short interview, and then talk to it in plain sentences. No password, no card.
- 01 · InstallOne line or one setting in your agent.
- 02 · Sign inYour email, a 6-digit code, approve.
- 03 · Set upSay “set me up”. A few minutes.
- 04 · DataYour CRM, or a local database.
- 05 · Daily useSentences, slash prompts, “send it”.
1 · Install it in your agent
SalesAgents is a remote MCP server at https://mcp.salesagents.si/mcp (streamable HTTP, sign-in by email, no API key). Name it salesagents everywhere; the slash prompts use that name.
| Your agent | What you need | Local database |
|---|---|---|
| Claude Code | Claude Code installed and signed in. A terminal. | Yes |
| OpenAI Codex CLI | Codex installed and signed in. A terminal. | Yes |
| Cursor, Windsurf, Cline | A version with remote MCP servers (all current ones). Otherwise the mcp-remote fallback with Node.js. | Yes, in agent mode |
| Claude Desktop, claude.ai | A plan that lets you add custom connectors. On Team and Enterprise, an owner or admin adds it once. | No: connect a CRM |
| A shared repository | Claude Code on every teammate's machine. | Yes, one per machine |
The local database needs an agent that can run terminal commands and Node.js 22.13 or newer (node --version). If you use HubSpot, Pipedrive, ClickUp or Salesforce you do not need it. See Data.
claude mcp add --transport http salesagents https://mcp.salesagents.si/mcp --scope user
--scope user makes it available in every project; drop it to add it to the current project only. Check it: claude mcp list shows salesagents. Then start Claude Code, type /mcp, pick salesagents and choose Authenticate if it asks; the sign-in page opens in your browser.
{"mcpServers":{"salesagents":{"type":"http","url":"https://mcp.salesagents.si/mcp"}}}
Put it in .mcp.json at the root of a shared folder or repository. Claude Code asks each teammate once to trust the project's servers, and each person signs in with their own email, so everyone gets their own workspace.
codex mcp add salesagents --url https://mcp.salesagents.si/mcp
Or in ~/.codex/config.toml: [mcp_servers.salesagents] then url = "https://mcp.salesagents.si/mcp". Check it: codex mcp list. If the browser does not open for the sign-in, run codex mcp login salesagents.
{"mcpServers":{"salesagents":{"url":"https://mcp.salesagents.si/mcp"}}}
Merge it with what is already in the file. Check it in Cursor's settings under MCP: salesagents is listed, and its connect or log-in button starts the sign-in.
{"mcpServers":{"salesagents":{"serverUrl":"https://mcp.salesagents.si/mcp"}}}
Windsurf names the key serverUrl for remote servers. Refresh the MCP list in Cascade and salesagents appears.
{"mcpServers":{"salesagents":{"type":"streamableHttp","url":"https://mcp.salesagents.si/mcp"}}}
The server shows up in Cline's MCP servers panel.
Settings → Connectors → Add custom connector, name it salesagents, paste https://mcp.salesagents.si/mcp, then press Connect next to it to sign in. In a chat, switch it on in the tools menu. On Team and Enterprise an owner adds it once for the organisation; each member still presses Connect and signs in with their own email. Desktop and claude.ai share the same connectors.
{"mcpServers":{"salesagents":{"command":"npx","args":["-y","mcp-remote","https://mcp.salesagents.si/mcp"]}}}
For a host that cannot reach a remote server directly, including an older Claude Desktop config file. mcp-remote runs on your machine, opens the sign-in page in your browser on first start and keeps the tokens in ~/.mcp-auth. The bare command is npx -y mcp-remote https://mcp.salesagents.si/mcp.
You never call the tools by name: talk to your agent and it picks the right one. On a phone? Email yourself the line and paste it later where your agent runs.
2 · Sign in with your email
The first time your agent talks to the server, it opens the sign-in page in your browser. In Claude Code that happens through /mcp, in claude.ai through Connect, in the others on first use.
- “Sign in with your email.” The page names the app that is connecting. Type your work email and press Send me the link. Use the address you want the workspace and the licence under: one email is one workspace.
- “Check your inbox.” A mail from SalesAgents <[email protected]> arrives with the subject Your SalesAgents sign-in code, followed by the app's name. It holds a 6-digit code and a Sign in button.
- Finish one of two ways. Press Sign in in the mail if it opens in the same browser that showed the sign-in page. Or type the 6-digit code into that sign-in page: this is the way when you read the mail on your phone or in another browser. Opening the button in a different browser does not sign you in there; it shows you the code to type where you started.
- “Approve the connection.” The page shows the email you signed in with, where access goes (for Claude Code, Codex and other local hosts: an app on this computer), and the tools the app may call. Press Approve and connect only if you just started this connection; Cancel otherwise.
- Back in your agent. The browser hands the connection back and your agent is signed in. You can close the tab.
Timing and limits
The code and the button work for 15 minutes and once. The sign-in page itself waits ten minutes, so finish within ten minutes of it opening. Five wrong codes close the sign-in. At most five sign-in mails per address per hour; after that the page says Too many links requested. Try again in an hour. The sign-in uses one cookie on mcp.salesagents.si to tie the code to the browser that asked, so allow cookies for that site.
How long you stay signed in. Your agent holds an access token for 24 hours and renews it quietly with a refresh token that lasts 90 days and is replaced on every renewal. Use it at least once in 90 days and you never see the sign-in page again.
Signing out or switching account. Remove the server from your agent (see Troubleshooting) or disconnect the connector; your agent then forgets the tokens. To sign in again or as someone else, in Claude Code type /mcp → salesagents → Re-authenticate; elsewhere remove and add the server, or press Connect again. Signing in with another email opens another workspace, with its own profile and licence.
The mail does not arrive. Give it a minute, then look in spam, junk or your quarantine, and search for the subject. Ask IT to allow [email protected] if mail from new senders is held. Then start again from your agent for a fresh mail. An error page saying Sign-in expired means the page waited longer than ten minutes, the code was already used, or you typed the code in a different browser from the one that asked; start again from your agent. Link expired means the link is older than 15 minutes or was already used.
3 · Set up your profile
Say set me up (in Slovenian nastavi me), or in Claude Code run /salesagents:setup. The interview is free and takes a few minutes. Before it asks anything, your agent reads what it can already see: your website, the signature in a recent sent mail, an AGENTS.md or CLAUDE.md in the workspace, your CRM's stages and the connectors it has. Then it asks only what is left, one section at a time, at most five questions a round.
| Section | What it asks |
|---|---|
| Company and brands | The company, the legal entities that sell, each brand with its mail domain, signature and sign-off. |
| People | Who sends outreach and their role, the team with roles and briefing languages, who reviews before anything goes out. |
| Voice and language | How you write, phrases that must never appear, your working languages, which language a client gets, whether a proofreader sees a language first. |
| ICP and offering | Regions, revenue and employee bands, verticals, buyer roles; what you sell, one line each. Prices never go into outreach. |
| Pipeline and links | Your stages with probabilities (a default set of nine if you have none), your booking link, website and where account folders live. |
| Integrations | Your CRM (or none), task tool, mail and calendar on Google or Microsoft, meeting recorder, and LinkedIn access. |
To finish it needs the company name, one brand with its sign-off, the owner's name, your working languages and your CRM (or “none”). The rest can wait.
Where the profile lives. On our server, under your sign-in email. It is configuration only: company, brands, people, voice, ICP, stages, links and which tools you use. Never CRM rows, mail or transcripts, and never a password or API key: those stay in your agent's own settings.
Change it later with a sentence: show my profile, change my signature, connect my Gmail and calendar. Say set me up again to go through it all.
4 · Your data
You have a CRM
- Say
connect my HubSpot(or Pipedrive, ClickUp, Salesforce). - It goes into your profile, and your agent gets a map of the everyday actions (add a company, a contact, a deal, move a stage, add a note) onto the CRM's own records.
- Your agent reads and writes through its own connector for that CRM, so install that first. We never see the rows.
You do not
- Say
create my CRM. - Your agent runs
npx https://salesagents.si/dl/salesagents-db.tgz initin the workspace folder. It creates a SQLite database at.salesagents/crm.dbwith companies, contacts, deals, notes, meetings and your stages. - Needs a terminal and Node.js 22.13 or newer. Add
.salesagents/to.gitignore: it holds customer data. After an update,set up the local databaseruns the migration with a backup first.
From a spreadsheet. Say import my contacts from a CSV: your agent reads the file on your machine, skips duplicates and adds each company, contact and deal to your CRM or the local database. The free pipeline check also takes a CSV export as it is.
On your side
- Your agent's own connectors: Gmail or Outlook, Calendar, Drive or OneDrive, Slack, meeting recorders.
- Your CRM through your agent's connector, or the local database at
.salesagents/crm.db. - LinkedIn through your own Unipile key.
- Report pages (for example the research brief) open only with the access code your agent prints.
Never
- We never ask for or keep your Google, Microsoft or LinkedIn password or token.
- No CRM rows, emails, transcripts or files are stored on our servers.
- Tool arguments are not logged; request logging is off.
- Nothing is sent from our side to your contacts.
What stays with us. Your sign-in email and a contact record (email, time, the app you connected from), the tokens issued to your agent, your profile, and the report pages of the free briefs, each behind a six-character access code and deleted after seven days. Never CRM rows, mail, transcripts or files. See the privacy notice.
Out or gone. export my data gives you the profile as JSON to keep. delete my profile removes the profile and any setup draft after you confirm; it cannot be undone. The CRM rows are already yours: in your CRM, or in .salesagents/crm.db, which you can copy or delete like any file. For anything else, including the contact record, write to [email protected].
5 · Daily use
Talk to your agent in plain sentences, in English or Slovenian. You never call a tool by name. Hosts that show MCP prompts also give you shortcuts; in Claude Code they are slash commands:
| Prompt | What it does | Tier |
|---|---|---|
/salesagents:setup | The setup interview. | Free |
/salesagents:whats-up | The morning briefing: calendar, inbox, pipeline, signals and what you owe today. | Licence |
/salesagents:research | A research brief on one company: fit, the people who decide, signals, an angle. | Free |
/salesagents:meeting-prep | A prep brief for your next meeting. | Free |
/salesagents:pipeline | The health check (gone dark, stuck, owe a reply), then the report by stage. | Check free, report licence |
/salesagents:inbox | The sales mail that needs you, with drafts. | Licence |
/salesagents:linkedin | Signals, unanswered DMs and comment drafts. | Licence |
/salesagents:next | Today's few actions that move the most money, in order. | Licence |
Free to start. Setup, your profile and four briefs: research Acme, pipeline health, prep me for my meeting with Acme and audit my DMs. Each brief opens as a report page; your agent prints the link and the access code. Everything else (the briefing, the inbox, proposals, LinkedIn, the local database and the rest of the modules) comes with the licence.
You say send. Every email, DM, comment and connection request is a draft. Your agent shows it to you and waits. send it sends exactly the draft you just saw, through your own mail or LinkedIn, and nothing else; if it is unclear which draft you mean, it asks. More under Approval.
Every morning. Say schedule my morning brief every weekday, or see Scheduling.
Modules
176 commands across twelve modules. The full reference, every sentence with what it does, is on Modules; each module also has its own page.
- 01 · Setup & data24 commands
Everything a new team does once: the profile interview, the CRM (your own, or a local one the agent creates), imports, the tools you connect, and your data out or gone.
- 02 · CRM & pipeline20 commands
The morning briefing, the pipeline by stage, the deals gone dark, and every record kept up to date with a sentence.
- 03 · Research & accounts13 commands
From a list of names to a qualified account with a plan: research, qualification, scoping, discovery material and a pre-read for leadership.
- 04 · Meetings9 commands
A prep brief before every call, scheduling and booking links, and the recording turned into notes, CRM updates and the follow-up.
- 05 · Proposals & contracts11 commands
Scope, proposal, SoW, pilot, pitch and redline review, in your own template and saved to the account's folder.
- 06 · Inbox & outreach20 commands
The replies you owe, inbox zero, cold sequences, campaigns, inbound leads and objections, all drafted in your voice and sent only when you say so.
- 07 · LinkedIn acquisition22 commands
Signals, comments, DMs, warm intros, hiring leads and the daily top-of-funnel loop, on your own account at a human pace.
- 08 · Content20 commands
Ideas from what happened this week, posts, cards, decks, demos, videos and copy, with a proofread before anything goes out.
- 09 · Partners6 commands
Find, qualify and onboard partners, keep them updated, and see who owes whom an introduction.
- 10 · Projects & handover10 commands
The project opened from the signed SoW, a plan with tasks per person, blockers, monthly reports and scope kept in check.
- 11 · Reports & automation11 commands
Daily and weekly reports, dashboards, the team's focus, and recurring jobs scheduled in your own harness, not on our cron.
- 12 · Optional · Slovenian pack10 commands
Business registry enrichment, NDA, DPA and framework agreements, invoice instructions with DDV, and Slovenian proofreading. Switch it on in your profile.
The same sentences work in Slovenian. You do not need the exact words: the server routes what you meant.
The tools, briefly
Your agent sees these as MCP tools. You never type their names; it picks one from what you said.
| Tool | What it is for |
|---|---|
sa_help | Turns what you said into the right module and the next step. Free. |
sa_setup | The setup interview that writes your profile. Free. |
sa_profile | Read or change one part of the profile, such as a signature or a pipeline stage. Free. |
| Module tools | One per job: briefing, pipeline report, research, meeting prep and processing, proposal, SoW, inbox review, outreach, LinkedIn, content, partners, project handover. Every sentence they answer to is on Modules. |
Scheduling
Recurring work runs in your own setup, not on our cron: the morning briefing, the weekly pipeline review and the daily LinkedIn pass. Say schedule my morning brief every weekday and your agent sets it up where it can. In Claude Code that is /schedule running /salesagents:whats-up; elsewhere a cron entry or a Codex automation that runs the same sentence. A scheduled run prepares drafts and waits for you like any other.
Approval rules
- Every external send (email, DM, comment, connection request, like) is a draft until you say
send itfor that draft. send itis never a send by itself: it approves the one draft you just saw, and your agent sends it through your own mail or LinkedIn.- Prices never go into outreach unless you write them in.
- Your voice rules apply to every draft: banned phrases, length limits, sign-offs and the rules against machine-sounding text.
- The server itself sends nothing to your contacts. It has no access to your mailbox, calendar, CRM or LinkedIn.
What it cannot do
- It cannot use a tool your agent does not have. No calendar connector, no meeting prep from the calendar; it says what is missing.
- The local database needs an agent that can run commands (Claude Code, Codex, Cursor). On claude.ai and Claude Desktop, connect a CRM.
- It does not send. Sends happen in your agent, on your say-so.
Licence
Free: connecting, the setup interview, your profile, export and delete, and the four briefs above. With the licence: every playbook in the modules, the local database and playbook updates without a reinstall. Plans are on the pricing page.
- Ask in your agent:
do I have the licence?It tells you whether this email holds one and until when. A licensed tool you call without it says so and offers to request access; your agent asks you before it does. - Say yes, and your agent requests it for the email you signed in with. You get a mail, SalesAgents request received, with the next step, and a person on our side is told. Or use the request form on the pricing page with the same email.
- Once it is paid, the licensed tools unlock on that email within a minute, in every agent where you signed in with it. No reinstall. The free tools keep working meanwhile.
Troubleshooting
My agent keeps asking me to sign in, or says 401
/mcp → salesagents → Re-authenticate; in claude.ai Connect; elsewhere remove and add the server. With mcp-remote, delete ~/.mcp-auth and restart the host. If it loops, finish the sign-in in the browser the page opened in, with cookies allowed for mcp.salesagents.si, and within ten minutes.I signed in with the wrong email
delete my profile.My host has no remote MCP support
The sign-in mail does not come
Behind a corporate proxy or firewall
HTTPS_PROXY setting. claude.ai connectors connect from Anthropic's side, so your office network does not block them, but the sign-in page still opens in your browser.mcp.salesagents.si does not resolve
nslookup mcp.salesagents.si. If your network's DNS filter or a stale cache answers nothing, try another network or resolver, or ask IT to allow the domain.The local database will not start
node --version: it needs 22.13 or newer. On claude.ai and Claude Desktop there is no terminal, so connect your CRM instead. The local database also needs the licence.How do I remove it?
claude mcp remove salesagents --scope user (or without the scope for a project). Codex: codex mcp remove salesagents. Cursor, Windsurf, Cline: delete the salesagents entry from the config file. claude.ai and Desktop: Settings → Connectors → remove it. Removing it does not delete your profile on our side: say delete my profile before you remove it if you want that gone too.Something else
Install it, then say “what's up?”
Sign-in is by email. Start free with one sentence; the plans are on the pricing page.