Docs · MCP server

Install, sign in, set up. Then just ask.

SalesAgents is a remote MCP server. It does not log into your mailbox or your CRM: it tells your agent what a good salesperson would do next, and your agent does it with the tools it already has. This page is everything from the first install line to your daily brief; every command, with what it does, is on Modules.

Endpointhttps://mcp.salesagents.si/mcpstreamable HTTP · sign-in by email

Free to connect. The first call opens a sign-in page and emails you a one-time code. No password, no card. Jump to your install line →

How it works

01 · you

You ask

“Research Acme”, “what's up?”, “process the meeting”. Any language your profile lists.

02 · remote

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.

03 · local

Your agent does it

With its own connectors: mail, calendar, Drive, Slack, your recorder, your CRM, or the local database.

04 · you

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.

  1. 01 · InstallOne line or one setting in your agent.
  2. 02 · Sign inYour email, a 6-digit code, approve.
  3. 03 · Set upSay “set me up”. A few minutes.
  4. 04 · DataYour CRM, or a local database.
  5. 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 agentWhat you needLocal database
Claude CodeClaude Code installed and signed in. A terminal.Yes
OpenAI Codex CLICodex installed and signed in. A terminal.Yes
Cursor, Windsurf, ClineA version with remote MCP servers (all current ones). Otherwise the mcp-remote fallback with Node.js.Yes, in agent mode
Claude Desktop, claude.aiA plan that lets you add custom connectors. On Team and Enterprise, an owner or admin adds it once.No: connect a CRM
A shared repositoryClaude 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 Codeterminal
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.

Claude Code, shared with the team.mcp.json
{"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.

OpenAI Codex CLIterminal
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.

Cursor~/.cursor/mcp.json
{"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.

Windsurfmcp_config.json
{"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.

Clinecline_mcp_settings.json
{"mcpServers":{"salesagents":{"type":"streamableHttp","url":"https://mcp.salesagents.si/mcp"}}}

The server shows up in Cline's MCP servers panel.

Claude Desktop · claude.aiconnector

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.

Anything that only runs stdiofallback · Node.js
{"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.

  1. “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.
  2. “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.
  3. 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.
  4. “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.
  5. 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.

SectionWhat it asks
Company and brandsThe company, the legal entities that sell, each brand with its mail domain, signature and sign-off.
PeopleWho sends outreach and their role, the team with roles and briefing languages, who reviews before anything goes out.
Voice and languageHow you write, phrases that must never appear, your working languages, which language a client gets, whether a proofreader sees a language first.
ICP and offeringRegions, revenue and employee bands, verticals, buyer roles; what you sell, one line each. Prices never go into outreach.
Pipeline and linksYour stages with probabilities (a default set of nine if you have none), your booking link, website and where account folders live.
IntegrationsYour 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 init in the workspace folder. It creates a SQLite database at .salesagents/crm.db with 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 database runs 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:

PromptWhat it doesTier
/salesagents:setupThe setup interview.Free
/salesagents:whats-upThe morning briefing: calendar, inbox, pipeline, signals and what you owe today.Licence
/salesagents:researchA research brief on one company: fit, the people who decide, signals, an angle.Free
/salesagents:meeting-prepA prep brief for your next meeting.Free
/salesagents:pipelineThe health check (gone dark, stuck, owe a reply), then the report by stage.Check free, report licence
/salesagents:inboxThe sales mail that needs you, with drafts.Licence
/salesagents:linkedinSignals, unanswered DMs and comment drafts.Licence
/salesagents:nextToday'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.

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.

ToolWhat it is for
sa_helpTurns what you said into the right module and the next step. Free.
sa_setupThe setup interview that writes your profile. Free.
sa_profileRead or change one part of the profile, such as a signature or a pipeline stage. Free.
Module toolsOne 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 it for that draft.
  • send it is 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.

  1. 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.
  2. 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.
  3. 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
Its saved sign-in is gone or was refused. Sign in again: in Claude Code /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
Each email is its own workspace with its own profile and licence. Sign in again with the right one (above). The other workspace stays until you delete it: sign in with it and say delete my profile.
My host has no remote MCP support
Use the mcp-remote fallback. It runs locally with Node.js and talks to the server for your host.
The sign-in mail does not come
Check spam and quarantine, allow [email protected], and start again from your agent. After five mails in an hour the page says Too many links requested. Try again in an hour. Wait, then try once.
Behind a corporate proxy or firewall
Allow HTTPS to mcp.salesagents.si: the MCP endpoint and the sign-in pages both live there. The local database also downloads once from salesagents.si. A terminal agent (Claude Code, Codex, mcp-remote) follows your 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
Check with 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
Check 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 Code: 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
Write to [email protected] with your agent's name and what it said. A person reads every mail. The FAQ has more.

Install it, then say “what's up?”

Sign-in is by email. Start free with one sentence; the plans are on the pricing page.