YourICP

com.youricpPublished by youricp.comOfficial publisherv0.1.3Updated Oct 24, 2026

Enrich contacts by email or LinkedIn URL and build targeted B2B audiences.

VerifiedStreamable HTTPWeb executableData & AnalyticsBusiness & Commerce

Overview

AI-generated overview

YourICP's MCP server lets an assistant enrich contacts by email or LinkedIn URL and build targeted B2B audiences, with paid runs charged to a prepaid balance.

What you can do
Set and activate the YourICP auth token for the session, including activating a browser login and reading the billing-token balance and payment status of a checkout session. Submit contact enrichment jobs for emails or LinkedIn profile URLs and poll the result by job ID. Start an audience-building workflow, fetch interactive filter categories, and preview audience size from a free-text description or explicit filter selections. Launch a contact pull run for a built audience and get a presigned download link for the finished contact list.
When to use it
Use it when you want an assistant to look up or enrich people from email addresses or LinkedIn profiles, or to size and pull a targeted B2B contact list without leaving the conversation. The hosted connector is the option that exposes the audience-building tools.
Requirements
Either the hosted remote endpoint (OAuth browser login) or the local npm package @youricp/mcp, which needs Node.js 18+ and a YourICP auth token supplied as YOURICP_AUTH_TOKEN or YOURICP_API_TOKEN, or set in chat. YOURICP_API_URL optionally overrides the API base URL. Network access to YourICP is required.
Before you install
Enrichment and audience runs spend prepaid billing tokens (100 tokens = $1.00; 29 per audience contact, 29 when phone validation runs), so check the balance first. The auth token is a credential: avoid pasting it into chats you do not control. Runs send contact identifiers to YourICP, and download links are presigned URLs that grant access to the contact list.

Installation

In SourceWeft

  1. Open YourICP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.youricp%2Fmcp-server/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "youricp": {
      "type": "http",
      "url": "https://mcp.youricp.com/sse"
    }
  }
}

README

YourICP MCP Server

[License: MIT] [MCP] [M8ven Score]

The official, open-source Model Context Protocol (MCP) server for the YourICP contact-enrichment and audience-targeting API. It lets AI assistants such as Claude enrich contacts and build audiences directly from a conversation.


Two ways to run it

This repo (@youricp/mcp)Hosted connector
Transportstdio, runs on your machineStreamable HTTP
AuthPaste an API tokenOAuth 2.0 + PKCE, browser login
ToolsContact enrichmentEnrichment and audience building
BillingYour existing YourICP planPay-per-use, or your plan
SetupEdit a JSON config filePaste one URL

Use the hosted connector unless you specifically want to run the code yourself. It needs no install, stays up to date, and is the only option that exposes the audience-building tools:

https://mcp.youricp.com/sse

Add it in Claude under Settings → Connectors → Add custom connector. See the connector user guide for what you can ask it.

Use this repo if you want to read or modify the code, self-host, run fully offline against your own token, or use a client that only supports stdio. It is a deliberately small reference implementation — no payment, OAuth, or hosting infrastructure required.


Tools

ToolDescription
set_auth_tokenSet a YourICP auth token for this session
set_tokenDeprecated alias for set_auth_token
submit_lookupEnrich contacts by email or LinkedIn URL (returns a jobId)
check_lookupPoll the enrichment result for a jobId

Requirements

Quick start (no install)

Run it directly with npx — no clone, no global install:

bash
YOURICP_AUTH_TOKEN=your_auth_token_here npx @youricp/mcp

Use with Claude Desktop

Add this to your claude_desktop_config.json — npx fetches and runs the server automatically:

json
{  "mcpServers": {    "youricp": {      "command": "npx",      "args": ["-y", "@youricp/mcp"],      "env": {        "YOURICP_AUTH_TOKEN": "your_auth_token_here"      }    }  }}

Restart Claude Desktop and the YourICP tools will appear.

Install globally (optional)

bash
npm install -g @youricp/mcpYOURICP_AUTH_TOKEN=your_auth_token_here youricp-mcp

From source

bash
git clone https://github.com/youricp/mcp-server.gitcd mcp-servernpm installYOURICP_AUTH_TOKEN=your_auth_token_here npm start

