Most visitors never fill out a form. Turn the ones who click Accept into contacts your agent reads.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer <your AgentPixel API key>. Leave blank to start the 30-day trial; required for pixel and contact tools unless X-API-Key is used.
Your AgentPixel API key, as an alternative to Authorization. Leave blank to start the trial.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
pixel_id of the pixel whose homepage to check. Example: px_7a1b2c3d4e5f6a7b
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| pixel_id* | string | pixel_id of the pixel whose homepage to check. Example: px_7a1b2c3d4e5f6a7b |
{
"type": "object",
"title": "check_installArguments",
"required": [
"pixel_id"
],
"properties": {
"pixel_id": {
"type": "string",
"title": "Pixel Id",
"pattern": "^[A-Za-z0-9_-]+$",
"maxLength": 80,
"minLength": 1,
"description": "pixel_id of the pixel whose homepage to check. Example: px_7a1b2c3d4e5f6a7b"
}
},
"additionalProperties": false
}Turn on and set up the consent bar for a pixel. Changing any setting makes a new policy version, and returning visitors are asked again. Returns the policy link and the script tag to put on the site.
| Argument | Type | Description |
|---|---|---|
| pixel_id* | string | pixel_id of the pixel to configure. Example: px_7a1b2c3d4e5f6a7b |
| purposes* | array | 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"] |
| data_sharing | any | Optional. true if the site owner shares consented contact data with other parties, false if not. Shown in the hosted notice. Example: false |
| controller_name* | string | 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 |
| controller_type | any | Optional. One of company, person or organization. Describes the site owner in the hosted notice. Example: company |
| site_policy_url | any | 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 |
| contact_channels | any | Optional. How the site owner may contact a visitor who consents. Any of: email, phone, sms, agentic. Example: ["email"] |
| disclosed_parties | any | Optional. Names of the other parties the site owner wants the hosted notice to list, one name per item. Example: ["Example CRM Inc."] |
| controller_contact | any | Optional. Email address or web address where visitors can reach the site owner about their data. Shown in the hosted notice. Example: [email protected] |
| controller_jurisdiction | any | 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 |
{
"type": "object",
"title": "configure_consentArguments",
"required": [
"pixel_id",
"controller_name",
"purposes"
],
"properties": {
"pixel_id": {
"type": "string",
"title": "Pixel Id",
"pattern": "^[A-Za-z0-9_-]+$",
"maxLength": 80,
"minLength": 1,
"description": "pixel_id of the pixel to configure. Example: px_7a1b2c3d4e5f6a7b"
},
"purposes": {
"type": "array",
"items": {
"enum": [
"analytics",
"resolution",
"newsletter",
"email_sharing",
"phone_sharing",
"partner_email",
"partner_calls",
"partner_sms"
],
"type": "string"
},
"title": "Purposes",
"maxItems": 8,
"minItems": 1,
"description": "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\"]"
},
"data_sharing": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Data Sharing",
"default": null,
"description": "Optional. true if the site owner shares consented contact data with other parties, false if not. Shown in the hosted notice. Example: false"
},
"controller_name": {
"type": "string",
"title": "Controller Name",
"maxLength": 200,
"minLength": 1,
"description": "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"
},
"controller_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Controller Type",
"default": null,
"description": "Optional. One of company, person or organization. Describes the site owner in the hosted notice. Example: company"
},
"site_policy_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Site Policy Url",
"default": null,
"description": "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"
},
"contact_channels": {
"anyOf": [
{
"type": "array",
"items": {
"enum": [
"email",
"phone",
"sms",
"agentic"
],
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Contact Channels",
"default": null,
"description": "Optional. How the site owner may contact a visitor who consents. Any of: email, phone, sms, agentic. Example: [\"email\"]"
},
"disclosed_parties": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Disclosed Parties",
"default": null,
"description": "Optional. Names of the other parties the site owner wants the hosted notice to list, one name per item. Example: [\"Example CRM Inc.\"]"
},
"controller_contact": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Controller Contact",
"default": null,
"description": "Optional. Email address or web address where visitors can reach the site owner about their data. Shown in the hosted notice. Example: [email protected]"
},
"controller_jurisdiction": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Controller Jurisdiction",
"default": null,
"description": "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"
}
},
"additionalProperties": false
}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).
| Argument | Type | Description |
|---|---|---|
| code | any | The 6-digit code from the AgentPixel email. Ask the person to read it to you. Example: 482913 |
| account_id | any | 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 |
| signup_token | any | 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. |
| verification_token | any | Older method: the token value from the confirmation link URL (?token=...). Prefer account_id and code. |
{
"type": "object",
"title": "confirm_signupArguments",
"properties": {
"code": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{6}$"
},
{
"type": "null"
}
],
"title": "Code",
"default": null,
"description": "The 6-digit code from the AgentPixel email. Ask the person to read it to you. Example: 482913"
},
"account_id": {
"anyOf": [
{
"type": "string",
"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}$",
"description": "account_id returned by signup, not a pixel ID"
},
{
"type": "null"
}
],
"title": "Account Id",
"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"
},
"signup_token": {
"anyOf": [
{
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Private token returned by signup or confirmation link; never publish it"
},
{
"type": "null"
}
],
"title": "Signup Token",
"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."
},
"verification_token": {
"anyOf": [
{
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Private token returned by signup or confirmation link; never publish it"
},
{
"type": "null"
}
],
"title": "Verification Token",
"default": null,
"description": "Older method: the token value from the confirmation link URL (?token=...). Prefer account_id and code."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| account_id* | string | account_id returned by signup_free. Example: 3f1c2b9e-1d2a-4c5b-9e8f-0a1b2c3d4e5f |
| signup_token* | string | signup_token returned by signup_free. It lasts 24 hours. |
{
"type": "object",
"title": "create_api_keyArguments",
"required": [
"account_id",
"signup_token"
],
"properties": {
"account_id": {
"type": "string",
"title": "Account 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}$",
"description": "account_id returned by signup_free. Example: 3f1c2b9e-1d2a-4c5b-9e8f-0a1b2c3d4e5f"
},
"signup_token": {
"type": "string",
"title": "Signup Token",
"maxLength": 512,
"minLength": 1,
"description": "signup_token returned by signup_free. It lasts 24 hours."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Public hostname of the site, without scheme, port, path or IP address. Example: shop.example.com |
{
"type": "object",
"title": "create_pixelArguments",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"title": "Domain",
"pattern": "^[A-Za-z0-9](?:[A-Za-z0-9.-]*[A-Za-z0-9])?$",
"maxLength": 253,
"minLength": 3,
"description": "Public hostname of the site, without scheme, port, path or IP address. Example: shop.example.com"
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| on | any | 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 |
| after | any | 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 |
| pixel_id* | string | pixel_id whose contacts to read. Example: px_7a1b2c3d4e5f6a7b |
{
"type": "object",
"oneOf": [
{
"required": [
"on"
],
"properties": {
"on": {
"type": "string"
},
"after": {
"type": "null"
}
}
},
{
"required": [
"after"
],
"properties": {
"on": {
"type": "null"
},
"after": {
"type": "integer"
}
}
}
],
"title": "get_contactsArguments",
"required": [
"pixel_id"
],
"properties": {
"on": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "UTC calendar date YYYY-MM-DD; choose on OR after, exactly one"
},
{
"type": "null"
}
],
"title": "On",
"default": null,
"description": "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"
},
"after": {
"anyOf": [
{
"type": "integer",
"maximum": 9223372036854776000,
"minimum": 0,
"description": "Stored contact ID high_water from previous pull; 0 starts at first contact. Choose after OR on, exactly one"
},
{
"type": "null"
}
],
"title": "After",
"default": null,
"description": "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"
},
"pixel_id": {
"type": "string",
"title": "Pixel Id",
"pattern": "^[A-Za-z0-9_-]+$",
"maxLength": 80,
"minLength": 1,
"description": "pixel_id whose contacts to read. Example: px_7a1b2c3d4e5f6a7b"
}
},
"additionalProperties": false
}One pixel, including the HTML snippet to paste on its site.
| Argument | Type | Description |
|---|---|---|
| pixel_id* | string | pixel_id returned by create_pixel or list_pixels, never an account_id. Example: px_7a1b2c3d4e5f6a7b |
{
"type": "object",
"title": "get_pixelArguments",
"required": [
"pixel_id"
],
"properties": {
"pixel_id": {
"type": "string",
"title": "Pixel Id",
"pattern": "^[A-Za-z0-9_-]+$",
"maxLength": 80,
"minLength": 1,
"description": "pixel_id returned by create_pixel or list_pixels, never an account_id. Example: px_7a1b2c3d4e5f6a7b"
}
},
"additionalProperties": false
}Hosted privacy and data-use policy HTML for a pixel. A pixel with consent turned off has no policy yet.
| Argument | Type | Description |
|---|---|---|
| pixel_id* | string | pixel_id whose hosted notice to read. Example: px_7a1b2c3d4e5f6a7b |
{
"type": "object",
"title": "get_policyArguments",
"required": [
"pixel_id"
],
"properties": {
"pixel_id": {
"type": "string",
"title": "Pixel Id",
"pattern": "^[A-Za-z0-9_-]+$",
"maxLength": 80,
"minLength": 1,
"description": "pixel_id whose hosted notice to read. Example: px_7a1b2c3d4e5f6a7b"
}
},
"additionalProperties": false
}Pixels on this account. Each item has pixel_id, domain, and install_status.
No arguments.
{
"type": "object",
"title": "list_pixelsArguments",
"properties": {},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| email* | string | Email address used at signup. A new 6-digit code and link are sent there. Example: [email protected] |
{
"type": "object",
"title": "resend_codeArguments",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"title": "Email",
"pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$",
"maxLength": 254,
"minLength": 3,
"description": "Email address used at signup. A new 6-digit code and link are sent there. Example: [email protected]"
}
},
"additionalProperties": false
}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.
No arguments.
{
"type": "object",
"title": "setup_statusArguments",
"properties": {},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| code | any | Optional trial code from a directory or listing, such as SMITHERY60. An unknown code never blocks signup. Example: GLAMA60 |
| email* | string | 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: [email protected] |
| display_name* | string | Name shown on the account, such as the person's name or the business name. 1 to 200 characters. Example: Pat Lee |
{
"type": "object",
"title": "signup_freeArguments",
"required": [
"email",
"display_name"
],
"properties": {
"code": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"title": "Code",
"default": null,
"description": "Optional trial code from a directory or listing, such as SMITHERY60. An unknown code never blocks signup. Example: GLAMA60"
},
"email": {
"type": "string",
"title": "Email",
"pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$",
"maxLength": 254,
"minLength": 3,
"description": "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: [email protected]"
},
"display_name": {
"type": "string",
"title": "Display Name",
"maxLength": 200,
"minLength": 1,
"description": "Name shown on the account, such as the person's name or the business name. 1 to 200 characters. Example: Pat Lee"
}
},
"additionalProperties": false
}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.
No arguments.
{
"type": "object",
"title": "try_sampleArguments",
"properties": {},
"additionalProperties": false
}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.
No arguments.
{
"type": "object",
"title": "whoamiArguments",
"properties": {},
"additionalProperties": false
}