Skip to main content
Glama

AgentPixel

Server Details

Most website visitors leave without filling out a form. AgentPixel turns the ones who say yes into contacts your AI agent reads. 30-day trial, no card.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
byron-allsourcedata/agentpixel-mcp
GitHub Stars
0

TDQS

A3.8/5.0

Scored across 14 tools

Disambiguation4/5

Most tools have clearly distinct purposes (create_pixel vs list_pixels vs check_install vs configure_consent). The onboarding cluster (signup_free, confirm_signup, resend_code, create_api_key) is related but descriptions sharply delineate each step, and setup_status vs whoami vs check_install are close but distinguished by their descriptions.

Naming Consistency4/5

Almost all tools follow a verb_noun snake_case pattern (check_install, create_pixel, get_contacts, list_pixels, resend_code). Minor deviations like whoami and the noun-oriented setup_status slightly break the pattern but remain readable.

Tool Count5/5

14 tools sit comfortably in the well-scoped range and each maps to a distinct lifecycle step (onboarding, pixel setup, consent, contact retrieval, status checks). No tool appears redundant or out of place.

Completeness4/5

The surface covers the full onboarding and pixel lifecycle including trial signup, confirmation, API keys, consent configuration, install checking, and contact pulls. However there are no delete/update or teardown operations (e.g. removing a pixel or revoking a key), a minor gap.

Available Tools

14 tools
check_installCheck and save installationAInspect

Fetch the pixel's homepage and store whether the tag is there.

    install_status becomes installed or not_installed. check_error says
    why a check could not decide. Evaluator accounts fetch only the fixed
    https://staging.allsourcedata.io/evaluation-test/ page and reject redirects.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pixel_idYespixel_id of the pixel whose homepage to check. Example: px_7a1b2c3d4e5f6a7b

Output Schema

ParametersJSON Schema
NameRequiredDescription
domainYes
snippetNo
pixel_idYes
data_kindYes
checked_atNo
check_errorNo
install_statusYes
consent_enabledNo
evaluation_modeYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and openWorldHint=true, so the write-plus-network nature is partly covered. The description goes further: it discloses that a real homepage fetch occurs, that state is persisted as installed/not_installed, how failures are surfaced via check_error, and the evaluator-account exception where only a fixed staging URL is fetched and redirects are rejected. It does not explain why the operation is non-idempotent, which is the one annotation left unaddressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: the action first, then the two possible persisted outcomes, then the edge-case constraint. No filler, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is not strictly required, yet the description still names install_status and check_error helpfully. Combined with annotations covering the destructive/open-world profile, an agent has enough to call it correctly; only idempotency behavior remains unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter and schema coverage is 100%, including an example value and a format pattern, so the schema fully carries parameter meaning. The description adds nothing about pixel_id, which is the correct baseline of 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource chain: fetch the pixel's homepage and persist whether the tracking tag is present. That is far more concrete than the name alone, though it never names or contrasts a sibling such as get_pixel or setup_status, so an agent must infer which of those is the right alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit 'use this when...' statement or named alternative. The one usage-relevant detail given is scoping for evaluator accounts (fixed URL, redirects rejected), which is a conditional hint but not guidance on when to pick this tool over the sibling status/get tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confirm_signupConfirm signup emailA
Idempotent
Inspect

Confirm the email with the 6-digit code, or check whether the email link was clicked.

    Preferred: confirm_signup(account_id, code, signup_token). The first confirmation returns api_key; store it, it is shown once.
    Link clicked instead: call confirm_signup(account_id, signup_token) every 5 seconds, up to 10 minutes, until email_verified is true, then call create_api_key.
    A code allows 5 attempts and lasts 24 hours. For a new code, call resend_code(email).
    
ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoThe 6-digit code from the AgentPixel email. Ask the person to read it to you. Example: 482913
account_idNoaccount_id returned by signup_free. Use with code, or with signup_token alone to check whether the email link was clicked. Example: 3f1c2b9e-1d2a-4c5b-9e8f-0a1b2c3d4e5f
signup_tokenNosignup_token returned by signup_free. With code, the first confirmation also returns the API key. Alone with account_id, returns whether the email is confirmed.
verification_tokenNoOlder method: the token value from the confirmation link URL (?token=...). Prefer account_id and code.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
confirmedYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses high-value behavior: the first successful confirmation returns an api_key that is shown only once and must be stored, the code allows 5 attempts and expires in 24 hours, and the link-polling loop should run at 5-second intervals for up to 10 minutes. These are non-obvious operational and one-time-secret details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose sentence, then two labeled branches ('Preferred' / 'Link clicked') with no filler. Every remaining sentence carries a distinct operational fact (attempt limit, code lifetime, resend escalation).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return details needn't be restated, yet the description still explains what the agent must do with the returned secret and the success flag. Combined with the alternative-tool routing, nothing needed to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds the valid parameter combinations (account_id+code+signup_token for confirmation, account_id+signup_token alone for status checks) that the optional-parameter schema does not express. It does not mention the legacy verification_token path, which only the schema covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific verb+resource ('Confirm the email') and explicitly covers the two distinct modes (code entry vs. polling for a clicked link). An agent can distinguish this from siblings like resend_code or create_api_key without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names the preferred invocation, the alternative invocation, the polling cadence and ceiling (every 5 seconds, up to 10 minutes until email_verified is true), the follow-up call (create_api_key), and the escalation path (resend_code) when the code is exhausted. When/when-not guidance is fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_api_keyIssue private API keyAInspect

Issue an API key after the email is confirmed.

    Not needed when confirm_signup already returned api_key. Each call issues another key, so call it once.
    Returns the key once. Store it securely and attach it to the connection.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYesaccount_id returned by signup_free. Example: 3f1c2b9e-1d2a-4c5b-9e8f-0a1b2c3d4e5f
