Potarix enricher
OfficialThe Potarix enricher server provides AI agents with tools to gather company and contact intelligence, and manage billing credits.
Data Enrichment
Look up a company website (
lookup_company_website): Resolve a company name to its official website URL (2 credits)Find a person's email (
find_person_email): Given a name and company/domain, return a verified email address (25 credits)Find a decision maker's email (
find_decision_maker_email): Given a domain and role category (e.g. 'ceo', 'sales'), return the likely buyer's name and verified email (25 credits)Find email from LinkedIn (
find_linkedin_email): Provide a LinkedIn profile URL and get back a verified email (10 credits)Find all company emails (
find_company_emails): Pull a public contact roster for an entire company domain (25 credits)Find everything at once (
find_all): One call resolves a company's website, fetches decision-maker emails for chosen role categories, and retrieves the full company email roster
Account & Billing Management
Check balance (
check_balance): View remaining credits, total purchased, saved card status, active API key count, and account email — freeStart checkout (
start_checkout): Generate a Stripe Checkout URL to add a payment card for the first timeTop up credits (
topup_credits): Charge a saved card to add a credit pack ('1k'/$10, '5k'/$50, or '25k'/$250) without human interaction
Provides tools for payment management, including generating a Stripe checkout URL to add a card and charging a saved card to top up credits.
Potarix MCP Server
MCP wrapper for Potarix Enricher. Lets AI agents resolve company websites, find verified emails, and pull complete company rosters — and (with one human-in-the-loop card capture) sign up and pay for credits entirely from the agent.
Tools
tool | what it does | cost |
| company name → website URL | 2 credits |
| named person + company/domain → verified email | 25 credits |
| category + domain → likely buyer name + email | 25 credits |
| LinkedIn profile URL → verified email | 10 credits |
| domain → public company contact roster | 25 credits |
| one company name → website + DMs + full company email list | sum of above |
| credits, email, saved-card status, key count | free |
| get a Stripe URL to add a card the first time | n/a |
| charge the saved card and add credits | n/a |
1 credit = $0.01. Trial accounts start with 25 free credits. Every endpoint floors at the worst-case provider COGS — a hit never loses money, and short-circuited waterfall calls earn margin.
Related MCP server: Pearch
Two ways to connect
transport | endpoint | best for |
Streamable HTTP (hosted) |
| remote agents (Claude, ChatGPT) — no install |
stdio (npm package) |
| local/desktop clients |
Both expose the same nine tools. The hosted server is stateless and multi-tenant: every request is authorized by its own Authorization: Bearer ptk_live_... header, so there is no per-user deployment.
Hosted (Streamable HTTP)
Point any MCP client that speaks Streamable HTTP at https://api.potarix.com/mcp and send your key as a bearer token:
{
"mcpServers": {
"potarix": {
"url": "https://api.potarix.com/mcp",
"headers": { "Authorization": "Bearer ptk_live_your_key" }
}
}
}Install (stdio)
npm install -g potarix-mcpOr run it without a global install:
npx -y potarix-mcpConfigure
Set your Potarix API key:
export POTARIX_API_KEY=ptk_live_your_keyOptional:
export POTARIX_API=https://api.potarix.com/enricherClaude Desktop
{
"mcpServers": {
"potarix": {
"command": "npx",
"args": ["-y", "potarix-mcp"],
"env": {
"POTARIX_API_KEY": "ptk_live_your_key"
}
}
}
}Claude Code
claude mcp add potarix npx -- -y potarix-mcpThen add POTARIX_API_KEY to the environment where Claude Code runs.
Development
npm install
npm run build
npm run smoke # stdio transport: connect + tools/list
# Streamable HTTP transport:
npm run start:http # serves on http://127.0.0.1:8080/mcp (set PORT to change)
# in another shell:
POTARIX_MCP_URL=http://127.0.0.1:8080/mcp npm run smoke:httpEnvironment variables:
var | default | purpose |
| — | API key (stdio only; HTTP reads it per-request from the bearer header) |
|
|
|
|
| HTTP bind address |
|
| HTTP request path |
| — | comma-separated host allow-list; enables DNS-rebinding protection |
|
| API base URL override |
Registry Publishing
This repo includes server.json for the official MCP Registry. The entry is
multi-surface: it declares both the hosted Streamable HTTP remote
(https://api.potarix.com/mcp) and the npm stdio package (potarix-mcp), so a
single registry record advertises two ways to connect.
The registry validates the npm package by fetching it and checking that its
published mcpName matches the server name, so the npm package must be
published first, at the same version named in server.json (packages[].version).
Publishing steps (version-bump first, then npm, then registry):
# 1. Bump package.json + server.json to the same new version (e.g. 0.1.3).
# server.json must be a NEW version each publish (versions are immutable).
# 2. Build + publish the npm artifact (carries mcpName for ownership proof):
npm publish
# 3. Push the multi-surface server.json to the official MCP Registry:
mcp-publisher login github
mcp-publisher publishThe package mcpName in package.json must match server.json:
io.github.Potarix/potarix-mcpAvailable Tools
9 toolscheck_balanceCheck Potarix BalanceARead-onlyIdempotentInspect
Show the calling key's profile: email, credits remaining, total purchased, whether a card is on file, and how many active API keys exist. Free — does not consume credits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive hints. The description adds meaningful behavioral context beyond those: 'Free — does not consume credits' clarifies billing impact, and 'calling key's' specifies scope. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first lists the exact output fields, second states the free behavior. Every word is meaningful, and the most important action ('Show the calling key's profile') is front-loaded. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description explicitly enumerates all returned fields, so the agent knows exactly what to expect. Given the simplicity (no params, read-only, free), the description fully covers behavioral and return-value information without excess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is trivially 100%. The baseline for 0 params is 4, and there is nothing to clarify. The description correctly omits parameter details, keeping focus on the return data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('Show') and resource ('calling key's profile') with detailed output fields (email, credits, total purchased, card on file, active API keys). This is clearly distinct from sibling tools that search emails or handle checkout/topup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is unambiguous: this tool shows account/balance info for the calling key. No alternative sibling tool serves this purpose, so exclusions are unnecessary. The description implies when to use it by enumerating the exact data returned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_allFind All Company DataARead-onlyIdempotentInspect
Kitchen-sink: resolve a company's website, find decision-maker emails for the categories you request, and pull the company-wide email roster — all in one call. Pricing is the sum of underlying sub-calls; see /find-all docs. Uses Potarix Enricher API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| company_name | Yes | Company name, such as 'Stripe Inc.'. | |
| context | No | Optional disambiguation hint passed through to website resolution. | |
| dm_categories | No | Decision-maker role categories (e.g. 'ceo', 'sales', 'operations'). Defaults to ceo + sales + operations. Capped at 6. | |
| skip_company_emails | No | Skip the company-wide email scrape to save credits. Defaults to false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds value by disclosing cost behavior (sum of sub-calls, Potarix credits) and the composite nature of the call, which goes beyond the annotations. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences pack crucial information: the composite scope, pricing implications, and API credit source. No fluff, each sentence earns its place. The informal 'kitchen-sink' opener is efficient and memorable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex composite tool with no output schema, the description does a good job: it enumerates the three sub-results, mentions cost considerations, and points to docs. It does not detail return format or error behavior, but given the annotations and the explicit doc reference, the description is sufficiently complete for agent selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning by connecting 'pricing is the sum of underlying sub-calls' to skip_company_emails (as a way to save credits) and by indicating dm_categories maps to the 'categories you request.' These additions provide semantic value beyond the schema's existing property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific composite action: resolving a website, finding decision-maker emails, and pulling the company-wide email roster all in one call. It effectively distinguishes itself from sibling tools like find_company_emails or lookup_company_website by framing it as a combined 'kitchen-sink' option.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when multiple lookups are needed at once and mentions cost trade-offs ('Pricing is the sum of underlying sub-calls'), but it does not explicitly state when NOT to use it or directly compare to alternatives. The context is clear enough that an agent can infer when it fits, but explicit exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_company_emailsFind Company EmailsARead-onlyIdempotentInspect
Find public company email contacts for a domain. Uses Potarix Enricher API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company domain, such as 'stripe.com'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive, but the description adds a critical non-obvious behavior: it consumes Potarix Enricher API credits. This cost side effect is not captured by annotations and is essential for an agent to know before invocation. It does not mention rate limits or return shape, but the annotation coverage reduces the need for those details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences: the first states the purpose, and the second states the cost implication. It is front-loaded, actionable, and contains zero filler words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only one string parameter, complete schema coverage, and strong annotations, the description is adequately complete. It specifies the input domain, the purpose, and the credit cost. The lack of explicit return format or sibling differentiation is a minor gap, but the low complexity and available annotations make this sufficiently informative for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% description coverage for the single `domain` parameter, including an example ('stripe.com'). The tool description merely restates 'for a domain' and adds no additional meaning beyond what the schema provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Find public company email contacts for a domain.' This clearly distinguishes it from sibling tools like find_person_email and find_decision_maker_email, which target individual contacts rather than general company contacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus the sibling alternatives. It does not mention that find_person_email is for individual people or that find_decision_maker_email is for leadership contacts, leaving the agent to infer the scope from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_decision_maker_emailFind Decision Maker EmailARead-onlyIdempotentInspect
Find a likely decision maker and verified email for a domain. Uses Potarix Enricher API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company domain, such as 'stripe.com'. | |
| category | Yes | Decision maker category, such as 'ceo', 'sales', or 'operations'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly/idempotent/openWorld signals, and the description adds valuable context about API credit consumption (Potarix Enricher API credits) and the verification aspect. It doesn't cover edge cases like not-found results, but the added cost details go beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two sentences that front-load the core purpose and then mention the API credit usage. No redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with strong annotations and no output schema, the description adequately explains the key behavior and cost. It could specify the exact return format, but the essential information—what is found and at what cost—is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides thorough descriptions for both parameters—domain ('stripe.com') and category ('ceo', 'sales', 'operations')—so the description adds no extra parameter-specific meaning. With 100% schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: to find a likely decision maker and verified email for a domain. This distinguishes it from sibling tools like find_person_email (specific person) and find_company_emails (company email list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is implied by the name and description (search by domain and decision maker category), but there is no explicit guidance on when to choose this over alternatives like find_person_email or find_company_emails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_linkedin_emailFind LinkedIn EmailARead-onlyIdempotentInspect
Find a verified email from a LinkedIn profile URL. Uses Potarix Enricher API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| linkedin_url | Yes | LinkedIn profile URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds valuable behavioral context beyond annotations by disclosing that the tool uses Potarix Enricher API credits, implying a cost per call. This is a meaningful additional trait not covered by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core purpose and adds the important credit usage note without any wasted words. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one well-documented parameter and strong annotations, the description is complete. It explains what the tool does, what input it expects, and a key constraint (credit usage). No output schema is needed since the purpose ('find a verified email') implies the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a clear description for the only parameter (linkedin_url) with 100% coverage, so the schema carries the full semantic weight. The tool description merely repeats 'LinkedIn profile URL' without adding extra meaning, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: find a verified email from a LinkedIn profile URL. This specific verb+resource combination distinguishes it from sibling tools like find_company_emails or find_person_email, which target different input types or sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when you have a LinkedIn profile URL and need a verified email. It also adds a cost-related guideline by mentioning the use of Potarix Enricher API credits, though it does not explicitly exclude alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_person_emailFind Person EmailARead-onlyIdempotentInspect
Find a verified email for a named person at a company or domain. Uses Potarix Enricher API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| first_name | No | First name, if known. | |
| last_name | No | Last name, if known. | |
| full_name | No | Full name, if first and last are not split. | |
| domain | No | Company domain, such as 'stripe.com'. | |
| company_name | No | Company name, used when a domain is not known. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool uses Potarix Enricher API credits, a cost-related behavior not captured by the annotations (readOnly, openWorld, idempotent, destructive). It adds this useful context without contradicting any annotations, though it does not mention what happens when no email is found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence states the exact purpose, and the second provides a critical cost warning. It is front-loaded and highly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with comprehensive annotations and schema descriptions, the description adequately conveys core functionality and cost. However, it does not specify return values or edge cases (e.g., no email found), and the absence of an output schema makes this gap more noticeable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes all 5 parameters with full coverage (100%), so the description adds no parameter-specific meaning. The mention of 'named person at a company or domain' generally aligns with the parameters but does not enrich them beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds a verified email for a named person at a company or domain, using a specific verb and resource. This distinguishes it from sibling tools like find_company_emails and find_decision_maker_email, which target company-wide or role-specific emails respectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies you should use this tool when you have a person's full name and a domain or company, but it does not explicitly state when to use it over alternatives or provide exclusions. No sibling tool is named for comparison, so usage guidance remains implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_company_websiteLook Up Company WebsiteARead-onlyIdempotentInspect
Find the best website URL for a company name. Uses Potarix Enricher API credits.
| Name | Required | Description | Default |
|---|---|---|---|
| company_name | Yes | Company name, such as 'Stripe Inc.'. | |
| context | No | Optional disambiguation hint, such as location or industry. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive. The description adds a behavioral consequence not covered by annotations — that using it consumes Potarix Enricher API credits — and implies 'best' selection logic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences immediately convey purpose and a key caveat (API credits). No wasted words or redundant repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup with good annotations and full schema coverage, the description is adequate. It omits return type and error handling, but the purpose and credit cost are clear enough for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the description adds no extra meaning about parameter usage. It does not go beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Find') and a specific resource ('the best website URL') for a given company name, clearly differentiating it from sibling tools that target emails or account operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (when you need a company's website URL) and even mentions credit usage, but it does not explicitly list alternatives or when-not-to-use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_checkoutStart Potarix Checkout (one-time card capture)AInspect
Return a Stripe Checkout URL the human clicks once to add a card. After the human completes checkout, future topup_credits calls are silent off-session charges. Hand the returned url to the user, do not try to follow it yourself.
| Name | Required | Description | Default |
|---|---|---|---|
| tier_key | Yes | Credit pack to purchase on first checkout: '1k', '5k', or '25k'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the interaction flow: the human must click the URL, and after completion, subsequent `topup_credits` calls are off-session. It also warns the agent not to follow the URL itself. This adds valuable behavioral context beyond the annotations, which only specify read-only and idempotency flags without detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, starting with the primary function, then the consequence, then a usage directive. No unnecessary words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema and clear annotations, the description covers the essential aspects: return value, required human action, and subsequent effect on `topup_credits`. It also provides a direct usage instruction. Minor gaps like failure behavior or idempotency are not addressed but are not critical for this tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full coverage for the single `tier_key` parameter, including allowed values and a description. The tool description itself does not add new semantic details about the parameter, though the title clarifies it's for the initial checkout. Since schema coverage is 100%, the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a Stripe Checkout URL for one-time card capture, distinguishing it from the sibling `topup_credits` tool. The verb 'Return' and resource 'Stripe Checkout URL' are specific. The follow-up behavior for `topup_credits` further clarifies its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies when to use: before `topup_credits`, and explicitly states future `topup_credits` calls become off-session charges. It also gives a clear directive to hand the URL to the user and not follow it. However, it does not explicitly name alternatives or state when not to use this tool, though the sibling context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
topup_creditsTop Up Potarix CreditsADestructiveInspect
Buy a credit pack. Charges the saved card off-session if one is on file (returns immediately on success). If no card is saved yet, run start_checkout first to capture one.
| Name | Required | Description | Default |
|---|---|---|---|
| tier_key | Yes | Credit pack: '1k' ($10), '5k' ($50), or '25k' ($250). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds context beyond destructiveHint=true: it charges off-session and returns immediately on success. However, it does not mention failure scenarios (e.g., insufficient funds).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences with no extraneous information. Key points (buying, charging, alternative) are front-loaded and clearly separated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with annotations already indicating destructive nature, the description covers the core workflow, prerequisites, and behavior. No output schema is needed, and the description suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers the parameter tier_key with enum values and descriptions. The description adds no further parameter information beyond what the schema provides (100% coverage).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Buy a credit pack', clearly specifying the verb 'buy' and the resource 'credit pack'. It distinguishes from sibling tools by referencing start_checkout as a prerequisite when no card is saved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool (buying credits) and when to use an alternative (start_checkout if no card is saved), including exact tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v0.1.2- First observed
check_balance - First observed
find_all - First observed
find_company_emails - First observed
find_decision_maker_email - First observed
find_linkedin_email - First observed
find_person_email - First observed
lookup_company_website - First observed
start_checkout - First observed
topup_credits
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose: check_balance for account info, individual email lookup tools for different sources, a composite find_all, website lookup, and billing management. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., check_balance, find_company_emails, topup_credits). No mixing of conventions or irregular names.
9 tools are well-scoped for a company/email enrichment service with account and billing features. Each tool serves a necessary function without superfluous additions.
The tool surface covers main workflows: account info, various email lookups, website resolution, and billing. A minor gap is the lack of a tool to list or manage API keys, but the core functionality is solid.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- SalesQLOAuthcom.salesql
Find verified B2B emails and phone numbers; search and enrich people and companies for prospecting.
Search B2B contacts, enrich verified emails and phone numbers, and export results.
Search and enrich B2B people & companies — 70+ filters (funding, linkedin, industry, country, ...).
Search companies, enrich contacts, and reveal emails and phones from your AI agent.
Related MCP Servers
- AlicenseBqualityDmaintenanceSearching google, individual websites and scraping their content. Fast and cost-effective. ⚡️98123MIT
- AlicenseNot gradedqualityCmaintenanceBest people search engine that reduces the time spent on talent discovery9MIT
- AlicenseAqualityDmaintenanceEnables scraping of emails, phone numbers, and social profile links from website domains. Supports batch processing of up to 20 domains and can find company websites by keyword/company name.2MIT

Prospeo MCP Serverofficial
AlicenseAqualityFmaintenanceEnables AI tools to search and enrich B2B leads, including finding professional emails, company profiles, and filtering people and companies by various criteria.5166MIT