Skip to main content
Glama

SalesMap

Find warm paths

warm_paths
Read-only

Price: $1.50 per company with at least one checked contact or paid work-email match; links and matches from the user's own Connections.csv without enrichment are free. Never more than max_usd. How the user can reach a buyer at up to 5 named companies, without automating LinkedIn: per company and buyer role, a LinkedIn people-search URL for the user to open (filtered to that company, the role's title, and 1st- and 2nd-degree network, where LinkedIn shows the mutual connections), first-degree paths from the user's own Connections.csv, and people that public pages (the company's team or leadership page, press releases, job posts naming the hiring manager) name in the role (plus Founder / CEO unless the company is known to have over 1,000 people), each marked inferred with its source URL and a quote checked on that page. Also lists paths the user confirmed earlier (the seller profile's warmPaths). Use when: "go into my LinkedIn and find mutuals", "who do I know at acme.com", "warm intro to the Head of Ops at ", "find mutual connections at these accounts", "who is the buyer at acme.com and how do I get introduced", "2nd-degree connections at ". Skip when: the user wants a ranked list of who to sell to, a connection request, a message or a mobile phone number: this never opens, reads or acts on LinkedIn; the user clicks the links. The search links are for the user to open in their own browser; this tool never fetches them. First-degree names come from the user's own export and never reach a model. Inferred people are leads to confirm. With paid:['monid'], the tool looks up one role-matched person's work email per company through People Data Labs, marked Observed with its source; the person's name and company go to the provider, and only the work-email field is returned. Provider-reported email, not a deliverability guarantee. With inferred:false, this works on the user's connections without a model or search. context takes the user's own facts about their company; the saved seller profile fills fields left out. With the ICP or buyer roles still unknown, the server asks the user for them (MCP elicitation) or returns the questions without running. Charged per result returned from the user's credits, never for a miss (the paid APIs it runs only when paid names them, TheirStack and Monid, are our cost): at most max_usd (default: the quote tool's figure) and within their monthly limit, reserved before it runs. If the next step would pass its budget, it stops and returns what it has, with stopped: "budget", charged only for that; budget says what was reserved and charged. A call quoted over max_usd is refused. A call quoted over the user's ask-before-spending threshold (default $1) asks the user first through the client (MCP elicitation); a client without that gets a confirm result with the cost and a one-use token, and a repeat call with the same arguments and confirm_token runs it. Quoted page text is normalized; a quote that reads like an instruction keeps its text and is flagged in Flags with the attack family.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paidNoOne PDL work-email lookup per company ($0.28 provider cost) for an already role-matched person, only when monid is listed. Works with inferred:false on the user's own connections without models.
rolesNoBuyer roles to search for; default the seller’s buyerRoles
sellerNoThe user's own company site, for its saved buyer roles
contextNoThe 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 seller profile. These are the user's inputs, not findings.
max_usdNoMost this call may spend, in USD; default its quote. A call quoted over it is refused.
inferredNoLook for named people in public pages (default true); false gives links and first-degree paths only, with no model or search
companiesYesCompany domains, e.g. ["acme.com", "example.com"]
connectionsNoThe user's LinkedIn Connections.csv for first-degree paths; names never reach a model. An opted-in paid lookup sends the chosen person's name and company to PDL. Locally, ~/.salesmap/Connections.csv when omitted
confirm_tokenNoThe token a previous call returned in `confirm`, standing for the user's agreement to that cost; one use, same arguments.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
costNo
rolesYes
todayYes
budgetNo
pricingNo
stoppedNo
shapedByYes
companiesYes
needsCreditNo
continuationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / continuation
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "input": {
      +      "additionalProperties": {},
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "input"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / pricing
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "limit": {
      +      "type": "number"
      +    },
      +    "maxUsd": {
      +      "type": "number"
      +    },
      +    "unitUsd": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "limit",
      +    "unitUsd",
      +    "maxUsd"
      +  ],
      +  "type": "object"
      +}
  2. Changed3 schema fields changed
    • changedInput schema / properties / connections / description
      Previous value: -"The user's LinkedIn Connections.csv (LinkedIn's data export, under Settings → Data privacy), for first-degree paths; names stay on this machine. Locally, ~/.salesmap/Connections.csv when omitted"New value: +"The user's LinkedIn Connections.csv for first-degree paths; names never reach a model. An opted-in paid lookup sends the chosen person's name and company to PDL. Locally, ~/.salesmap/Connections.csv when omitted"
    • addedInput schema / properties / paid
      Added value: +{
      +  "description": "One PDL work-email lookup per company ($0.28 provider cost) for an already role-matched person, only when monid is listed. Works with inferred:false on the user's own connections without models.",
      +  "items": {
      +    "const": "monid",
      +    "type": "string"
      +  },
      +  "maxItems": 1,
      +  "type": "array"
      +}
    • addedOutput schema / properties / companies / items / properties / contacts
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "country": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "domain": {
      +        "type": "string"
      +      },
      +      "email": {
      +        "format": "email",
      +        "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +        "type": "string"
      +      },
      +      "kind": {
      +        "const": "Observed",
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "observedAt": {
      +        "format": "date",
      +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +        "type": "string"
      +      },
      +      "source": {
      +        "const": "pdl via monid",
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "verification": {
      +        "const": "Provider-reported work email; deliverability not checked",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "title",
      +      "domain",
      +      "country",
      +      "email",
      +      "source",
      +      "kind",
      +      "observedAt",
      +      "verification"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 1,
      +  "type": "array"
      +}
  3. Changed1 schema field changed
    • addedOutput schema / properties / needsCredit
      Added value: +{
      +  "type": "string"
      +}
  4. Changed4 schema fields changed
    • changedInput schema / properties / confirm_token / description
      Previous value: -"The token a previous call returned in `confirm`, sent only after the user agreed to that cost; one use, same arguments."New value: +"The token a previous call returned in `confirm`, standing for the user's agreement to that cost; one use, same arguments."
    • changedInput schema / properties / connections / description
      Previous value: -"The user's LinkedIn Connections.csv (Settings → Data privacy → Get a copy of your data), for first-degree paths; names stay on this machine"New value: +"The user's LinkedIn Connections.csv (LinkedIn's data export, under Settings → Data privacy), for first-degree paths; names stay on this machine. Locally, ~/.salesmap/Connections.csv when omitted"
    • changedInput schema / properties / context / description
      Previous value: -"What you already know about the user and their company, from your memory, CLAUDE.md and this conversation: who they are, the company, product, ICP, buyer roles, customers, competitors, deals won and lost, regions, exclusions. Fill every field you know before calling; leave out what you don't, never invent it. The saved profile (seller_profile) fills the rest. These are the user's inputs, not findings."New value: +"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 seller profile. These are the user's inputs, not findings."
    • changedInput schema / properties / context / properties / warmPaths / description
      Previous value: -"Warm paths the user confirmed (s48): company domain and who or how, e.g. \"Jane Doe (VP Ops), via Sam Lee\". Saving replaces the list: pass the whole list. Stays local; never sent to a model"New value: +"Warm paths the user confirmed (s48): company domain and who or how, e.g. \"Jane Doe (VP Ops), via Sam Lee\". A save replaces the whole list. Stays local; never sent to a model"
  5. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.