MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Communication & messaging

YourICP

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

Checks passed
15 / 22

0 failed · 7 not measured

Median response
663 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
13

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
103
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 671 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name youricp.

  • Pass
    Lists tools

    tools/list returned 13 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 663 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 670 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Pass
    Stable tool list

    No tool was removed and no required parameter was added in the last 30 days.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    29 of 29 parameters have a description (100%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-09-16T13:22:49.276771Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using YourICP

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http youricp https://mcp.youricp.com/sse

Capabilities

Tools 13

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

Discovered
audience_download_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.

Discovered
audience_get_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.

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

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

Discovered
audience_start

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.

Discovered
audience_start_run

Start a contact pull run for a built audience. Requires audienceId from the build step and totalContacts from preview. Set phoneValidation to true to also confirm each contact's phone number with a live phone call; it raises the price per contact from $0.05 to $0.19. The file is ready straight away with each phone marked "processing"; call results arrive over the following days, and downloading the run again returns them. If logged in, the run is charged to the account's YourICP billing-token balance (5 billing tokens per contact, 19 with phoneValidation, 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 ($0.05 per contact, $0.19 with phoneValidation, capped at $1,000) — this tool returns a checkoutUrl and sessionId, then call check_payment, then audience_download_run with the runId. Card payments start at $0.50; below that it returns error "below_card_minimum" — suggest signing in instead.

Discovered
check_billing_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 5 billing tokens, or 19 with phoneValidation. 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.

Discovered
check_lookup

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.

Discovered
check_payment

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.

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

Discovered
set_token

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

Discovered
submit_lookup

Submit a contact enrichment job for one or more email addresses or LinkedIn profile URLs. Provide emails, linkedInUrls, or both. Set phoneValidation to true to also confirm each phone number with a live phone call; it raises the price per contact from $0.02 to $0.19. If logged in, the job is charged to the account's YourICP billing-token balance (2 billing tokens per contact matched, 19 with phoneValidation, 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 ($0.02 per contact, $0.19 with phoneValidation): this tool returns a checkoutUrl and sessionId — present the URL, then call check_payment. Card payments start at $0.50; below that it returns error "below_card_minimum" — suggest signing in instead. Do NOT retry automatically on failure.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected671 ms13
Connected655 ms13