signup_tokenYessignup_token returned by signup_free. It lasts 24 hours.

Output Schema

ParametersJSON Schema
NameRequiredDescription
prefixYes
api_keyYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false; the description goes further by concretizing non-idempotency (each call mints an additional key) and by disclosing that the secret is shown only once and must be stored securely. That is real behavioral value beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and prerequisite, then the routing rule, then the return/secret-handling caveat. No filler; every sentence carries decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description need not describe the response body, yet it still flags the one-shot nature of the returned key. With prerequisites, the sibling alternative, and secret handling all covered, nothing needed to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: account_id and signup_token are already documented, including the token's 24-hour lifetime. The description only reiterates the confirmation prerequisite and adds no format or syntax detail, so the baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource ('Issue an API key') with an explicit precondition ('after the email is confirmed'). It also names the sibling confirm_signup, letting an agent distinguish this tool from the signup flow without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States an explicit when-not condition ('Not needed when confirm_signup already returned api_key') and a call-count constraint ('Each call issues another key, so call it once'). Both the alternative and the selection rule are spelled out rather than implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pixelCreate site pixelAInspect

Create a pixel for a domain.

    Does not create an API key. The account must already be active.
    Next: call configure_consent(pixel_id, controller_name, purposes) and install the snippet it returns.
    Do not install a snippet before consent is configured. install_status starts as not_checked until check_install runs.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesPublic hostname of the site, without scheme, port, path or IP address. Example: shop.example.com

Output Schema

ParametersJSON Schema
NameRequiredDescription
domainYes
snippetNo
pixel_idYes
data_kindYes
checked_atNo
check_errorNo
install_statusYes
consent_enabledNo
evaluation_modeYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true, so the bar is lower. The description still adds real value: it clarifies the API-key side effect does not occur, states the account prerequisite, and describes the install_status lifecycle starting at 'not_checked'. It does not say what happens on a duplicate domain, which is the one notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded one-line purpose followed by terse, distinct operational notes; no filler, and each line carries a rule the agent must obey (no API key, active account, consent before install, initial status).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value details are unnecessary. For a mutating tool with only one required parameter, the description covers preconditions, sequencing, and state initialization, which is everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter and schema description coverage is 100% — the schema already specifies the hostname format, pattern, length bounds, and an example. The description adds nothing about the domain argument beyond reassembling 'for a domain', so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource ('Create a pixel for a domain') and explicitly excludes a confusing near-neighbor by noting it 'Does not create an API key', which separates it from the create_api_key sibling. An agent can identify this as the pixel-provisioning tool without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a hard precondition ('The account must already be active'), a required follow-up ('Next: call configure_consent...'), and an explicit ordering prohibition ('Do not install a snippet before consent is configured'). This tells the agent both when to call it and what must happen before/after, including the initial 'not_checked' state.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contactsRead contactsA
Read-onlyIdempotent
Inspect

Contacts for one pixel.

    Pass on as a UTC day, or after as the high_water from the previous pull. Use high_water as the next cursor.
    New contacts can arrive between reads. This does not identify new visitors.
    Evaluation returns labeled synthetic examples only after current resolution consent is saved; withdrawal hides them.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
onNoUTC calendar date in YYYY-MM-DD form. Returns contacts stored on that day. Use exactly one of on or after. Example: 2026-10-12
afterNoCursor for incremental reads: the high_water value from your previous pull, or 0 to start at the first stored contact. Use exactly one of on or after. Example: 0
pixel_idYespixel_id whose contacts to read. Example: px_7a1b2c3d4e5f6a7b

Output Schema

ParametersJSON Schema
NameRequiredDescription
onNo
afterNo
contactsYes
pixel_idYes
data_kindNo
high_waterNo
evaluation_modeNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive, so the description earns credit for going further: new contacts can arrive between reads (no stable snapshot), results are scoped to a single pixel, and evaluation data is consent-gated (synthetic examples only after consent is saved, hidden on withdrawal). It omits rate limits or page-size behavior, keeping it at a strong 4 rather than 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short and front-loaded with the one-line purpose, and every sentence carries information. The phrasing is uneven ('Pass on as a UTC day' reads ambiguously) and the consent sentence is somewhat cryptic, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema handling return values, 100% schema coverage, and annotations covering safety, the description supplies what remains: pagination mechanics, eventual-consistency caveat, and consent-gated visibility. Only sibling differentiation is unaddressed, which is a minor gap given the unique resource.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents 'exactly one of on or after', the YYYY-MM-DD format, and that 'after' is the previous high_water. The description mostly restates this, adding only light framing about the cursor round-trip. Baseline 3 applies when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the resource and scope precisely: 'Contacts for one pixel.' The read action is implied by the name/annotations, and 'contacts' is a distinct resource from siblings like get_pixel/list_pixels. It stops short of naming any sibling or explicitly contrasting alternatives, so not a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete operating instructions: pass 'on' as a UTC day, or 'after' as the high_water from the previous pull, and use high_water as the next cursor. This tells the agent how to drive the tool across reads, but names no alternatives and gives no when-not guidance (e.g. which mode to prefer for which workflow).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pixelRead pixel and install tagC
Read-onlyIdempotent
Inspect

One pixel, including the HTML snippet to paste on its site.

ParametersJSON Schema
NameRequiredDescriptionDefault
pixel_idYespixel_id returned by create_pixel or list_pixels, never an account_id. Example: px_7a1b2c3d4e5f6a7b

Output Schema

