B2B people search, AI lead scoring and work-email lookup. 15 tools.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer YOUR_KEY (your ReachKee key, see https://reachkee.com/mcp)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Start a background email lookup batch for up to 50 people. Provide profile_urns (from search_leads rows) and/or profile_urls. Deliberately slow (3-8s between people; up to 1-2 min per person worst case). Billing: email_cost credits charged ONLY per person whose email or phone is actually found. Returns job_id - poll get_bulk_email_results. One active batch per card.
Card number (optional if provided via Authorization: Bearer header)
Public profile page URLs
profile_urn values from search_leads rows
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Start a background email lookup batch for up to 50 people. Provide profile_urns (from search_leads rows) and/or profile_urls. Deliberately slow (3-8s between people; up to 1-2 min per person worst case). Billing: email_cost credits charged ONLY per person whose email or phone is actually found. Returns job_id - poll get_bulk_email_results. One active batch per card.
| Argument | Type | Description |
|---|---|---|
| card_no | string | Card number (optional if provided via Authorization: Bearer header) |
| profile_urls | array | Public profile page URLs |
| profile_urns | array | profile_urn values from search_leads rows |
{
"type": "object",
"properties": {
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization: Bearer header)"
},
"profile_urls": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public profile page URLs"
},
"profile_urns": {
"type": "array",
"items": {
"type": "string"
},
"description": "profile_urn values from search_leads rows"
}
}
}Free. Returns status, remaining credits and usage limits of the authenticated card.
| Argument | Type | Description |
|---|---|---|
| card_no | string | Card number (optional if provided via Authorization header) |
{
"type": "object",
"properties": {
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization header)"
}
}
}Create a background B2B search task (people or company). Pages are fetched slowly in the background under strict rate limits. Credits are frozen upfront and settled by actual rows fetched. Returns the task plus queue position and ETA (hours).
| Argument | Type | Description |
|---|---|---|
| query* | string | Sales-style filter string, e.g. (filters:List((type:CURRENT_COMPANY,values:List((id:123,text:Acme,selectionType:INCLUDED))))) |
| title | string | Optional task title |
| card_no | string | Card number (optional if provided via Authorization: Bearer header) |
| page_to | integer | Last page (default = page_from) |
| page_from | integer | First page (default 1) |
| page_size | integer | Rows per page, max 100 (default 25) |
| task_type* | string | Search type |
{
"type": "object",
"required": [
"task_type",
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Sales-style filter string, e.g. (filters:List((type:CURRENT_COMPANY,values:List((id:123,text:Acme,selectionType:INCLUDED)))))"
},
"title": {
"type": "string",
"description": "Optional task title"
},
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization: Bearer header)"
},
"page_to": {
"type": "integer",
"description": "Last page (default = page_from)"
},
"page_from": {
"type": "integer",
"description": "First page (default 1)"
},
"page_size": {
"type": "integer",
"description": "Rows per page, max 100 (default 25)"
},
"task_type": {
"enum": [
"people",
"company"
],
"type": "string",
"description": "Search type"
}
}
}Fetch full details of one company found by search_companies: description, website, industry, headquarters, employee count and growth, revenue range, specialties, type, year founded. Input: company_id / company_urn / link from a search_companies row. Billing: free, same as company details in the web app (results cached for 24h).
| Argument | Type | Description |
|---|---|---|
| link | string | Company link containing /company/<id> |
| card_no | string | Card number (optional if provided via Authorization: Bearer header) |
| company_id | string | Numeric company id, e.g. "2382910" |
| company_urn | string | company_urn value from a search_companies row |
{
"type": "object",
"properties": {
"link": {
"type": "string",
"description": "Company link containing /company/<id>"
},
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization: Bearer header)"
},
"company_id": {
"type": "string",
"description": "Numeric company id, e.g. \"2382910\""
},
"company_urn": {
"type": "string",
"description": "company_urn value from a search_companies row"
}
}
}Fetch the complete public profile of one person found by search_leads: headline, about summary, positions (experience), educations, skills, languages, public contact info (emails/phones/websites), connection count and the real public profile URL. Input is the profile_urn field from a search_leads row. Billing: 1 credit per successful fetch; repeating the same person within 24h is free (cached). Takes 5-30 seconds.
| Argument | Type | Description |
|---|---|---|
| card_no | string | Card number (optional if provided via Authorization: Bearer header) |
| profile_urn* | string | profile_urn value from a search_leads row, e.g. urn:li:fs_salesProfile:(ACwAA...,NAME_SEARCH,abcd) |
{
"type": "object",
"required": [
"profile_urn"
],
"properties": {
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization: Bearer header)"
},
"profile_urn": {
"type": "string",
"description": "profile_urn value from a search_leads row, e.g. urn:li:fs_salesProfile:(ACwAA...,NAME_SEARCH,abcd)"
}
}
}Free. Get status and per-person results of a bulk_query_email job. Jobs expire 24h after creation and the in-memory queue is lost on server restart (credits are only charged per found email, so nothing is lost financially).
| Argument | Type | Description |
|---|---|---|
| job_id* | string | Job id returned by bulk_query_email, e.g. be_1a2b3c4d5e6f |
| card_no | string | Card number (optional if provided via Authorization header) |
{
"type": "object",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"description": "Job id returned by bulk_query_email, e.g. be_1a2b3c4d5e6f"
},
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization header)"
}
}
}Get one task: status, progress, billing (frozen/charged), queue position and ETA. Does not return result rows (use get_task_results).
| Argument | Type | Description |
|---|---|---|
| card_no | string | Card number (optional if provided via Authorization header) |
| task_id* | string | Task id, e.g. t_8a67cd3548bc |
{
"type": "object",
"required": [
"task_id"
],
"properties": {
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization header)"
},
"task_id": {
"type": "string",
"description": "Task id, e.g. t_8a67cd3548bc"
}
}
}Get kept result rows of a task (paginated). Rows are simplified: name/title/company/location/email/link/page.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max rows to return, up to 200 (default 50) |
| offset | integer | Row offset (default 0) |
| card_no | string | Card number (optional if provided via Authorization header) |
| task_id* | string | Task id |
{
"type": "object",
"required": [
"task_id"
],
"properties": {
"limit": {
"type": "integer",
"description": "Max rows to return, up to 200 (default 50)"
},
"offset": {
"type": "integer",
"description": "Row offset (default 0)"
},
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization header)"
},
"task_id": {
"type": "string",
"description": "Task id"
}
}
}List all tasks for this card with status, progress and usage snapshot.
| Argument | Type | Description |
|---|---|---|
| card_no | string | Card number (optional if provided via Authorization header) |
{
"type": "object",
"properties": {
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization header)"
}
}
}Free. Turn a natural-language description (any language) of your ideal customer or candidate into structured suggestions: entity_type (people/company), scoring dimensions, and search filter suggestions (industry, geography, titles, company size, ...). Use the output to compose keywords/query for search_leads, search_companies or create_search_task.
| Argument | Type | Description |
|---|---|---|
| card_no | string | Card number (optional if provided via Authorization: Bearer header) |
| description* | string | One-paragraph description of the ideal customer/candidate, e.g. "medical device purchasing managers in Australia" or "Shanghai-based senior semiconductor recruiters" |
| entity_type | string | Optional: people = find persons, company = find companies (auto-detected when omitted) |
{
"type": "object",
"required": [
"description"
],
"properties": {
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization: Bearer header)"
},
"description": {
"type": "string",
"description": "One-paragraph description of the ideal customer/candidate, e.g. \"medical device purchasing managers in Australia\" or \"Shanghai-based senior semiconductor recruiters\""
},
"entity_type": {
"enum": [
"people",
"company"
],
"type": "string",
"description": "Optional: people = find persons, company = find companies (auto-detected when omitted)"
}
}
}Look up email addresses (plus phones and social links) for one person. Provide profile_url OR profile_urn (the profile_urn field returned by search_leads rows). Optional first_name/last_name/company improve matching. Billing: charged email_cost credits only when an email or phone is actually found; no result = no charge. Slow: can take 30-120 seconds.
| Argument | Type | Description |
|---|---|---|
| card_no | string | Card number (optional if provided via Authorization: Bearer header) |
| company | string | Optional company name (improves matching) |
| last_name | string | Optional last name (improves matching) |
| first_name | string | Optional first name (improves matching) |
| profile_url | string | Public profile page URL of the person |
| profile_urn | string | profile_urn value from a search_leads row, e.g. urn:li:fs_salesProfile:(ACwAA...,NAME_SEARCH,abcd) |
{
"type": "object",
"properties": {
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization: Bearer header)"
},
"company": {
"type": "string",
"description": "Optional company name (improves matching)"
},
"last_name": {
"type": "string",
"description": "Optional last name (improves matching)"
},
"first_name": {
"type": "string",
"description": "Optional first name (improves matching)"
},
"profile_url": {
"type": "string",
"description": "Public profile page URL of the person"
},
"profile_urn": {
"type": "string",
"description": "profile_urn value from a search_leads row, e.g. urn:li:fs_salesProfile:(ACwAA...,NAME_SEARCH,abcd)"
}
}
}Free. Turn a human filter value (region "Shanghai", industry "Medical Device", title "CEO", company "Siemens", ...) into search filter options with IDs, plus a ready-to-paste filter_snippet for the query parameter of search_leads / search_companies / create_search_task. Combine snippets like: (filters:List(SNIPPET,SNIPPET),keywords:...,spellCorrectionEnabled:true).
| Argument | Type | Description |
|---|---|---|
| text | string | The value to resolve, e.g. "Shanghai" / "Medical Device" / "CEO". Optional for enum-like types (INDUSTRY, COMPANY_SIZE, SENIORITY, FUNCTION): omit to list all options. |
| card_no | string | Card number (optional if provided via Authorization: Bearer header) |
| filter_type* | string | Which filter to resolve |
{
"type": "object",
"required": [
"filter_type"
],
"properties": {
"text": {
"type": "string",
"description": "The value to resolve, e.g. \"Shanghai\" / \"Medical Device\" / \"CEO\". Optional for enum-like types (INDUSTRY, COMPANY_SIZE, SENIORITY, FUNCTION): omit to list all options."
},
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization: Bearer header)"
},
"filter_type": {
"enum": [
"REGION",
"INDUSTRY",
"CURRENT_COMPANY",
"PAST_COMPANY",
"TITLE",
"COMPANY_SIZE",
"SENIORITY",
"FUNCTION",
"SCHOOL"
],
"type": "string",
"description": "Which filter to resolve"
}
}
}Score up to 25 rows against your ideal-customer profile with AI. Billing: 1 credit per call (up to 25 rows, same as AI scoring in the web app), charged only when at least one row is scored. Provide icp_description (any language) - or reuse the dimensions array returned by a previous call to skip re-parsing - plus rows like {name,title,company,location,summary}. Returns 0-100 score, verdict, confidence and a one-line reason per row. Takes a few seconds per row.
| Argument | Type | Description |
|---|---|---|
| rows* | array | 1-25 rows: {name,title,company,location,summary} |
| locale | string | Language of reasons (default zh) |
| card_no | string | Card number (optional if provided via Authorization: Bearer header) |
| dimensions | array | Optional: dimensions from a previous score_rows/parse_icp result (skips re-parsing) |
| entity_type | string | Optional, default people |
| icp_description | string | One-paragraph ideal-customer/candidate description |
{
"type": "object",
"required": [
"rows"
],
"properties": {
"rows": {
"type": "array",
"items": {
"type": "object"
},
"description": "1-25 rows: {name,title,company,location,summary}"
},
"locale": {
"enum": [
"zh",
"en"
],
"type": "string",
"description": "Language of reasons (default zh)"
},
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization: Bearer header)"
},
"dimensions": {
"type": "array",
"items": {
"type": "object"
},
"description": "Optional: dimensions from a previous score_rows/parse_icp result (skips re-parsing)"
},
"entity_type": {
"enum": [
"people",
"company"
],
"type": "string",
"description": "Optional, default people"
},
"icp_description": {
"type": "string",
"description": "One-paragraph ideal-customer/candidate description"
}
}
}Instant B2B company (accounts) search, returns one page of 25 rows synchronously. Give free-text keywords OR a full Sales-style query string. Billing: 1 credit per successful page with results; the same query+page repeated within 24h is served from cache for free.
| Argument | Type | Description |
|---|---|---|
| page | integer | 1-based page number (default 1), 25 rows per page |
| query | string | Full Sales-style filter string (overrides keywords), e.g. (filters:List((type:INDUSTRY,values:List((id:112,text:Renewables,selectionType:INCLUDED)))),spellCorrectionEnabled:true) |
| card_no | string | Card number (optional if provided via Authorization: Bearer header) |
| keywords | string | Free-text keywords, e.g. "solar energy manufacturer germany" |
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"description": "1-based page number (default 1), 25 rows per page"
},
"query": {
"type": "string",
"description": "Full Sales-style filter string (overrides keywords), e.g. (filters:List((type:INDUSTRY,values:List((id:112,text:Renewables,selectionType:INCLUDED)))),spellCorrectionEnabled:true)"
},
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization: Bearer header)"
},
"keywords": {
"type": "string",
"description": "Free-text keywords, e.g. \"solar energy manufacturer germany\""
}
}
}Instant B2B people (leads) search, returns one page of 25 rows synchronously. Give free-text keywords OR a full Sales-style query string. Billing: 1 credit per successful page with results; the same query+page repeated within 24h is served from cache for free.
| Argument | Type | Description |
|---|---|---|
| page | integer | 1-based page number (default 1), 25 rows per page |
| query | string | Full Sales-style filter string (overrides keywords), e.g. (filters:List((type:CURRENT_COMPANY,values:List((id:123,text:Acme,selectionType:INCLUDED)))),keywords:ceo,spellCorrectionEnabled:true) |
| card_no | string | Card number (optional if provided via Authorization: Bearer header) |
| keywords | string | Free-text keywords, e.g. "medical device ceo australia" |
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"description": "1-based page number (default 1), 25 rows per page"
},
"query": {
"type": "string",
"description": "Full Sales-style filter string (overrides keywords), e.g. (filters:List((type:CURRENT_COMPANY,values:List((id:123,text:Acme,selectionType:INCLUDED)))),keywords:ceo,spellCorrectionEnabled:true)"
},
"card_no": {
"type": "string",
"description": "Card number (optional if provided via Authorization: Bearer header)"
},
"keywords": {
"type": "string",
"description": "Free-text keywords, e.g. \"medical device ceo australia\""
}
}
}