{
  "data": {
    "tool": {
      "category": "email",
      "endpoint": "https://mcp.youricp.com/sse",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/youricp-mcp-server.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/youricp-mcp-server.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/youricp-mcp-server.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 3481,
          "counts": {
            "error": 0,
            "note": 1,
            "warn": 3
          },
          "findings": [
            {
              "rule": "TC18",
              "severity": "warn",
              "tool": "audience_start",
              "message": "readOnlyHint is true but the name says \"start\"",
              "fix": "If it changes anything, readOnlyHint must be false."
            },
            {
              "rule": "TC18",
              "severity": "warn",
              "tool": "set_auth_token",
              "message": "readOnlyHint is true but the name says \"set\"",
              "fix": "If it changes anything, readOnlyHint must be false."
            },
            {
              "rule": "TC18",
              "severity": "warn",
              "tool": "set_token",
              "message": "readOnlyHint is true but the name says \"set\"",
              "fix": "If it changes anything, readOnlyHint must be false."
            },
            {
              "rule": "TC24",
              "severity": "note",
              "message": "13 of 13 tools have no outputSchema",
              "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
            }
          ]
        },
        "checkedAt": "2026-10-04T22:24:21Z",
        "count": 13,
        "schemaTokens": 3481,
        "status": "ok",
        "tools": [
          {
            "name": "set_auth_token",
            "description": "Set the user's YourICP auth token for this session. Call this when the user pastes their auth token in the chat.\nThis is an API credential, NOT YourICP billing tokens — billing tokens are the prepaid currency a run spends, and check_billing_balance reads them.\nOnce set, the auth token is used for all API requests and card payment is no longer required.\nTo get an auth token, the user can log in at https://mcp.youricp.com/authorize.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "authToken": {
                  "description": "The YourICP auth token pasted by the user",
                  "type": "string"
                }
              },
              "required": [
                "authToken"
              ],
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true,
              "title": "Set Auth Token"
            }
          },
          {
            "name": "set_token",
            "description": "DEPRECATED — call set_auth_token instead. Sets the user's YourICP auth token for this session.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "token": {
                  "description": "The YourICP auth token pasted by the user",
                  "type": "string"
                }
              },
              "required": [
                "token"
              ],
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true,
              "title": "Set Auth Token (deprecated)"
            }
          },
          {
            "name": "activate_login",
            "description": "Activate a login completed in the browser. Call this after signing in at the login page.\nAutomatically retrieves the auth token and activates it for this session — no copy/paste needed.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true,
              "title": "Activate Browser Login"
            }
          },
          {
            "name": "submit_lookup",
            "description": "Submit a contact enrichment job for one or more email addresses or LinkedIn profile URLs.\nProvide emails, linkedInUrls, or both.\nIf 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.\nIf 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.\nIf 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.\nDo NOT retry automatically on failure.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "emails": {
                  "description": "List of email addresses to look up",
                  "items": {
                    "format": "email",
                    "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
                    "type": "string"
                  },
                  "maxItems": 50,
                  "type": "array"
                },
                "linkedInUrls": {
                  "description": "List of LinkedIn profile URLs to look up",
                  "items": {
                    "format": "uri",
                    "type": "string"
                  },
                  "maxItems": 50,
                  "type": "array"
                },
                "userEmail": {
                  "description": "Email address of the user requesting the lookup (used for payment receipt when payment is required)",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "annotations": {
              "destructiveHint": true,
              "readOnlyHint": false,
              "title": "Submit Contact Lookup"
            }
          },
          {
            "name": "check_lookup",
            "description": "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.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "jobId": {
                  "description": "The jobId returned by submit_lookup or shown on the payment success page",
                  "type": "string"
                }
              },
              "required": [
                "jobId"
              ],
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true,
              "title": "Check Lookup Result"
            }
          },
          {
            "name": "check_payment",
            "description": "Check whether a Stripe checkout session has been paid and execute the next step.\nCall this after presenting the checkoutUrl to the user. If status is \"pending\", wait a few seconds and call again.\n- If called after submit_lookup: once status is \"done\" call check_lookup with the returned jobId.\n- If called after audience_start_run: once status is \"done\" call audience_download_run with the returned runId.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "sessionId": {
                  "description": "The sessionId returned by submit_lookup or audience_start_run when payment was required",
                  "type": "string"
                }
              },
              "required": [
                "sessionId"
              ],
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true,
              "title": "Check Payment Status"
            }
          },
          {
            "name": "audience_start",
            "description": "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.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true,
              "title": "Start Audience Builder"
            }
          },
          {
            "name": "audience_get_filters",
            "description": "Fetch all available audience filter categories as an interactive filter picker.\nOnly call this after audience_start has been called and the user chose Option B (interactive filter picker).\nDo not call this tool to guess or pre-populate filters on behalf of the user.\n\nRENDERING — MANDATORY, VERBATIM:\nThe 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.\nIf 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.\n\nRender 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.\n\nALWAYS 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.\n\nDo 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.\n\nWhen the user makes selections, resolve names→keys ONLY via the \u003cscript id=\"filter-key-map\"\u003e JSON in the returned HTML, then call audience_preview with those exact keys.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true,
              "title": "Get Audience Filters"
            }
          },
          {
            "name": "audience_quick_preview",
            "description": "Preview audience size from a free-text description the user provided in this conversation.\nIMPORTANT: 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.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "buying_roles": {
                  "description": "Buying role keys",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "countries": {
                  "description": "Country names",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "departments": {
                  "description": "Department/job function names (e.g., 'Customer Service')",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "description": {
                  "description": "The user's audience description or criteria (for logging)",
                  "type": "string"
                },
                "employee_size": {
                  "description": "Employee size keys",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "industries": {
                  "description": "Industry keys (e.g., 'software')",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "regions": {
                  "description": "Region/state names",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "revenue": {
                  "description": "Revenue range keys",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "seniority": {
                  "description": "Seniority level keys (e.g., 'junior', 'senior')",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "required": [
                "description"
              ],
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true,
              "title": "Audience Quick Preview"
            }
          },
          {
            "name": "audience_preview",
            "description": "Preview audience size from explicit filter selections made by the user in the filter picker UI.\nIMPORTANT: 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.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "buying_roles": {
                  "description": "Buying role keys",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "countries": {
                  "description": "Country names",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "departments": {
                  "description": "Department/job function names (e.g., 'Customer Service')",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "employee_size": {
                  "description": "Employee size keys",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "industries": {
                  "description": "Industry keys (e.g., 'software')",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "regions": {
                  "description": "Region/state names",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "revenue": {
                  "description": "Revenue range keys",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "seniority": {
                  "description": "Seniority level keys (e.g., 'junior', 'senior')",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true,
              "title": "Audience Preview"
            }
          },
          {
            "name": "audience_start_run",
            "description": "Start a contact pull run for a built audience. Requires audienceId from the build step and totalContacts from preview.\nIf 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.\nIf 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.\nIf 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.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "audienceId": {
                  "description": "The audience id returned by the build step",
                  "type": "string"
                },
                "totalContacts": {
                  "description": "total_contacts value from the preview result",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991,
                  "type": "integer"
                }
              },
              "required": [
                "audienceId",
                "totalContacts"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": true,
              "readOnlyHint": false,
              "title": "Start Audience Run"
            }
          },
          {
            "name": "check_billing_balance",
            "description": "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.\nCall 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.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true,
              "title": "Check Billing Token Balance"
            }
          },
          {
            "name": "audience_download_run",
            "description": "Get the download link for a completed audience run. Returns a presigned URL the user can click to download their contact list.\n\nRENDERING — MANDATORY, VERBATIM:\nThe response contains a download link already formatted as a markdown link with an angle-bracket destination: [Download ...](\u003chttps://...\u003e). 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.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "runId": {
                  "description": "The runId returned by audience_start_run or check_payment",
                  "type": "string"
                }
              },
              "required": [
                "runId"
              ],
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true,
              "title": "Download Audience Run"
            }
          }
        ]
      },
      "name": "YourICP",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": [
        {
          "registryType": "npm",
          "identifier": "@youricp/mcp",
          "version": "0.1.3",
          "transport": "stdio"
        }
      ],
      "pageJsonUrl": "https://www.anchorterminal.com/tools/youricp-mcp-server.json",
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 40
      },
      "registryName": "com.youricp/mcp-server",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://mcp.youricp.com/sse"
        }
      ],
      "repository": "https://github.com/YourICP/mcp-server",
      "reviewed": false,
      "slug": "youricp-mcp-server",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=com.youricp/mcp-server",
      "summary": "Enrich contacts by email or LinkedIn URL and build targeted B2B audiences.",
      "updatedAt": "2026-09-16T13:22:49Z",
      "url": "https://www.anchorterminal.com/tools/youricp-mcp-server",
      "vendor": "youricp.com",
      "vendorUrl": "https://youricp.com/mcp",
      "version": "0.1.3",
      "websiteUrl": "https://youricp.com/mcp",
      "where": "both",
      "why": [
        "vendor"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/youricp-mcp-server",
    "json": "https://www.anchorterminal.com/tools/youricp-mcp-server.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/youricp-mcp-server.md",
    "slim": "https://www.anchorterminal.com/tools/youricp-mcp-server.min.md"
  },
  "markdown": "# YourICP\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by youricp.com (https://youricp.com/mcp)\n- Category: Email delivery APIs (https://www.anchorterminal.com/categories/email.md)\n- Listed because: It's published in the registry under youricp.com, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: Enrich contacts by email or LinkedIn URL and build targeted B2B audiences.\n\n## Facts\n\n- MCP registry: `com.youricp/mcp-server` 0.1.3\n- Endpoint: https://mcp.youricp.com/sse (streamable HTTP)\n- Package: npm `@youricp/mcp` (stdio)\n- Source: https://github.com/YourICP/mcp-server\n- Website: https://youricp.com/mcp\n- npm downloads a week: 40\n- GitHub stars: 0\n- Registry entry updated: 2026-09-16\n\n## Tools\n\n- Tools it lists (13, about 3,481 tokens of context, `tools/list` without credentials over MCP 2025-11-25, checked 2026-10-04 22:24 UTC):\n  - `set_auth_token` (read-only): 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…\n  - `set_token` (read-only): DEPRECATED — call set_auth_token instead. Sets the user's YourICP auth token for this session.\n  - `activate_login` (read-only): 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…\n  - `submit_lookup` (writes): 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…\n  - `check_lookup` (read-only): 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…\n  - `check_payment` (read-only): 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…\n  - `audience_start` (read-only): 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…\n  - `audience_get_filters` (read-only): 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…\n  - `audience_quick_preview` (read-only): 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…\n  - `audience_preview` (read-only): 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…\n  - `audience_start_run` (writes): 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…\n  - `check_billing_balance` (read-only): 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…\n  - `audience_download_run` (read-only): 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:…\n- How its tools read to an agent (0 errors, 3 warnings, 1 note, about 3,481 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n  - warn TC18 audience_start: readOnlyHint is true but the name says \"start\"\n  - warn TC18 set_auth_token: readOnlyHint is true but the name says \"set\"\n  - warn TC18 set_token: readOnlyHint is true but the name says \"set\"\n  - note TC24 server: 13 of 13 tools have no outputSchema\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/youricp-mcp-server.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "YourICP",
        "url": ""
      }
    ],
    "description": "YourICP, an MCP server by youricp.com, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Enrich contacts by email or LinkedIn URL and build targeted B2B audiences.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "YourICP",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/youricp-mcp-server",
    "published": "",
    "section": "indexed",
    "title": "YourICP: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/tools/youricp-mcp-server"
  },
  "tokens": {
    "markdown": 1250,
    "slim": 1180
  },
  "version": 1
}