ParametersJSON Schema
NameRequiredDescription
domainYes
snippetNo
pixel_idYes
data_kindYes
checked_atNo
check_errorNo
install_statusYes
consent_enabledNo
evaluation_modeYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds one genuinely useful behavioral fact — that the payload includes the HTML snippet needed to install the tag — but says nothing about scoping, permissions, or error cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short clause with zero filler, and the most important fact (the install snippet) is front-loaded. It is efficient, though the terseness edges toward under-specification rather than pure conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is not required, and annotations cover the safety contract. What is missing is the routing information an agent needs to choose this tool over list_pixels or create_pixel, which leaves the definition only minimally complete for its sibling set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the pixel_id param is already richly documented in the schema ('returned by create_pixel or list_pixels, never an account_id', plus an example). The description contributes no additional meaning about the parameter, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a noun fragment ('One pixel, including the HTML snippet...') rather than a verb+resource statement; the action of reading is only implied. The title supplies 'Read pixel and install tag', and the singular 'one pixel' loosely distinguishes it from list_pixels, but the description text itself does not state a clear verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no mention of alternatives such as list_pixels (for enumerating) or create_pixel (for provisioning). The agent must infer the retrieval context purely from the name and the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_policyRead hosted privacy noticeA
Read-onlyIdempotent
Inspect

Hosted privacy and data-use policy HTML for a pixel.

A pixel with consent turned off has no policy yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
pixel_idYespixel_id whose hosted notice to read. Example: px_7a1b2c3d4e5f6a7b

Output Schema

ParametersJSON Schema
NameRequiredDescription
pixel_idYes
policy_htmlYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description goes beyond them by disclosing the consent-off edge case where no policy exists yet, which is genuinely useful behavioral context for interpreting results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short fragments with no padding; the core output description is front-loaded and the caveat follows immediately. The phrasing is slightly terse/awkward but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return values, and it correctly spends its words on the one thing the schema can't convey: the consent-off case where no policy exists. For a one-parameter read tool this is close to complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage, including a pattern and an example value, so the schema fully documents pixel_id. The description adds no parameter-level meaning, which matches the baseline of 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific resource (hosted privacy/data-use policy) and its scope (for a pixel), and states the return form (HTML). It is clearly distinguishable from siblings like get_pixel or configure_consent, though it does not explicitly contrast itself with any of them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: read the hosted notice for a given pixel. The description adds one useful precondition ('A pixel with consent turned off has no policy yet'), which warns the agent about an empty/unavailable result. It offers no routing guidance against alternatives, so it stays at minimum-viable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_pixelsList my pixelsB
Read-onlyIdempotent
Inspect

Pixels on this account. Each item has pixel_id, domain, and install_status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
pixelsYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, covering the full behavioral profile of this simple read. The description adds no behavioral context beyond that (no pagination, caching, or auth notes), so it contributes almost nothing on this dimension.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler; the scope statement comes first. It is appropriately sized for a zero-parameter list tool, though the second sentence is somewhat fragmentary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation in prose, and there are no parameters to document. Annotations carry the safety profile, so the definition is essentially complete for a trivial read, missing only sibling routing guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, which is the baseline 4 case. The description's mention of output fields does not function as parameter documentation, and none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource and scope precisely: 'Pixels on this account', which together with the name makes the collection-listing purpose unambiguous. It does not explicitly contrast with the sibling get_pixel (single pixel) or create_pixel, so it earns a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this instead of get_pixel, create_pixel, or check_install, and no prerequisites or exclusions are stated. The agent must infer from the name alone that this is the collection-level read.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resend_codeSend a new email codeAInspect

Send a new 6-digit code to the email of an existing account.

    Use it when the code expired, was lost or was entered wrong 5 times. Limits: 1 per minute, 5 per day.
    The old code stops working. With an expired signup_token, use the new code on POST /v1/accounts/{account_id}/signup-token to get a new token.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address used at signup. A new 6-digit code and link are sent there. Example: pat@example.com

Output Schema

ParametersJSON Schema
NameRequiredDescription
sentYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing rate limits, the side effect that the old code stops working, and the downstream recovery path via POST /v1/accounts/{account_id}/signup-token. This is exactly the operational context an agent needs for a non-idempotent write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, then conditions, then limits and side effects. No filler and nothing repeated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. Between the action, trigger conditions, rate limits, invalidation side effect, and the follow-up token flow, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the email property is already documented with format and an example. The description adds the meaningful constraint that the email must belong to an existing account, which the schema does not state.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: send a new 6-digit code to the email of an existing account. The 'existing account' scoping and the 6-digit code detail distinguish it from siblings like confirm_signup and signup_free without needing the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit trigger conditions ('when the code expired, was lost or was entered wrong 5 times') plus hard limits (1/min, 5/day). It stops short of naming an alternative tool or stating when not to use it, so it is clear context but not full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_statusRead installation progressA
Read-onlyIdempotent
Inspect

Whether this account can use pixels and whether a tag is installed.

    setup_complete is true once at least one pixel's tag has been seen on
    its site. good_standing is the account, not the tag.
    
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
pixel_countYes
good_standingYes
setup_completeYes
installed_countYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds real semantic content beyond that: setup_complete flips only after at least one pixel's tag has been observed on its site, and good_standing describes the account rather than the tag. It stops short of noting staleness, refresh timing, or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core claim is front-loaded in the first sentence, with the field semantics following as supporting detail. The inherited docstring indentation is slightly untidy but there is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover the safety profile, so the description's obligation is narrow, and it meets it by explaining what the two returned booleans actually mean. The one real omission is routing guidance against the similar check_install sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The prose instead spends its budget on clarifying the two boolean fields returned, which is appropriate for a no-arg status tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states what the tool reports: whether the account can use pixels and whether a tag is installed, which is a specific, checkable outcome rather than a restatement of the name. It does not, however, distinguish itself from the overlapping sibling check_install, leaving an agent to guess which status check to prefer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of the apparent alternative check_install (or whoami) despite the obvious overlap in this sibling set. The agent must infer the calling context entirely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

signup_freeStart 30-day trialAInspect