Or copy .env.example to .env and fill it in, then npm start.


Configuration

VariableDefaultDescription
YOURICP_API_URLhttps://app.youricp.comBase URL of the YourICP API
YOURICP_AUTH_TOKEN(none)Your YourICP auth token
YOURICP_API_TOKEN(none)Deprecated alias for YOURICP_AUTH_TOKEN. Still read, but logs a deprecation notice.

Two kinds of token

YourICP uses the word "token" for two unrelated things, so this server always says which one it means:

  • auth token — the API credential that proves who you are. That is what YOURICP_AUTH_TOKEN and set_auth_token set.
  • billing token — YourICP's prepaid currency for enrichment work, where 100 billing tokens = $1.00. This reference server never touches them.

Contributing

Contributions are welcome! Please read CONTRIBUTING.md and our Code of Conduct. To report a security issue, see SECURITY.md.

License

MIT © YourICP

Source: README.md at commit cf664b9

Tools

13

set_auth_token

Set Auth Token

Set the user's YourICP auth token for this session. Call this when the user pastes their auth token in the chat. This is an API credential, NOT YourICP billing tokens — billing tokens are the prepaid currency a run spends, and check_billing_balance reads them. Once set, the auth token is used for all API requests and card payment is no longer required. To get an auth token, the user can log in at https://mcp.youricp.com/authorize.

ParametersauthTokenrequired

set_token

Set Auth Token (deprecated)

DEPRECATED — call set_auth_token instead. Sets the user's YourICP auth token for this session.

Parameterstokenrequired

activate_login

Activate Browser Login

Activate a login completed in the browser. Call this after signing in at the login page. Automatically retrieves the auth token and activates it for this session — no copy/paste needed.

Takes no parameters.

submit_lookup

Submit Contact Lookup

Submit a contact enrichment job for one or more email addresses or LinkedIn profile URLs. Provide emails, linkedInUrls, or both. If logged in, the job is charged to the account's YourICP billing-token balance (1 billing token per contact matched, 29 if phone validation runs, where 100 billing tokens = $1.00) and returns a jobId — call check_lookup to retrieve results. check_billing_balance shows what the balance covers. If the balance is short, this returns error "mcp_insufficient_tokens" with required, available and shortfall counts — tell the user exactly how many tokens to top up at app.youricp.com and do NOT retry until they have. If it returns "mcp_no_billing_account", only support can fix it — do NOT retry. If the user is not logged in, card payment is required instead: this tool returns a checkoutUrl and sessionId — present the URL, then call check_payment. Do NOT retry automatically on failure.

ParametersemailsuserEmaillinkedInUrls

check_lookup

Check Lookup Result

Check the result of a previously submitted contact enrichment job by jobId. Polls every 5 seconds until the job is complete (max 2 minutes). Returns enriched contact data or an error message.

ParametersjobIdrequired

check_payment

Check Payment Status

Check whether a Stripe checkout session has been paid and execute the next step. Call this after presenting the checkoutUrl to the user. If status is "pending", wait a few seconds and call again. - If called after submit_lookup: once status is "done" call check_lookup with the returned jobId. - If called after audience_start_run: once status is "done" call audience_download_run with the returned runId.

ParameterssessionIdrequired

audience_start

Start Audience Builder

Entry point for all audience-building workflows. Always call this first when the user wants to find contacts, build an audience, or get a contact list. This tool decides which options to offer based on the connected client: clients that can render the interactive filter widget (e.g. Claude) are offered both (A) describe their target in free text and (B) pick filters interactively; other clients are offered free text only. Present EXACTLY the options contained in this tool's response and nothing more — in particular, do not offer or mention the interactive filter picker unless the response includes it. Do not call audience_quick_preview, audience_preview, or audience_get_filters without calling this tool first.

Takes no parameters.

audience_get_filters

Get Audience Filters

