AgentPixel
by agentpixel.io · remote · no sign-in to list tools · v0.1.4 · published by io.agentpixel
Most visitors never fill out a form. Turn the ones who click Accept into contacts your agent reads.
14 tools: 1 can delete or cancel things, 1 do something that can't be undone, 6 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things6Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http agentpixel https://agentpixel.io/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
14 tools
Deletes or cancels 1Claude Code: deny
configure_consentTurn on and set up the consent bar for a pixel.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Configure consent and policy
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
Can't be undone 1Claude Code: ask
resend_codeSend a new 6-digit code to the email of an existing account.No findings
Why it is in this group
- The name "resend_code" says "resend": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it 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.
Annotations the server declares
- title: Send a new email code
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Changes things 6Claude Code: ask
check_installFetch the pixel's homepage and store whether the tag is there.No findings
Why it is in this group
- The name "check_install" says "install": a word for a change.
Description, as the server wrote 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.
Annotations the server declares
- title: Check and save installation
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
confirm_signupConfirm the email with the 6-digit code, or check whether the email link was clicked.No findings
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it 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).
Annotations the server declares
- title: Confirm signup email
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
create_api_keyIssue an API key after the email is confirmed.No findings
Why it is in this group
- The name "create_api_key" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Issue private API key
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_pixelCreate a pixel for a domain.No findings
Why it is in this group
- The name "create_pixel" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create site pixel
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
signup_freeStart a 30-day trial, no card.No findings
Why it is in this group
- The description's first verb is "start": a word for a change.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it 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.
Annotations the server declares
- title: Start 30-day trial
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
try_sampleLabeled sample of what an account gets: a pixel, a consent receipt and two contacts.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: See sample output
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 6Claude Code: allow
get_contactsContacts for one pixel.No findings
Why it is in this group
- The name "get_contacts" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Read contacts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_pixelOne pixel, including the HTML snippet to paste on its site.No findings
Why it is in this group
- The name "get_pixel" says "get": a word for reading.
Description, as the server wrote it One pixel, including the HTML snippet to paste on its site.
Annotations the server declares
- title: Read pixel and install tag
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_policyHosted privacy and data-use policy HTML for a pixel.No findings
Why it is in this group
- The name "get_policy" says "get": a word for reading.
Description, as the server wrote it Hosted privacy and data-use policy HTML for a pixel. A pixel with consent turned off has no policy yet.
Annotations the server declares
- title: Read hosted privacy notice
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_pixelsPixels on this account.No findings
Why it is in this group
- The name "list_pixels" says "list": a word for reading.
Description, as the server wrote it Pixels on this account. Each item has pixel_id, domain, and install_status.
Annotations the server declares
- title: List my pixels
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
setup_statusWhether this account can use pixels and whether a tag is installed.No findings
Why it is in this group
- The name "setup_status" says "status": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Read installation progress
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
whoamiWhich account this connection's API key belongs to.No findings
Why it is in this group
- The name "whoami" says "whoami": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Check account identity
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.1.4. Values in angle brackets are yours to fill in.
claude mcp add --transport http agentpixel https://agentpixel.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__agentpixel__whoami",
"mcp__agentpixel__setup_status",
"mcp__agentpixel__list_pixels",
"mcp__agentpixel__get_pixel",
"mcp__agentpixel__get_policy",
"mcp__agentpixel__get_contacts"
],
"ask": [
"mcp__agentpixel__try_sample",
"mcp__agentpixel__signup_free",
"mcp__agentpixel__confirm_signup",
"mcp__agentpixel__resend_code",
"mcp__agentpixel__create_api_key",
"mcp__agentpixel__create_pixel",
"mcp__agentpixel__check_install"
],
"deny": [
"mcp__agentpixel__configure_consent"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as agentpixel. Review it before you use it.