Start a 30-day trial, no card. After that, $1 per account per month for 3 pixels and 500 new contacts per UTC calendar month.

    Sends a 6-digit code to the email address. Returns account_id and signup_token; keep both.
    Next: ask the person for the 6-digit code in the AgentPixel email, then call confirm_signup(account_id, code, signup_token).
    The signup_token lasts 24 hours.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoOptional trial code from a directory or listing, such as SMITHERY60. An unknown code never blocks signup. Example: GLAMA60
emailYesEmail address of the person who will own the account. The 6-digit code is sent here. Ask the person for it; never invent or guess an address. Example: pat@example.com
display_nameYesName shown on the account, such as the person's name or the business name. 1 to 200 characters. Example: Pat Lee

Output Schema

ParametersJSON Schema
NameRequiredDescription
planYes
statusYes
account_idYes
signup_tokenYes
email_verifiedYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false, so the mutation profile is already known. The description adds genuinely useful context beyond that: no card required, the price after the trial, that an email code is dispatched, and that signup_token expires in 24 hours. It does not warn whether re-invoking creates a duplicate account, which is the main behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the offer and price, then the mechanics, then the required next call, then the token lifetime. Every sentence carries information, though the pricing sentence is longer than strictly needed for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, yet the description still names the returned account_id and signup_token and tells the agent to keep both, plus the exact signature of the next call and the token TTL — a complete happy-path flow. It omits error/duplicate-account handling and never mentions resend_code as the recovery path for a lost code.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all three parameters (including the optional trial code) are already documented with patterns, lengths and examples. The description only reinforces that the 6-digit code goes to the email address; it adds no format or constraint detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource with commercial terms ('Start a 30-day trial, no card... $1 per account per month'), which instantly distinguishes it from sibling signup-adjacent tools like confirm_signup and resend_code. An agent can tell what this does and what it costs without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly prescribes the follow-up flow: ask the person for the emailed 6-digit code, then call confirm_signup(account_id, code, signup_token). That is strong sequencing guidance, but it never says when NOT to use this tool (e.g. when an account already exists, in which case whoami/setup_status would be the right entry point), so there are no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

try_sampleSee sample outputA
Read-onlyIdempotent
Inspect

Labeled sample of what an account gets: a pixel, a consent receipt and two contacts.

    Needs no account and no key. Every record is synthetic and marked so.
    Call this first to show the person what AgentPixel returns, then call signup_free.
    
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
pixelYes
contactsYes
next_stepYes
syntheticYes
consent_receiptYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and closed-world, so the safety profile is covered. The description adds genuinely non-redundant behavior: no account or key is required, and every record is synthetic and marked as such — important context for a demo tool whose output could otherwise be mistaken for real data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short lines, front-loaded with the payload contents before the no-auth note and the call-order instruction. Every sentence carries distinct information and none is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description need not enumerate return fields, and it still summarizes the sample contents at a glance. Combined with the no-key note and the next-step routing to signup_free, an agent has everything needed to call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4 and there is no syntax or format meaning for the description to add. Nothing here is missing or misleading on the parameter front.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states exactly what the tool returns — a labeled sample consisting of a pixel, a consent receipt, and two contacts — and the title 'See sample output' supplies the action. An agent can distinguish this preview tool from siblings like signup_free, create_pixel, or get_contacts without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit sequencing: 'Call this first to show the person what AgentPixel returns, then call signup_free.' That names both the condition for using this tool and the follow-up alternative, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whoamiCheck account identityA
Read-onlyIdempotent
Inspect