Fetch all available audience filter categories as an interactive filter picker. Only call this after audience_start has been called and the user chose Option B (interactive filter picker). Do not call this tool to guess or pre-populate filters on behalf of the user. RENDERING — MANDATORY, VERBATIM: The response is usually a complete HTML document. Pass the returned HTML string unchanged to the visualizer/render tool. Do NOT rebuild, restyle, summarize, trim, or hand-author a replacement UI. If the response is plain text instead of an HTML document (this happens on clients that cannot render HTML), simply present that text to the user as-is and let them pick filter values by name — do not look for a visualizer. Render EVERY tab and EVERY chip exactly as received, in the order received, using the exact data-cat and data-val attributes the backend emitted. This includes tabs whose chip list is empty — render the empty tab as-is, do NOT drop it and do NOT invent or backfill chips for it. ALWAYS keep the "Get estimation" button (id="getEstBtn") in the rendered widget. It is the action control the user clicks to run the preview — never remove, hide, rename, or replace it. Do NOT move a chip from the tab/category the backend placed it in. If a value arrives under data-cat="industries", it is rendered and reported under industries — the client must not re-route it to seniority, departments, buying_roles, employee_size, or revenue based on its label. Field placement is the backend's responsibility, not the client's. When the user makes selections, resolve names→keys ONLY via the <script id="filter-key-map"> JSON in the returned HTML, then call audience_preview with those exact keys.

Takes no parameters.

audience_quick_preview

Audience Quick Preview

Preview audience size from a free-text description the user provided in this conversation. IMPORTANT: Only call this after audience_start has been called and the user has described their target audience in their own words (Option A). Never pre-select or assume filter values — only use criteria the user explicitly stated. If the user has not yet described their audience, call audience_start first.

Parametersregionsrevenuecountriesseniorityindustriesdepartmentsdescriptionrequiredbuying_rolesemployee_size

audience_preview

Audience Preview

Preview audience size from explicit filter selections made by the user in the filter picker UI. IMPORTANT: Only call this after audience_get_filters has been shown and the user has made their own selections. Never infer or pre-fill filter values — only pass values the user explicitly selected. If the user has not yet seen the filter picker, call audience_start then audience_get_filters first.

Parametersregionsrevenuecountriesseniorityindustriesdepartmentsbuying_rolesemployee_size

audience_start_run

Start Audience Run

Start a contact pull run for a built audience. Requires audienceId from the build step and totalContacts from preview. If logged in, the run is charged to the account's YourICP billing-token balance (29 billing tokens per contact, where 100 billing tokens = $1.00) and returns a runId — call audience_download_run immediately after. Call check_billing_balance first if you want to tell the user the cost before spending. If the balance is short, this returns error "mcp_insufficient_tokens" with required, available and shortfall counts — tell the user exactly how many tokens to top up at app.youricp.com and do NOT retry until they have. If it returns "mcp_no_billing_account", the client is not linked to an account yet and only support can fix it — do NOT retry. If not logged in, card payment is required instead (capped at $1,000) — this tool returns a checkoutUrl and sessionId, then call check_payment, then audience_download_run with the runId.

ParametersaudienceIdrequiredtotalContactsrequired

check_billing_balance

Check Billing Token Balance

Read the YourICP BILLING TOKEN balance this account's runs are charged against. Billing tokens are YourICP's prepaid currency: 100 billing tokens = $1.00, and an audience contact costs 29 billing tokens. They are NOT the auth token — that is the API credential set by set_auth_token. Call this before audience_start_run when the user asks what a run will cost, or after an "mcp_insufficient_tokens" error to confirm the balance. Requires the user to be logged in.

Takes no parameters.

audience_download_run

Download Audience Run

Get the download link for a completed audience run. Returns a presigned URL the user can click to download their contact list. RENDERING — MANDATORY, VERBATIM: The response contains a download link already formatted as a markdown link with an angle-bracket destination: [Download ...](<https://...>). Present it exactly as returned. Keep the angle brackets around the URL, do NOT percent-encode or decode any query parameters, and do NOT drop, reorder, or truncate any parameter — every response-content-* and X-Amz-* param must be preserved byte-for-byte. Do NOT rewrite it into a code block, a bare URL, or an HTML anchor; emit the markdown link as the backend sent it.

ParametersrunIdrequired

Version history

2
  1. v0.1.3LatestSep 16, 2026
  2. v0.1.2Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts