recipe

Turn Claude Code into a sales agent. One that knows a buyer from a bystander.

Published · tools checked against the live MCP server the same day

Connect SignalPipe’s MCP server and Claude Code gets 24 tools. It can judge any text for buying intent with three independent judges, keep a queue of leads from feeds you choose, draft replies for you to approve, and follow up with the people who answer. Nothing goes out without your approval.

What you need

1. Connect SignalPipe

One command adds the server to the current project:

claude code
claude mcp add --transport http signalpipe https://api.signalpipe.io/mcp \
  --header "Authorization: Bearer YOUR_OPERATOR_KEY"

To use it in every project, add --scope user:

claude code, every project
claude mcp add --scope user --transport http signalpipe https://api.signalpipe.io/mcp \
  --header "Authorization: Bearer YOUR_OPERATOR_KEY"

Or share it with your team in the project’s .mcp.json. Claude Code fills in environment variables there, so the key stays out of the repository:

.mcp.json
{
  "mcpServers": {
    "signalpipe": {
      "type": "http",
      "url": "https://api.signalpipe.io/mcp",
      "headers": { "Authorization": "Bearer ${SIGNALPIPE_OPERATOR_KEY}" }
    }
  }
}

Run /mcp inside Claude Code to check the server is connected.

2. Describe what you sell, once

SignalPipe judges text against a product profile: who buys it, what it does for them, and a few anchor sentences written in the buyer’s voice. Let Claude Code interview you:

prompt
Set up SignalPipe for my product. Ask me what it is, who buys it and
what it does for them. Suggest anchor sentences with suggest_anchors,
show them to me, and add the product with add_product once I approve.

It calls suggest_anchors, shows you the sentences, and calls add_product after you approve them. Describe one buyer, narrowly. If you have clearly different buyers, add each as its own product.

3. Judge the text you already have

This is the core of a sales agent that does not waste your time. Claude Code already reads your email exports, support tickets, CRM notes and the posts other MCP servers fetch. Hand any of it to score_signal:

prompt
Here is an email thread from a prospect. Judge the last message with
SignalPipe's score_signal, using my product, source_hint "gmail" and the
earlier messages as context. Tell me the verdict, whether the judges
agreed, and whether it is worth a reply.

Each verdict says whether the text reads as a buyer, a competitor mention, churn risk or noise; whether the three judges were needed; and whether they agreed. When the judges split, read that one yourself. When a verdict is marked degraded, the panel could not run, so treat it as provisional rather than “not a buyer”. For a reply or a comment, pass the message it answers as context, as the prompt above does. Replies to cold email work the same way; the Instantly recipe pairs Instantly’s MCP server with this one. For what a written buying signal looks like, see buying signals.

4. Work a lead queue (optional)

If you want SignalPipe to find text for you as well, add feeds: any RSS or Atom feed from a community, forum or search alert. Check a feed before you add it:

prompt
Check whether https://hnrss.org/newest?q=crm+alternative has buyers for
my product with preview_station. If the verdict is VIABLE or MARGINAL,
add it as a station.

Leads the judges keep arrive with a drafted reply that answers what the person asked. Review them in Claude Code:

prompt
Show me today's leads. For the strongest one, get the drafting context
with draft_mission, write a reply that answers what they asked, show it
to me, and upload it with upload_draft once I have edited it.

Approve what is worth sending with approve_mission, or record a reply you already made by hand with mark_sent. Reject the rest with reject_mission and a reason, so the feed it came from learns; if a post has simply disappeared, delete_mission clears it without teaching anything.

5. Follow up with the people who answer

prompt
The founder I replied to yesterday wrote back: "Sounds useful. What
does it cost for a team of three?" Record it with record_reply and tell
me their new stage and what to say next.

record_reply reads the reply and updates the prospect’s temperature, stage and objections. It also says when someone asked not to be contacted, and when a reply explicitly asks to continue in private: Reddit and X require that consent before an app sends a private message. get_pipeline lists your prospects hottest first.

What it will not do

The 24 tools

Judge any text

score_signal

Judge a message, post, email or ticket for buying intent, competitor mentions, churn or noise.

Your lead queue

get_missions

List the leads waiting for your review, with their drafted replies.

draft_mission

Get the context for writing the reply to one lead.

upload_draft

Save the reply you wrote for a lead.

approve_mission

Approve a lead and queue its reply.

reject_mission

Reject a lead with a reason, so the feed it came from learns.

delete_mission

Clear a lead without teaching anything, for example when the post is gone.

mark_sent

Record that you already replied by hand.

Follow-up

get_pipeline

Your prospects, hottest first.

record_reply

Record what a prospect wrote back and get their new stage.

get_message_prompt

Get the context for your next message to a prospect.

record_message

Record a message you sent.

track_prospect

Log what a prospect did, such as booking a demo or going quiet.

What you sell

get_products

List your products.

suggest_anchors

Suggest anchor sentences in the buyer’s voice.

add_product

Add a product to judge text against.

update_product

Edit, pause or resume a product.

reload_products

Reload products after a change.

Feeds (optional)

preview_station

Check a feed for buyers before adding it. Nothing is saved.

add_station

Add a feed for a product.

list_stations

Your feeds, each with a health readout.

update_station

Pause, resume, rename or re-point a feed.

remove_station

Remove a feed.

scout_now

Read your feeds now instead of waiting for the next pass.

Every tool and parameter carries its own description, which Claude Code reads before calling it. The same server is on the agents page, with the OpenAPI spec for scripts.

What it costs

Judging is metered in judgements. One judgement is one run of the three-judge panel. Text that is clearly noise, or clearly a buyer, is decided without the panel and costs nothing, so judging normally spends well below one judgement per message. Plans start at $29 a month for 3,000; see pricing.

See a verdict before you connect anything.

Paste a real message into the live panel and watch the three judges decide. Free, and no account needed.

Questions

Is this a Claude Code skill or a plugin?

Neither. SignalPipe is an MCP server: Claude Code connects to it with one command and gets 24 tools. The same server works in Cursor, Windsurf, claude.ai and any other MCP client.

Does Claude Code send the replies for me?

No. It drafts, and you approve. Approved replies go out from your side and your own accounts. Public Reddit comments, X replies and private messages are never approved automatically, whatever the settings.

Where do the leads come from?

From two places. Any text you give Claude Code, such as an email, a support ticket or a post from another MCP server, which it judges with score_signal. And, if you want them, the RSS or Atom feeds you add as stations. Feeds are optional.

How do I keep my operator key out of the repository?

Claude Code expands environment variables in .mcp.json. Put Bearer ${SIGNALPIPE_OPERATOR_KEY} in the header, as in the example on this page, and set the variable in your shell.

What does it cost?

Judging is metered in judgements: one judgement is one run of the three-judge panel. Text that is clearly noise, or clearly a buyer, is decided without the panel and costs nothing. Plans start at $29 a month for 3,000 judgements.

Sources