Which account this connection's API key belongs to.

    status is the account state after email confirmation. plan is "free" (the trial plan id) during the 30-day trial,
    paid after the subscription, or unlimited for internal accounts. trial_ends_at is when the trial ends.
    key_prefix is the start of the key, not the key.
    
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
planYes
statusYes
data_kindYes
account_idYes
key_prefixYes
paid_untilNo
next_actionYes
trial_ends_atNo
evaluation_modeYes
resolution_stateYes
evaluation_expires_atNo
evaluation_install_urlNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, non-destructive behavior, so the bar is lower. The description adds genuinely useful semantics beyond that: what status means (state after email confirmation), what each plan value means (trial 'free' id, 'paid', 'unlimited'), trial_ends_at, and that key_prefix is a truncated prefix and not the secret key.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first line and the remainder is a tight list of field meanings with no filler. The multi-line indented formatting is slightly awkward but the content earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, yet it adds useful interpretation of the plan/status/trial fields. Combined with full annotations and zero parameters, the definition is essentially complete; only explicit routing guidance is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the rubric the baseline is 4. The description's discussion of returned fields is extra rather than parameter documentation, which is fine.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line states a specific resource ('the account this connection's API key belongs to'), which is clear and distinguishable from all siblings such as create_api_key or check_install. It is not a bare tautology of the name 'whoami', though it does not explicitly contrast itself with any sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description never states when to call this versus alternatives; the agent must infer from the name that this is for verifying identity/account state. There are no prerequisites or exclusions given.

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.

  1. 11 tool updates
    • Changedcheck_install1 field changed
      • changedInput schema / properties / pixel_id / description
        Previous value: -"Exact pixel_id returned by create_pixel or list_pixels; never an account ID"New value: +"pixel_id of the pixel whose homepage to check. Example: px_7a1b2c3d4e5f6a7b"
    • Changedconfigure_consent10 fields changed
      • addedInput schema / properties / contact_channels / description
        Added value: +"Optional. How the site owner may contact a visitor who consents. Any of: email, phone, sms, agentic. Example: [\"email\"]"
      • addedInput schema / properties / controller_contact / description
        Added value: +"Optional. Email address or web address where visitors can reach the site owner about their data. Shown in the hosted notice. Example: privacy@example.com"
      • addedInput schema / properties / controller_jurisdiction / description
        Added value: +"Optional. Where the site owner is based, as plain text, such as a country or US state. Shown in the hosted notice. Example: Florida, USA"
      • addedInput schema / properties / controller_name / description
        Added value: +"Name of the business or person that owns the site. It is shown in the consent bar as the party asking the visitor for permission. 1 to 200 characters. Example: Example Shop LLC"
      • addedInput schema / properties / controller_type / description
        Added value: +"Optional. One of company, person or organization. Describes the site owner in the hosted notice. Example: company"
      • addedInput schema / properties / data_sharing / description
        Added value: +"Optional. true if the site owner shares consented contact data with other parties, false if not. Shown in the hosted notice. Example: false"
      • addedInput schema / properties / disclosed_parties / description
        Added value: +"Optional. Names of the other parties the site owner wants the hosted notice to list, one name per item. Example: [\"Example CRM Inc.\"]"
      • changedInput schema / properties / pixel_id / description
        Previous value: -"Exact pixel_id returned by create_pixel or list_pixels; never an account ID"New value: +"pixel_id of the pixel to configure. Example: px_7a1b2c3d4e5f6a7b"
      • addedInput schema / properties / purposes / description
        Added value: +"What the consent bar asks the visitor to allow. One or more of: analytics, resolution, newsletter, email_sharing, phone_sharing, partner_email, partner_calls, partner_sms. Include resolution, or no visitor is ever identified. Example: [\"resolution\", \"analytics\"]"
      • addedInput schema / properties / site_policy_url / description
        Added value: +"Optional. HTTPS address of the site's own privacy policy. The bar links to it, and the hosted notice becomes a short add-on about identification. Leave empty to use the hosted notice on its own. Example: https://shop.example.com/privacy"
    • Changedconfirm_signup10 fields changed
      • addedInput schema / properties / account_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "description": "account_id returned by signup, not a pixel ID",
        +      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "account_id returned by signup_free. Use with code, or with signup_token alone to check whether the email link was clicked. Example: 3f1c2b9e-1d2a-4c5b-9e8f-0a1b2c3d4e5f",
        +  "title": "Account Id"
        +}
      • addedInput schema / properties / code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "pattern": "^\\d{6}$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The 6-digit code from the AgentPixel email. Ask the person to read it to you. Example: 482913",
        +  "title": "Code"
        +}
      • addedInput schema / properties / signup_token
        Added value: +{
        +  "anyOf": [
        +    {
        +      "description": "Private token returned by signup or confirmation link; never publish it",
        +      "maxLength": 512,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "signup_token returned by signup_free. With code, the first confirmation also returns the API key. Alone with account_id, returns whether the email is confirmed.",
        +  "title": "Signup Token"
        +}
      • addedInput schema / properties / verification_token / anyOf
        Added value: +[
        +  {
        +    "description": "Private token returned by signup or confirmation link; never publish it",
        +    "maxLength": 512,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / verification_token / default
        Added value: +null
      • changedInput schema / properties / verification_token / description
        Previous value: -"Private token returned by signup or confirmation link; never publish it"New value: +"Older method: the token value from the confirmation link URL (?token=...). Prefer account_id and code."
      • removedInput schema / properties / verification_token / maxLength
        Removed value: -512
      • removedInput schema / properties / verification_token / minLength
        Removed value: -1
      • removedInput schema / properties / verification_token / type
        Removed value: -"string"
      • removedInput schema / required
        Removed value: -[
        -  "verification_token"
        -]
    • Changedcreate_api_key2 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"account_id returned by signup, not a pixel ID"New value: +"account_id returned by signup_free. Example: 3f1c2b9e-1d2a-4c5b-9e8f-0a1b2c3d4e5f"
      • changedInput schema / properties / signup_token / description
        Previous value: -"Private token returned by signup or confirmation link; never publish it"New value: +"signup_token returned by signup_free. It lasts 24 hours."
    • Changedcreate_pixel1 field changed
      • changedInput schema / properties / domain / description
        Previous value: -"Public hostname only, without scheme, port, path, or IP address. Evaluator: staging.allsourcedata.io only"New value: +"Public hostname of the site, without scheme, port, path or IP address. Example: shop.example.com"
    • Changedget_contacts3 fields changed
      • addedInput schema / properties / after / description
        Added value: +"Cursor for incremental reads: the high_water value from your previous pull, or 0 to start at the first stored contact. Use exactly one of on or after. Example: 0"
      • addedInput schema / properties / on / description
        Added value: +"UTC calendar date in YYYY-MM-DD form. Returns contacts stored on that day. Use exactly one of on or after. Example: 2026-10-12"
      • changedInput schema / properties / pixel_id / description
        Previous value: -"Exact pixel_id returned by create_pixel or list_pixels; never an account ID"New value: +"pixel_id whose contacts to read. Example: px_7a1b2c3d4e5f6a7b"
    • Changedget_pixel1 field changed
      • changedInput schema / properties / pixel_id / description
        Previous value: -"Exact pixel_id returned by create_pixel or list_pixels; never an account ID"New value: +"pixel_id returned by create_pixel or list_pixels, never an account_id. Example: px_7a1b2c3d4e5f6a7b"
    • Changedget_policy1 field changed
      • changedInput schema / properties / pixel_id / description
        Previous value: -"Exact pixel_id returned by create_pixel or list_pixels; never an account ID"New value: +"pixel_id whose hosted notice to read. Example: px_7a1b2c3d4e5f6a7b"
    • Addedresend_code
    • Changedsignup_free3 fields changed
      • addedInput schema / properties / code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 40,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional trial code from a directory or listing, such as SMITHERY60. An unknown code never blocks signup. Example: GLAMA60",
        +  "title": "Code"
        +}
      • addedInput schema / properties / display_name / description
        Added value: +"Name shown on the account, such as the person's name or the business name. 1 to 200 characters. Example: Pat Lee"
      • addedInput schema / properties / email / description
        Added value: +"Email address of the person who will own the account. The 6-digit code is sent here. Ask the person for it; never invent or guess an address. Example: pat@example.com"
    • Addedtry_sample
  2. 12 tool updates
    • Changedcheck_install6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / pixel_id / description
        Added value: +"Exact pixel_id returned by create_pixel or list_pixels; never an account ID"
      • addedInput schema / properties / pixel_id / maxLength
        Added value: +80
      • addedInput schema / properties / pixel_id / minLength
        Added value: +1
      • addedInput schema / properties / pixel_id / pattern
        Added value: +"^[A-Za-z0-9_-]+$"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "check_error": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Check Error"
        +    },
        +    "checked_at": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Checked At"
        +    },
        +    "consent_enabled": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Consent Enabled"
        +    },
        +    "data_kind": {
        +      "enum": [
        +        "synthetic",
        +        "resolved"
        +      ],
        +      "title": "Data Kind",
        +      "type": "string"
        +    },
        +    "domain": {
        +      "title": "Domain",
        +      "type": "string"
        +    },
        +    "evaluation_mode": {
        +      "title": "Evaluation Mode",
        +      "type": "boolean"
        +    },
        +    "install_status": {
        +      "enum": [
        +        "not_checked",
        +        "installed",
        +        "not_installed",
        +        "unreachable"
        +      ],
        +      "title": "Install Status",
        +      "type": "string"
        +    },
        +    "pixel_id": {
        +      "title": "Pixel Id",
        +      "type": "string"
        +    },
        +    "snippet": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Snippet"
        +    }
        +  },
        +  "required": [
        +    "pixel_id",
        +    "domain",
        +    "install_status",
        +    "evaluation_mode",
        +    "data_kind"
        +  ],
        +  "title": "Pixel",
        +  "type": "object"
        +}
    • Changedconfigure_consent12 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / contact_channels / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "enum": [
        +        "email",
        +        "phone",
        +        "sms",
        +        "agentic"
        +      ],
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / controller_name / maxLength
        Added value: +200
      • addedInput schema / properties / controller_name / minLength
        Added value: +1
      • addedInput schema / properties / pixel_id / description
        Added value: +"Exact pixel_id returned by create_pixel or list_pixels; never an account ID"
      • addedInput schema / properties / pixel_id / maxLength
        Added value: +80
      • addedInput schema / properties / pixel_id / minLength
        Added value: +1
      • addedInput schema / properties / pixel_id / pattern
        Added value: +"^[A-Za-z0-9_-]+$"
      • addedInput schema / properties / purposes / items / enum
        Added value: +[
        +  "analytics",
        +  "resolution",
        +  "newsletter",
        +  "email_sharing",
        +  "phone_sharing",
        +  "partner_email",
        +  "partner_calls",
        +  "partner_sms"
        +]
      • addedInput schema / properties / purposes / maxItems
        Added value: +8
      • addedInput schema / properties / purposes / minItems
        Added value: +1
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "consent_enabled": {
        +      "title": "Consent Enabled",
        +      "type": "boolean"
        +    },
        +    "pixel_id": {
        +      "title": "Pixel Id",
        +      "type": "string"
        +    },
        +    "policy_hash": {
        +      "title": "Policy Hash",
        +      "type": "string"
        +    },
        +    "policy_url": {
        +      "title": "Policy Url",
        +      "type": "string"
        +    },
        +    "policy_version": {
        +      "title": "Policy Version",
        +      "type": "integer"
        +    },
        +    "purposes": {
        +      "items": {
        +        "enum": [
        +          "analytics",
        +          "resolution",
        +          "newsletter",
        +          "email_sharing",
        +          "phone_sharing",
        +          "partner_email",
        +          "partner_calls",
        +          "partner_sms"
        +        ],
        +        "type": "string"
        +      },
        +      "title": "Purposes",
        +      "type": "array"
        +    },
        +    "snippet": {
        +      "title": "Snippet",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "pixel_id",
        +    "consent_enabled",
        +    "policy_version",
        +    "policy_hash",
        +    "policy_url",
        +    "snippet",
        +    "purposes"
        +  ],
        +  "title": "Consent",
        +  "type": "object"
        +}
    • Changedconfirm_signup5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / verification_token / description
        Added value: +"Private token returned by signup or confirmation link; never publish it"
      • addedInput schema / properties / verification_token / maxLength
        Added value: +512
      • addedInput schema / properties / verification_token / minLength
        Added value: +1
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "confirmed": {
        +      "title": "Confirmed",
        +      "type": "boolean"
        +    },
        +    "message": {
        +      "title": "Message",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "confirmed",
        +    "message"
        +  ],
        +  "title": "Confirmed",
        +  "type": "object"
        +}
    • Changedcreate_api_key7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / account_id / description
        Added value: +"account_id returned by signup, not a pixel ID"
      • addedInput schema / properties / account_id / pattern
        Added value: +"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
      • addedInput schema / properties / signup_token / description
        Added value: +"Private token returned by signup or confirmation link; never publish it"
      • addedInput schema / properties / signup_token / maxLength
        Added value: +512
      • addedInput schema / properties / signup_token / minLength
        Added value: +1
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "api_key": {
        +      "title": "Api Key",
        +      "type": "string"
        +    },
        +    "prefix": {
        +      "title": "Prefix",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "api_key",
        +    "prefix"
        +  ],
        +  "title": "IssuedKey",
        +  "type": "object"
        +}
    • Changedcreate_pixel6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / domain / description
        Added value: +"Public hostname only, without scheme, port, path, or IP address. Evaluator: staging.allsourcedata.io only"
      • addedInput schema / properties / domain / maxLength
        Added value: +253
      • addedInput schema / properties / domain / minLength
        Added value: +3
      • addedInput schema / properties / domain / pattern
        Added value: +"^[A-Za-z0-9](?:[A-Za-z0-9.-]*[A-Za-z0-9])?$"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "check_error": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Check Error"
        +    },
        +    "checked_at": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Checked At"
        +    },
        +    "consent_enabled": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Consent Enabled"
        +    },
        +    "data_kind": {
        +      "enum": [
        +        "synthetic",
        +        "resolved"
        +      ],
        +      "title": "Data Kind",
        +      "type": "string"
        +    },
        +    "domain": {
        +      "title": "Domain",
        +      "type": "string"
        +    },
        +    "evaluation_mode": {
        +      "title": "Evaluation Mode",
        +      "type": "boolean"
        +    },
        +    "install_status": {
        +      "enum": [
        +        "not_checked",
        +        "installed",
        +        "not_installed",
        +        "unreachable"
        +      ],
        +      "title": "Install Status",
        +      "type": "string"
        +    },
        +    "pixel_id": {
        +      "title": "Pixel Id",
        +      "type": "string"
        +    },
        +    "snippet": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Snippet"
        +    }
        +  },
        +  "required": [
        +    "pixel_id",
        +    "domain",
        +    "install_status",
        +    "evaluation_mode",
        +    "data_kind"
        +  ],
        +  "title": "Pixel",
        +  "type": "object"
        +}
    • Changedget_contacts9 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / oneOf
        Added value: +[
        +  {
        +    "properties": {
        +      "after": {
        +        "type": "null"
        +      },
        +      "on": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "on"
        +    ]
        +  },
        +  {
        +    "properties": {
        +      "after": {
        +        "type": "integer"
        +      },
        +      "on": {
        +        "type": "null"
        +      }
        +    },
        +    "required": [
        +      "after"
        +    ]
        +  }
        +]
      • changedInput schema / properties / after / anyOf
        Previous value: -[
        -  {
        -    "type": "integer"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "description": "Stored contact ID high_water from previous pull; 0 starts at first contact. Choose after OR on, exactly one",
        +    "maximum": 9223372036854776000,
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / on / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "description": "UTC calendar date YYYY-MM-DD; choose on OR after, exactly one",
        +    "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / pixel_id / description
        Added value: +"Exact pixel_id returned by create_pixel or list_pixels; never an account ID"
      • addedInput schema / properties / pixel_id / maxLength
        Added value: +80
      • addedInput schema / properties / pixel_id / minLength
        Added value: +1
      • addedInput schema / properties / pixel_id / pattern
        Added value: +"^[A-Za-z0-9_-]+$"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "Contact": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "contact": {
        +          "additionalProperties": true,
        +          "title": "Contact",
        +          "type": "object"
        +        },
        +        "hem": {
        +          "title": "Hem",
        +          "type": "string"
        +        },
        +        "id": {
        +          "title": "Id",
        +          "type": "integer"
        +        },
        +        "resolved_at": {
        +          "title": "Resolved At",
        +          "type": "string"
        +        },
        +        "synthetic": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "default": null,
        +          "title": "Synthetic"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "hem",
        +        "resolved_at",
        +        "contact"
        +      ],
        +      "title": "Contact",
        +      "type": "object"
        +    }
        +  },
        +  "additionalProperties": true,
        +  "properties": {
        +    "after": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "After"
        +    },
        +    "contacts": {
        +      "items": {
        +        "$ref": "#/$defs/Contact"
        +      },
        +      "title": "Contacts",
        +      "type": "array"
        +    },
        +    "data_kind": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "synthetic",
        +            "resolved"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Data Kind"
        +    },
        +    "evaluation_mode": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Evaluation Mode"
        +    },
        +    "high_water": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "High Water"
        +    },
        +    "on": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "On"
        +    },
        +    "pixel_id": {
        +      "title": "Pixel Id",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "pixel_id",
        +    "contacts"
        +  ],
        +  "title": "Contacts",
        +  "type": "object"
        +}
    • Changedget_pixel6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / pixel_id / description
        Added value: +"Exact pixel_id returned by create_pixel or list_pixels; never an account ID"
      • addedInput schema / properties / pixel_id / maxLength
        Added value: +80
      • addedInput schema / properties / pixel_id / minLength
        Added value: +1
      • addedInput schema / properties / pixel_id / pattern
        Added value: +"^[A-Za-z0-9_-]+$"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "check_error": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Check Error"
        +    },
        +    "checked_at": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Checked At"
        +    },
        +    "consent_enabled": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Consent Enabled"
        +    },
        +    "data_kind": {
        +      "enum": [
        +        "synthetic",
        +        "resolved"
        +      ],
        +      "title": "Data Kind",
        +      "type": "string"
        +    },
        +    "domain": {
        +      "title": "Domain",
        +      "type": "string"
        +    },
        +    "evaluation_mode": {
        +      "title": "Evaluation Mode",
        +      "type": "boolean"
        +    },
        +    "install_status": {
        +      "enum": [
        +        "not_checked",
        +        "installed",
        +        "not_installed",
        +        "unreachable"
        +      ],
        +      "title": "Install Status",
        +      "type": "string"
        +    },
        +    "pixel_id": {
        +      "title": "Pixel Id",
        +      "type": "string"
        +    },
        +    "snippet": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Snippet"
        +    }
        +  },
        +  "required": [
        +    "pixel_id",
        +    "domain",
        +    "install_status",
        +    "evaluation_mode",
        +    "data_kind"
        +  ],
        +  "title": "Pixel",
        +  "type": "object"
        +}
    • Changedget_policy6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / pixel_id / description
        Added value: +"Exact pixel_id returned by create_pixel or list_pixels; never an account ID"
      • addedInput schema / properties / pixel_id / maxLength
        Added value: +80
      • addedInput schema / properties / pixel_id / minLength
        Added value: +1
      • addedInput schema / properties / pixel_id / pattern
        Added value: +"^[A-Za-z0-9_-]+$"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "pixel_id": {
        +      "title": "Pixel Id",
        +      "type": "string"
        +    },
        +    "policy_html": {
        +      "title": "Policy Html",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "pixel_id",
        +    "policy_html"
        +  ],
        +  "title": "Policy",
        +  "type": "object"
        +}
    • Changedlist_pixels2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "Pixel": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "check_error": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "default": null,
        +          "title": "Check Error"
        +        },
        +        "checked_at": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "default": null,
        +          "title": "Checked At"
        +        },
        +        "consent_enabled": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "default": null,
        +          "title": "Consent Enabled"
        +        },
        +        "data_kind": {
        +          "enum": [
        +            "synthetic",
        +            "resolved"
        +          ],
        +          "title": "Data Kind",
        +          "type": "string"
        +        },
        +        "domain": {
        +          "title": "Domain",
        +          "type": "string"
        +        },
        +        "evaluation_mode": {
        +          "title": "Evaluation Mode",
        +          "type": "boolean"
        +        },
        +        "install_status": {
        +          "enum": [
        +            "not_checked",
        +            "installed",
        +            "not_installed",
        +            "unreachable"
        +          ],
        +          "title": "Install Status",
        +          "type": "string"
        +        },
        +        "pixel_id": {
        +          "title": "Pixel Id",
        +          "type": "string"
        +        },
        +        "snippet": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "default": null,
        +          "title": "Snippet"
        +        }
        +      },
        +      "required": [
        +        "pixel_id",
        +        "domain",
        +        "install_status",
        +        "evaluation_mode",
        +        "data_kind"
        +      ],
        +      "title": "Pixel",
        +      "type": "object"
        +    }
        +  },
        +  "additionalProperties": true,
        +  "properties": {
        +    "pixels": {
        +      "items": {
        +        "$ref": "#/$defs/Pixel"
        +      },
        +      "title": "Pixels",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "pixels"
        +  ],
        +  "title": "PixelList",
        +  "type": "object"
        +}
    • Changedsetup_status2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "good_standing": {
        +      "title": "Good Standing",
        +      "type": "boolean"
        +    },
        +    "installed_count": {
        +      "title": "Installed Count",
        +      "type": "integer"
        +    },
        +    "pixel_count": {
        +      "title": "Pixel Count",
        +      "type": "integer"
        +    },
        +    "setup_complete": {
        +      "title": "Setup Complete",
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "good_standing",
        +    "pixel_count",
        +    "installed_count",
        +    "setup_complete"
        +  ],
        +  "title": "Setup",
        +  "type": "object"
        +}
    • Changedsignup_free7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / display_name / maxLength
        Added value: +200
      • addedInput schema / properties / display_name / minLength
        Added value: +1
      • addedInput schema / properties / email / maxLength
        Added value: +254
      • addedInput schema / properties / email / minLength
        Added value: +3
      • addedInput schema / properties / email / pattern
        Added value: +"^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "account_id": {
        +      "title": "Account Id",
        +      "type": "string"
        +    },
        +    "email_verified": {
        +      "title": "Email Verified",
        +      "type": "boolean"
        +    },
        +    "plan": {
        +      "title": "Plan",
        +      "type": "string"
        +    },
        +    "signup_token": {
        +      "title": "Signup Token",
        +      "type": "string"
        +    },
        +    "status": {
        +      "title": "Status",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "account_id",
        +    "status",
        +    "plan",
        +    "signup_token",
        +    "email_verified"
        +  ],
        +  "title": "Signup",
        +  "type": "object"
        +}
    • Changedwhoami2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "account_id": {
        +      "title": "Account Id",
        +      "type": "string"
        +    },
        +    "data_kind": {
        +      "enum": [
        +        "synthetic",
        +        "resolved"
        +      ],
        +      "title": "Data Kind",
        +      "type": "string"
        +    },
        +    "evaluation_expires_at": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Evaluation Expires At"
        +    },
        +    "evaluation_install_url": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Evaluation Install Url"
        +    },
        +    "evaluation_mode": {
        +      "title": "Evaluation Mode",
        +      "type": "boolean"
        +    },
        +    "key_prefix": {
        +      "title": "Key Prefix",
        +      "type": "string"
        +    },
        +    "next_action": {
        +      "title": "Next Action",
        +      "type": "string"
        +    },
        +    "paid_until": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Paid Until"
        +    },
        +    "plan": {
        +      "enum": [
        +        "free",
        +        "paid",
        +        "unlimited"
        +      ],
        +      "title": "Plan",
        +      "type": "string"
        +    },
        +    "resolution_state": {
        +      "title": "Resolution State",
        +      "type": "string"
        +    },
        +    "status": {
        +      "title": "Status",
        +      "type": "string"
        +    },
        +    "trial_ends_at": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Trial Ends At"
        +    }
        +  },
        +  "required": [
        +    "account_id",
        +    "plan",
        +    "status",
        +    "key_prefix",
        +    "evaluation_mode",
        +    "data_kind",
        +    "resolution_state",
        +    "next_action"
        +  ],
        +  "title": "Whoami",
        +  "type": "object"
        +}
  3. 12 tool updates
    • First observedcheck_install
    • First observedconfigure_consent
    • First observedconfirm_signup
    • First observedcreate_api_key
    • First observedcreate_pixel
    • First observedget_contacts
    • First observedget_pixel
    • First observedget_policy
    • First observedlist_pixels
    • First observedsetup_status
    • First observedsignup_free
    • First observedwhoami

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time website audits, lead scoring, tech-stack detection, and local-business search for AI agents doing sales outreach and competitor research.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Give your AI agent access to 60M+ companies and 300M+ verified contacts. Enrich leads, find work emails, discover tech stacks, and identify buying intent — directly from Claude, Cursor, Windsurf, or any MCP-compatible AI agent.
    11
    12 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to find intent-signaling buyers and run LinkedIn, email, and X outreach from connected accounts while respecting platform limits. Every reply is handed back to a human for approval or decision.
    2
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.