Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.signal-found/sf-mcp

PYPI · SF-MCP

Reddit outreach at scale — find prospects, send 1000s of DMs/day, and manage your CRM via AI agents.

Available components

−3 this week 77 Trust /100

Last scanned (8 hours ago)

Scores higher than 74% of PyPI servers

Category CRM and Sales

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 0 of 28 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency45
Schema Quality & AI Usability73
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 3257 tokens (~81/item across 40 items; 40 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management77
  • Stability observed for 23 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "send_reddit_message" implies "send" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 40 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +12
    • Malware scan: unverified → pass ▲ security
    • Stability: pass → 0.77 functional
  • 3 Nov 26 −15
    • Malware scan: pass → unverified ▼ security
  • 2 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
  • 30 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
    • Stability: 0.97 → pass security
  • 29 Oct 26 0
    • Stability: pass → 0.97 functional
  • 23 Oct 26 0
    • Stability: 0.97 → pass security
  • 22 Oct 26 0
    • Stability: pass → 0.97 functional
  • 19 Oct 26 0
    • Security disclosure: unverified → fail ▼ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed pypi/sf-mcp@0.1.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi
Reason No attestation published

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted setuptools.build_meta

Background: Why install scripts are a supply-chain risk →

Dependencies 28 packages
Packages resolved 28
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 40 exposed · ~3,257 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
agent_quickstart ~37

Zero-context onboarding playbook for agents using this MCP server. Returns the recommended call sequence, common guardrails, and recovery hints.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

billing_and_credits ~69

Get billing + credits overview, and optionally create a checkout session preview/action.

NameTypeReqDescription
cancel_url–––
checkout_planstring––
client_id–––
history_limitinteger––
include_checkout_previewboolean––
success_url–––

Structured output declared, but exposes no named fields.

No examples provided.

change_crm_state ~52

Change a customer's CRM conversion state (category) for a product.

NameTypeReqDescription
categorystringyes–
client_id–––
customer_namestringyes–
product_slugstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

compare_confirmed_vs_uninterested ~60

Pull sample confirmed and uninterested conversations and return side-by-side message snippets.

NameTypeReqDescription
client_id–––
confirmed_countinteger––
product_slugstringyes–
uninterested_countinteger––

Structured output declared, but exposes no named fields.

No examples provided.

configure_product_strategy ~57

Read/update product strategy assets: market position, conversion notes, and funnels.

NameTypeReqDescription
client_id–––
conversion_notes–––
funnels–––
market_position_patch–––
product_slugstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

configure_targeting ~80

Read/update subreddit targeting and keywords for a product.

NameTypeReqDescription
check_subredditsboolean––
client_id–––
keyword_search_params–––
keywords–––
product_slugstringyes–
setup_keywordsboolean––
setup_subredditsboolean––
subreddit_groups–––

Structured output declared, but exposes no named fields.

No examples provided.

create_new_account ~90

Create a brand-new Signal Found client account for onboarding. Requires: - `business_name` - `email` Returns created `client_id` and (by default) logs this MCP session into it. Next step after success: - call `create_new_product`

NameTypeReqDescription
auto_loginboolean––
business_namestringyes–
emailstringyes–
source–––

Structured output declared, but exposes no named fields.

No examples provided.

create_new_product ~133

Create a product and initialize the agent onboarding session context. The response includes: - product creation result - context packet (existing artifacts + screenshot uri) - prompt pack + version metadata Prerequisite: - authenticated session via `login_with_client_id` (or provide `client_id` explicitly) Next step after success: - call `run_full_agentic_onboarding` (or run staged tools manually)

NameTypeReqDescription
client_id–––
folder_id–––
idempotency_key–––
product_namestringyes–
session_id–––
website_urlstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

crm_customers_by_state ~60

List CRM customer data filtered by conversion states with explicit dedupe diagnostics.

NameTypeReqDescription
client_id–––
include_conversationsboolean––
limitinteger––
product_slugstringyes–
states–––

Structured output declared, but exposes no named fields.

No examples provided.

crm_state_stats ~45

Return CRM state statistics (unique deduped customer counts by conversion_state).

NameTypeReqDescription
client_id–––
limitinteger––
product_slugstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

crm_workbench ~164

CRM read/write operations (no reply generation and no DM sending). Use `action` to select operation; each action has its own required fields. This tool intentionally excludes outbound messaging behaviors. Supported actions: - list_customers - prospect_stats - get_conversation_by_id - update_conversion_state - update_blacklist - get_notes - update_notes

NameTypeReqDescription
actionstringyes–
awaiting_response–––
blacklist_state–––
blacklisted–––
client_id–––
conversation_id–––
conversion_state–––
conversion_states–––
customer_name–––
limitinteger––
notes–––
product_slugstringyes–
username–––

Structured output declared, but exposes no named fields.

No examples provided.

current_client_context ~21

Return the currently authenticated client context for this MCP server session.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_conversation_by_id ~45

Get conversation messages for a conversation ID inside a product scope.

NameTypeReqDescription
client_id–––
conversation_idstringyes–
product_slugstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

get_conversation_notes ~43

Get notes for a CRM conversation in a product scope.

NameTypeReqDescription
client_id–––
conversation_idstringyes–
product_slugstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

get_deduped_crm_by_category ~66

Retrieve deduped CRM records by single state or lead-category bucket.

NameTypeReqDescription
categorystringyes–
client_id–––
include_conversationsboolean––
limitinteger––
product_slugstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

get_onboarding_prompt_pack ~102

Fetch server-curated prompt contracts that define required onboarding outputs. Use this when an agent needs exact formatting/expectations before generating: - clarifications - conversation transcript - market positioning - keywords/subreddits Use `artifact` for focused contracts: - clarifications - market_position - conversation - keywords - subreddits

NameTypeReqDescription
artifact–––
client_id–––
product_slugstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

get_onboarding_status ~85

Canonical onboarding progress view for a product/session. Returns: - current phase - next required action - prompt-pack ack state - targeting approval state - missing artifacts + readiness blockers Use this for recovery if a previous onboarding run was partial or failed.

NameTypeReqDescription
client_id–––
product_slugstringyes–
session_idstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

get_product_tree ~30

Get nested folders and products for a client, equivalent to frontend product tree.

NameTypeReqDescription
client_id–––

Structured output declared, but exposes no named fields.

No examples provided.

list_campaigns ~34

List campaigns for a client (active/inactive, product mapping, budget, and warning signals).

NameTypeReqDescription
client_id–––

Structured output declared, but exposes no named fields.

No examples provided.

list_conversion_states ~26

Return canonical CRM conversion states available for recategorization.

NameTypeReqDescription
client_id–––

Structured output declared, but exposes no named fields.

No examples provided.

list_products ~32

List all products for a client (slug, display_name, product_unique, folder_id).

NameTypeReqDescription
client_id–––

Structured output declared, but exposes no named fields.

No examples provided.

login_with_client_id ~65

Authenticate MCP session to a Signal Found client account. Run this at the start of each session before business tools. Most tools require authenticated context and will use this session client id unless you pass an explicit `client_id` argument.

NameTypeReqDescription
client_idstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

logout_client_context ~21

Clear the active authenticated client context for this MCP server session.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

modify_conversion_notes ~92

Read or update conversion notes with explicit required key names. How to use: - Call without `conversion_notes` to inspect current notes. - For updates, provide all three canonical keys for consistency. Expected keys (string values): - `Product Name` - `Payment Terms/Plans` - `General Notes`

NameTypeReqDescription
client_id–––
conversion_notes–––
product_slugstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

modify_funnels ~102

Read or replace funnels with explicit shape validation. How to use: - Call without `funnels` to inspect current funnel list. - Update is replace-style: provide the full intended funnels list. Expected item shape: - `url` (string) - `description` (string) - `primary_use_case` (string) - `qualification` (optional string)

NameTypeReqDescription
client_id–––
funnels–––
product_slugstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

modify_keywords ~139

Read or update keyword targeting with optional search parameters. How to use: - Call without `keywords` to inspect current keywords config. - Update writes explicit keyword list and optional search params. Expected payload shape: - `keywords`: list[str] - `search_params` (optional): - `sort`: one of `relevance|hot|top|new|comments` - `time_filter`: one of `hour|day|week|month|year|all` - `per_keyword_limit`: int

NameTypeReqDescription
client_id–––
keywords–––
product_slugstringyes–
search_params–––

Structured output declared, but exposes no named fields.

No examples provided.

modify_market_positioning ~125

Read or update market positioning with explicit format guidance. How to use: - Call without `market_position_patch` to inspect current data before editing. - Send only keys you want to change (patch semantics). Expected patch keys (string values): - `one_line_pitch` - `icp` - `competitive_alternatives` - `uniqueness` - `value_proof` - `market_category` - `trends` - `additional_info`

NameTypeReqDescription
client_id–––
market_position_patch–––
product_slugstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

modify_subreddits ~106

Read or update subreddit targeting groups. How to use: - Call without `subreddit_groups` to inspect current targeting. - Update expects `groups` format used by onboard API targeting endpoint. Expected `subreddit_groups` item shape: - `subreddits`: list of subreddit names (without `r/` prefix preferred).

NameTypeReqDescription
client_id–––
product_slugstringyes–
run_quality_checkboolean––
subreddit_groups–––

Structured output declared, but exposes no named fields.

No examples provided.

onboarding_campaign_decision ~116

Evaluate readiness and optionally start campaign immediately. If not ready and blocked on credits, also returns a checkout link. Use this after onboarding reaches targeting approval. Set `start_now=true` to attempt campaign launch.

NameTypeReqDescription
cancel_urlstring––
checkout_planstring––
client_id–––
inbound_per_dayinteger––
outbound_per_dayinteger––
product_slugstringyes–
start_nowboolean––
success_urlstring––

Structured output declared, but exposes no named fields.

No examples provided.

portfolio_close_rate ~27

Compute close rate across all products based on CRM conversion states.

NameTypeReqDescription
client_id–––

Structured output declared, but exposes no named fields.

No examples provided.

rebalance_resources_to_product ~95

Shift outbound/day budget from the worst active campaign to a target product campaign.

NameTypeReqDescription
client_id–––
lookback_daysinteger––
minimum_worst_outboundinteger––
target_campaign_nickname–––
target_end_date–––
target_product_slugstringyes–
target_start_date–––
transfer_outbound_per_dayinteger––

Structured output declared, but exposes no named fields.

No examples provided.

run_full_agentic_onboarding ~258

Execute the full staged onboarding flow end-to-end in one call. Intended for zero-context agents that want a safe default path. This tool orchestrates: - prompt-pack version + ack - clarifications (questions/mode/answers) - conversation (mode/transcript/extract) - artifact validation + writes - targeting submit (+ optional approve) - readiness snapshot Requirements: - `clarifying_questions` must have exactly 3 items - pass valid schema payloads for artifacts/targeting On partial failure, returns `failed_stage`, `retry_hint`, and completed stages.

NameTypeReqDescription
agent_idstring––
approve_targetingboolean––
clarification_modestring––
clarifying_answersarrayyes–
clarifying_questionsarrayyes–
client_id–––
conversation_modestring––
conversation_transcriptarrayyes–
conversion_notesobjectyes–
funnelsarrayyes–
keyword_search_params–––
keywordsarrayyes–
market_positionobjectyes–
product_slugstringyes–
session_idstringyes–
subreddit_groupsarrayyes–

Structured output declared, but exposes no named fields.

No examples provided.

sales_control_tower ~53

Command-center summary for a client: products, campaign health, close-rate, and recommendations. Best first operational tool after login when the user asks for "what should we do next?"

NameTypeReqDescription
client_id–––

Structured output declared, but exposes no named fields.

No examples provided.

send_reddit_message ~212

Send Reddit DMs to scraped leads via the Signal Found Chrome extension. Three modes (exactly one must be set): - target_username: cold DM to a specific Reddit user - crm_reply_to: reply to an existing CRM conversation - batch_from_working_leads=True: send to all uncontacted working leads for this product Message content: provide a manual message, or set generate_message=True (default) to auto-generate using the product's market positioning and conversion notes via Phase 2. In batch mode, pre-computed suggested_response values are reused when available. Requires a Chrome extension connected and active on Reddit. Fails immediately if none is online.

NameTypeReqDescription
batch_from_working_leadsboolean––
batch_id–––
client_id–––
crm_reply_to–––
generate_messageboolean––
limit–––
message–––
product_slugstringyes–
target_username–––

Structured output declared, but exposes no named fields.

No examples provided.

sf_health ~53

Preflight check for MCP -> onboard_api connectivity and auth context. Use this first in a new session to confirm: - backend is reachable - current MCP session auth state - whether a default client id is configured

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

submit_agent_targeting ~137

Persist targeting artifacts (keywords/subreddits) and return policy/preview. Prerequisites: - prompt pack must be acknowledged for `session_id` - artifacts should already be saved for best results Typical next step: - approve targeting (done automatically by `run_full_agentic_onboarding` when enabled) Formats: - keywords: list[str] - subreddit_groups: [{'subreddits': ['name1','name2']}]

NameTypeReqDescription
client_id–––
keyword_search_params–––
keywords–––
product_slugstringyes–
session_idstringyes–
subreddit_groups–––

Structured output declared, but exposes no named fields.

No examples provided.

submit_onboarding_artifacts ~158

Validate and persist core onboarding artifacts for a product/session. Prerequisites: - prompt pack must be acknowledged for `session_id` - payloads should match the artifact schemas below Common use: - called by `run_full_agentic_onboarding` - can also be used for staged/recovery runs Expected formats: - market_position: patch object with market position keys - conversion_notes: {'Product Name','Payment Terms/Plans','General Notes'} - funnels: [{'url','description','primary_use_case', optional 'qualification'}]

NameTypeReqDescription
client_id–––
conversion_notes–––
funnels–––
market_position–––
product_slugstringyes–
session_idstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

update_conversation_notes ~48

Update notes for a CRM conversation in a product scope.

NameTypeReqDescription
client_id–––
conversation_idstringyes–
notes–yes–
product_slugstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

upsert_conversation_note ~49

Create/update a conversation note for a product scope conversation.

NameTypeReqDescription
client_id–––
conversation_idstringyes–
note–yes–
product_slugstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

voice_of_customer_report ~70

Produce a voice-of-customer report combining outcome metrics and confirmed/uninterested conversation samples.

NameTypeReqDescription
client_id–––
include_ai_insightsboolean––
lookback_daysinteger––
product_slugstringyes–
sample_sizeinteger––

Structured output declared, but exposes no named fields.

No examples provided.

Install

How do I install the io.github.signal-found/sf-mcp server?

io.github.signal-found/sf-mcp runs locally as a PyPI package, launched with uvx sf-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · sf-mcp

# add to Claude Code
claude mcp add signal-found-sf-mcp -- uvx sf-mcp
Common questions

What is the io.github.signal-found/sf-mcp server?

io.github.signal-found/sf-mcp is listed in the public MCP registry as io.github.signal-found/sf-mcp. Reddit outreach at scale, find prospects, send 1000s of DMs/day, and manage your CRM via AI agents. This page covers its PyPI package (sf-mcp).

Is the io.github.signal-found/sf-mcp server safe to use?

io.github.signal-found/sf-mcp scores 77 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.signal-found/sf-mcp server expose?

io.github.signal-found/sf-mcp exposes 40 tools: sf_health, login_with_client_id, current_client_context, agent_quickstart, logout_client_context, and 35 more. Their descriptions and schemas cost roughly 3,257 tokens of context every time the server is loaded.

Is the io.github.signal-found/sf-mcp server still maintained?

io.github.signal-found/sf-mcp is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.signal-found/sf-mcp server under?

io.github.signal-found/sf-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.