# SalesMap (remote · api.salesmap.site)

Checked buying signals and ranked lead lists for your agent. Never contacts anyone.

- Trust score: 76/100 (medium)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `api.salesmap.site`: 76/100 (this document), [markdown](https://verifymcp.io/servers/site-salesmap-signals/api.md), [page](https://verifymcp.io/servers/site-salesmap-signals/api)
- npm · `salesmap`: 36/100, [markdown](https://verifymcp.io/servers/site-salesmap-signals/salesmap.md), [page](https://verifymcp.io/servers/site-salesmap-signals/salesmap)

## Channel facts

- Endpoint: `https://api.salesmap.site/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `0.2.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 89/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 73/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 4152 tokens (~519/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability check failed: schema churn in the 15 days we've observed: 11 tool removals, 0 breaking changes, 0 auth/transport breaks, 2 additions.
- **Tool Coverage**: 87/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 54% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the SalesMap MCP server?

SalesMap is a hosted endpoint at https://api.salesmap.site/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http site-salesmap-signals 'https://api.salesmap.site/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "site-salesmap-signals": {
      "url": "https://api.salesmap.site/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "site-salesmap-signals": {
      "type": "http",
      "url": "https://api.salesmap.site/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.site-salesmap-signals]
url = "https://api.salesmap.site/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "site-salesmap-signals": {
      "type": "remote",
      "url": "https://api.salesmap.site/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add site-salesmap-signals --url 'https://api.salesmap.site/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  site-salesmap-signals:
    url: "https://api.salesmap.site/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "site-salesmap-signals": {
      "Transport": "http",
      "Url": "https://api.salesmap.site/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add site-salesmap-signals -t streamable-http -u 'https://api.salesmap.site/mcp'
```

### Other

```json
{
  "mcpServers": {
    "site-salesmap-signals": {
      "type": "http",
      "url": "https://api.salesmap.site/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 76, 0)

- [cosmetic] “feedback” reworded the description of “verdict”

### 2026-11-03 (score 76, 0)

- [security] Tool “set_limits” rewrote its description, which is the text the model reads
- [security] Tool “discover” rewrote its description, which is the text the model reads
- [functional regression] Tool coverage: 59% → 54%
- [cosmetic] “discover” added an optional parameter “research”
- [cosmetic] “set_limits” reworded the description of “weeklyDiscover”
- [cosmetic] “discover” dropped the optional parameter “resume”
- [cosmetic] “discover” dropped the optional parameter “searches”
- [cosmetic] “discover” dropped the optional parameter “callerSearch”
- [cosmetic] “discover” dropped the optional parameter “limit”
- [cosmetic] “discover” dropped the optional parameter “mode”

### 2026-10-31 (score 76, 0)

- [security] Tool “discover” rewrote its description, which is the text the model reads
- [security] Tool “job” rewrote its description, which is the text the model reads
- [cosmetic] “discover” added an optional parameter “fresh”

### 2026-10-28 (score 76, 0)

- [security] Tool “discover” rewrote its description, which is the text the model reads

### 2026-10-27 (score 76, 0)

- [security] Tool “whoami” rewrote its description, which is the text the model reads
- [security] Tool “discover” rewrote its description, which is the text the model reads
- [security] Tool “quote” rewrote its description, which is the text the model reads
- [security] Tool “set_limits” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 3637 → 4023
- [functional] New tool “feedback”
- [cosmetic] “discover” added an optional parameter “max_credits”
- [cosmetic] “set_limits” added an optional parameter “confirmCredits”
- [cosmetic] “set_limits” added an optional parameter “monthlyCredits”
- [cosmetic] “set_limits” added an optional parameter “weeklyDiscover”
- [cosmetic] “discover” reworded the description of “limit”
- [cosmetic] “discover” reworded the description of “mode”
- [cosmetic] “quote” reworded the description of “tool”
- [cosmetic] “discover” dropped the optional parameter “max_usd”
- [cosmetic] “set_limits” dropped the optional parameter “confirmUsd”
- [cosmetic] “set_limits” dropped the optional parameter “monthlyUsd”

### 2026-10-26 (score 76, +1)

- [security regression] A breaking change shipped without a version bump: still 0.1.0
- [security regression] Tool “playbook” was removed
- [security] Tool “seller_profile” rewrote its description, which is the text the model reads
- [security] Tool “job” rewrote its description, which is the text the model reads
- [security] Tool “quote” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 3228 → 3637
- [functional regression] Prompt “playbook” was removed
- [functional improvement] Tool coverage: 45% → 53%
- [functional] New prompt “discover”
- [functional] New prompt “draft”
- [functional] New tool “discover”
- [functional] New tool “voice_scan”

### 2026-10-25 (score 75, −1)

- [security regression] A breaking change shipped without a version bump: still 0.1.0
- [security regression] Tool “events” was removed
- [security regression] Tool “ai_adoption” was removed
- [security regression] Tool “discover” was removed
- [security regression] Tool “rank” was removed
- [security regression] Tool “signals” was removed
- [security regression] Tool “tech_scan” was removed
- [security regression] Tool “verify” was removed
- [security regression] Tool “verify_signal” was removed
- [security regression] Tool “watch” was removed
- [security regression] Tool “watch_changes” was removed
- [security] Tool “job” rewrote its description, which is the text the model reads
- [security] Tool “playbook” rewrote its description, which is the text the model reads
- [security] Tool “quote” rewrote its description, which is the text the model reads
- [security] Tool “seller_profile” rewrote its description, which is the text the model reads
- [functional regression] Tool coverage: 62% → 45%
- [functional regression] Prompt “changes” was removed
- [functional regression] Prompt “discover” was removed
- [functional regression] Prompt “events” was removed
- [functional regression] Prompt “rank” was removed
- [functional regression] Prompt “research” was removed
- [functional regression] Prompt “signals” was removed
- [functional regression] Prompt “verify” was removed
- [functional regression] Prompt “watch” was removed
- [functional improvement] Schema quality: 625 → 538
- [cosmetic] “playbook” added an optional parameter “evidence”
- [cosmetic] “playbook” added an optional parameter “mobiles”
- [cosmetic] “playbook” added an optional parameter “resume”

### 2026-10-24 (score 76, +1)

- [security] Tool “discover” rewrote its description, which is the text the model reads
- [security] Tool “events” rewrote its description, which is the text the model reads
- [security] Tool “job” rewrote its description, which is the text the model reads
- [security] Tool “playbook” rewrote its description, which is the text the model reads
- [security] Tool “rank” rewrote its description, which is the text the model reads
- [security] Tool “signals” rewrote its description, which is the text the model reads
- [security] Tool “verify” rewrote its description, which is the text the model reads
- [cosmetic] “playbook” added an optional parameter “hard”
- [cosmetic] “playbook” added an optional parameter “mode”
- [cosmetic] “discover” added an optional parameter “hard”
- [cosmetic] “discover” added an optional parameter “mode”
- [cosmetic] “events” added an optional parameter “mode”
- [cosmetic] “rank” added an optional parameter “hard”
- [cosmetic] “rank” added an optional parameter “mode”
- [cosmetic] “signals” added an optional parameter “mode”
- [cosmetic] “verify” added an optional parameter “mode”
- [cosmetic] “discover” reworded the description of “callerSearch”
- [cosmetic] “events” reworded the description of “callerSearch”
- [cosmetic] “job” reworded the description of “id”
- [cosmetic] “playbook” reworded the description of “callerSearch”
- [cosmetic] “rank” reworded the description of “callerSearch”
- [cosmetic] “signals” reworded the description of “callerSearch”
- [cosmetic] “verify” reworded the description of “callerSearch”
- [cosmetic] “rank” dropped the optional parameter “paid”
- [cosmetic] “discover” dropped the optional parameter “callerJudge”
- [cosmetic] “discover” dropped the optional parameter “paid”
- [cosmetic] “events” dropped the optional parameter “budgetUsd”
- [cosmetic] “events” dropped the optional parameter “paid”
- [cosmetic] “playbook” dropped the optional parameter “callerJudge”
- [cosmetic] “playbook” dropped the optional parameter “paid”
- [cosmetic] “rank” dropped the optional parameter “callerJudge”
- [cosmetic] “signals” dropped the optional parameter “paid”

## MCP tools (8)

### `discover` (~2154 tokens)

Find accounts to sell to

Price: The list is free; research is 1 credit per account that qualifies (a sourced in-band size, a supported fit and a checked dated signal or warm path, not returned before); a miss uses none. Never more than max_credits.
From a seller's website to a ranked list of companies to sell to, the strongest buying signals first, each with its reason and how to reach it: drafts the seller's ICP from its site (or takes one), finds candidate companies from free sources (the seller's competitors' customer pages, live or from Common Crawl; web search; Hacker News, YC, press wires, ATS boards and SEC Form D), reads each one's own job board, news, tools and AI-adoption signals and checks every signal against its source, adds the market's dated moves at competitors, platforms and regulators (under `market`), and ranks every researched company by its evidence: fresh signal clusters first, then a warm way in from the user's own network (their own connections, champions, connectors), a sourced size inside the band and a fit the facts show. Each account carries its fit, the buyer role to contact, the angle, what to watch out for and `checkFirst` (the gaps: unknown or out-of-band size, no checked signal or none showing a need, no fit shown in its facts, no way in, each of the profile's `disqualifiers` a quoted source shows it meets, or not checked); `intent` (high: a signal in the last 30 days showing one of the seller's needs, nothing against it; medium: one in the last 45 days; low: the rest) and `sizeLine` are the accounts page's labels, and the order is the ranking; high means buying signals, not a readiness to buy. Size, fit, intent and a met disqualifier (`disqualified`, ranked last and never charged) rank and flag rather than drop unless `hard` asks; existing customers and what was dropped and why come back as top five with counts. Takes minutes per company; steps are cached, so a rerun is fast.
Use when: "find accounts for <seller site>", "who should I sell to", "who should…

Input parameters:

- `champions` (array)
- `companies` (array)
- `confirm_token` (string): The token a previous call returned in `confirm`, standing for the user's agreement to that cost; one use, same arguments.
- `connections` (object)
- `connectors` (array)
- `contacted` (array)
- `context` (object): The user's own facts about their company: who they are, the company, product, ICP, buyer roles, customers, competitors, deals won and lost, regions, exclusions. Fields left out come from the saved se…
- `customers` (array)
- `days` (integer)
- `doNotContact` (array)
- `evaluators` (array)
- `evidence` (array): Passages the user found on a public page (domain, url, verbatim quote, date as printed); each is checked before it counts
- `fresh` (boolean): true: research the named companies again even when they were researched in the last 7 days. Left out, such a call asks the user first, or returns that saved research (`saved`) with nothing charged.
- `hard` (array)
- `icp` (object)
- `includeShown` (boolean)
- `max_credits` (integer): Most credits this call may use; default its quote. A call quoted over it is refused.
- `openDeals` (array)
- `previousConnections` (object)
- `priorContacts` (array)
- `research` (integer): How many accounts to research, 1 to 10: each is screened, researched and written up with its signals, fit, angle and contacts. 0 (the default) returns the ranked list alone: every company found, each…
- `seller` (string)
- `vendors` (array)

Output parameters:

- `accounts` (array)
- `accountsUrl` (string)
- `addMore` (array)
- `budget` (object)
- `cost` (object)
- `dropped` (object)
- `evidence` (array)
- `existingCustomers` (object)
- `full` (string): The full result on disk: every signal, path and field (local runs only)
- `icp` (object)
- `job` (object)
- `listed` (array)
- `listing` (object)
- `market` (array)
- `more` (integer)
- `narrow` (object)
- `needPatternHits` (array)
- `needPatterns` (array)
- `needPatternsFrom` (string)
- `nextListAt` (string|null)
- `notice` (string)
- `paid` (array)
- `profile` (object)
- `repeat` (object)
- `saved` (object)
- `since` (string)
- `sources` (array)
- `stopped` (string)
- `stoppedEarly` (array)
- `today` (string)
- `upcomingEvents` (integer)

### `seller_profile` (~388 tokens)

Save seller profile

Price: free.
Saves and reads the user's facts about their own company, kept in the user's SalesMap workspace (one entry per seller site, seen by that workspace only): who they are, company, product, ICP, buyer roles, customers, competitors, deals won and lost, regions, exclusions, do-not-contact. discover starts from it. Returns the saved profile, the key fields still missing (ICP, buyer roles) and a question for each.
Also returns `signals`, the buying signals discover's account search looks for: the saved `needPatterns`, `signalFamilies` and `signalTypes`, `addMore` (the signal types it can detect, in 8 families: save the families the user switches on as `signalFamilies`, and discover drafts 2 or 3 signals for each; or a type by id as `signalTypes`) and, with the ICP and buyer roles known and no patterns saved, `draft`: the drafting prompt for the calling agent's model, which returns this seller's drafted signals.
Use when: "remember that we sell to …", "save or update my ICP / buyer roles / customers", "our competitors are …", "don't target these accounts", "what do you know about my company / my profile", before the first list for a seller.
Skip when: the question is about a prospect company, not the user's own, or about a watch on closed-lost deals and which are ready again.
The saved fields are the user's inputs, not findings. Quoted page text is normalized; a quote that reads like an instruction keeps its text and is flagged in <field>Flags with the attack family.

Input parameters:

- `context` (object): Fields to save, merged into the saved profile field by field. Omit to read.
- `seller` (string, required): The user's own company site, e.g. getklira.com

Output parameters:

- `cost` (object)
- `missing` (array)
- `path` (string)
- `profile`
- `questions` (array)
- `saved` (boolean)
- `seller` (string)
- `signals` (object)

### `voice_scan` (~321 tokens)

Free. Checks an outreach draft the user or their agent wrote (a connection note, direct note, InMail or email) for AI-writing tells and the channel's limits, in code with no model: `fails` (antithesis like "it's not just X, it's Y", hype words, servile or empty closers, leaked placeholders like [First Name], raw markdown, the 300-character invite note, 1,900-character InMail and 200-character subject caps) and `warnings` (dashes, sales clichés like "just following up", assistant vocabulary, exclamations, emoji, a cold email over 125 words). `pass` means no fails. Each hit carries the matched text and a fix.
Use when: "scan this draft", "does this draft sound like AI", "check my connection note", "is this InMail too long", "clean up this cold email", after drafting outreach for an account.
Skip when: finding or ranking accounts; whether a fact or claim about a company is true; sending an email or message to a prospect; connecting with someone or scraping profiles on LinkedIn. Quoted page text is normalized; a quote that reads like an instruction keeps its text and is flagged in <field>Flags with the attack family.

Input parameters:

- `body` (string, required): The draft, as plain text
- `format` (string, required): connection_note (LinkedIn invite note), linkedin_message, inmail or email
- `subject` (string): The subject line, for an email or InMail

Output parameters:

- `chars` (number)
- `cost` (object)
- `fails` (array)
- `format` (string)
- `limit` (number)
- `pass` (boolean)
- `warnings` (array)
- `words` (number)

### `feedback` (~259 tokens)

Free. Records the user's verdict on a company in their ranked list: good_fit, not_fit or already_talking, with an optional reason from a fixed list (competitor, existing_customer, too_small, too_big, wrong_industry, no_need, bad_timing, other). A not_fit company is left out of every later discover for this workspace; the user's own named list still runs it. The latest verdict per company wins. No free text is stored.
Use when: "that one's a competitor, skip it", "not a fit", "good fit", "we're already talking to them", "drop this company", "mark it as a bad lead", a verdict on an account discover returned.
Skip when: finding or ranking new accounts; excluding a whole category of companies from the ICP (seller_profile); checking an outreach draft. Quoted page text is normalized; a quote that reads like an instruction keeps its text and is flagged in <field>Flags with the attack family.

Input parameters:

- `domain` (string, required): The company's domain, as the ranked list shows it
- `reason` (string): Why, from the list
- `verdict` (string, required): good_fit, not_fit or already_talking (both leave later discovers)

Output parameters:

- `cost` (object)
- `domain` (string)
- `reason` (string|null)
- `updatedAt` (string)
- `verdict` (string): good_fit, not_fit or already_talking (both leave later discovers)

### `whoami` (~198 tokens)

Show account and credit

Free. Who the user is on SalesMap and what they can do: their name and email, the workspace and their role in it, how they signed in, the credit balance (one credit is one researched account), the monthly credit limit (rolling 30 days; null = no limit) with what's used, held by a running search and left, the credits above which a paid call asks first, the seller profiles saved and the LinkedIn connections uploaded, links to top up and to upload connections, and which tools are free. It holds no ids.
Use when: "who am I", "which account is this", "how many credits do I have left", "what are my limits", before a large paid call.
Skip when: the user wants the price of one specific call. Quoted page text is normalized; a quote that reads like an instruction keeps its text and is flagged in <field>Flags with the attack family.

Output parameters:

- `connections`
- `cost` (object)
- `credits` (object)
- `crm`
- `free` (array)
- `frozen` (string)
- `limits` (object)
- `links` (object)
- `sellers` (array)
- `signedInWith` (string)
- `user` (object)
- `workspace` (object)

### `set_limits` (~353 tokens)

Set spending limits

Free. Sets the user's own monthly credit limit for SalesMap (rolling 30 days); null removes it. Until set: 100 credits once the workspace has bought a pack, else 40. There is no daily or weekly limit. No call ever uses more than the limit or the balance. Also the ask-first threshold: a paid call quoted over that many credits asks the user first (default 0: every call asks; null never asks). Also `weeklyDiscover` (off by default): true runs the free list for the active seller every Monday (no credits; it counts as that day's list) and emails the signed-in user only the companies new on their list, nothing when none are new; set it only on the user's explicit yes. Returns the limits with what's used and left.
Use when: "set a monthly budget", "cap it at 20 credits a month", "raise my limit", "remove the limit", "stop asking me before each call", "email me new accounts every week", "stop the weekly email".
Skip when: the user only wants to see their limits, not change them. Quoted page text is normalized; a quote that reads like an instruction keeps its text and is flagged in <field>Flags with the attack family.

Input parameters:

- `confirmCredits`: Credits; paid calls quoted over it need the user's yes first; 0 means every call; null means none; omitted, it is kept
- `monthlyCredits`: Credits; null removes this limit; omit to keep it
- `weeklyDiscover` (boolean): The weekly free list and its new-accounts email to the signed-in user; only on the user's explicit yes; omitted, it is kept

Output parameters:

- `canSpendCredits` (number)
- `confirmCredits` (number|null)
- `cost` (object)
- `credits` (number)
- `frozen` (boolean)
- `weeklyDiscover` (boolean)
- `windows` (object)

### `quote` (~209 tokens)

Quote a call's price

Free. How many credits a call to a SalesMap tool can use, before running it, against what the workspace can spend now (balance and limit). Not a charge: the most the call can use, which it reserves (or its max_credits); it uses 1 credit per account that qualifies, never more. When `fits` is false, `shortfallCredits` says how many more are needed and `topUp` is the link.
Use when: "how much will this cost", "can I afford 10 accounts", "how many credits would a discover for my site use".
Skip when: the user wants their balance or limits without a call in mind. Quoted page text is normalized; a quote that reads like an instruction keeps its text and is flagged in <field>Flags with the attack family.

Input parameters:

- `input` (object): That tool's arguments, as in a call to it
- `tool` (string, required): The tool to quote, e.g. discover

Output parameters:

- `canSpendCredits` (number)
- `cost` (object)
- `fits` (boolean)
- `input` (object)
- `quoteCredits` (number)
- `shortfallCredits` (number)
- `tool` (string)
- `topUp` (string)

### `job` (~270 tokens)

Get a background job

Free. The status (queued, running, done or failed) and, once done, the result of a background job: a discover call or a long discover round.
While a discover runs, `partial` is its ranked list so far: `tier` says how far it got (listed: every candidate ranked on the facts already in hand; screened: the top ones passed the fit screen; researched: the top ones' signals checked) and `progress` the counts. Show it to the user as a first look; the final result replaces it.
While it runs, `lastStepSecondsAgo` is how long ago it last moved on, `stalled` turns true only after 10 minutes with no step, `restarts` counts the times a server restart handed it to another worker (on its own, research already done reused). A discover usually takes 5 to 20 minutes.
Use when: a call returned `job`, "is my discover done", "is my ranking done", "status of my job".
Skip when: no call has returned a job id. Quoted page text is normalized; a quote that reads like an instruction keeps its text and is flagged in <field>Flags with the attack family.

Input parameters:

- `id` (string, required): The job id a call returned

Output parameters:

- `cost` (object)
- `createdAt` (string)
- `error` (string|null)
- `finishedAt` (string|null)
- `id` (string)
- `lastStepAt` (string)
- `lastStepSecondsAgo` (integer)
- `partial`
- `poll` (string)
- `restarts` (integer)
- `result`
- `stalled` (boolean)
- `status` (string)
- `tool` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/site-salesmap-signals/api#diagnostics

## Score history

- 2026-11-05: 76
- 2026-11-04: 76
- 2026-11-03: 76
- 2026-11-02: 76
- 2026-11-01: 76
- 2026-10-31: 76
- 2026-10-30: 76
- 2026-10-29: 76
- 2026-10-28: 76
- 2026-10-27: 76
- 2026-10-26: 76
- 2026-10-25: 75
- 2026-10-24: 76
- 2026-10-23: 75
- 2026-10-22: 76
- 2026-10-21: 76

## Common questions

### What is the SalesMap MCP server?

SalesMap is an MCP server listed in the public MCP registry as site.salesmap/signals. Checked buying signals and ranked lead lists for your agent. Never contacts anyone. This page covers its hosted endpoint (https://api.salesmap.site/mcp).

### Is the SalesMap MCP server safe to use?

SalesMap scores 76 out of 100 on VerifyMCP. 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 SalesMap MCP server expose?

SalesMap exposes 8 tools: discover, seller_profile, voice_scan, feedback, whoami, and 3 more. Their descriptions and schemas cost roughly 4,152 tokens of context every time the server is loaded.

### Does the SalesMap MCP server require authentication?

Yes. SalesMap asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the SalesMap MCP server still maintained?

SalesMap 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.

## Links

- Remote endpoint: https://api.salesmap.site/mcp
- Repository: https://github.com/solozerolabs/salesmap-plugin
- Website: https://salesmap.site/
- Changelog RSS feed: https://verifymcp.io/servers/site-salesmap-signals/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/site-salesmap-signals/api.json
- HTML version of this page: https://verifymcp.io/servers/site-salesmap-signals/api
