TraceTail
Server Details
Browser fingerprinting for web apps: integration code for any framework, docs search and pricing.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 6 tools
check_setup_link and create_setup_link form a clear create/poll pair, and search_docs vs read_docs_page are distinct (query vs fetch a specific page). The only mild overlap is get_pricing versus read_docs_page with '/pricing', which return related pricing content, but each has a clear primary use.
All tools use a consistent snake_case verb_noun pattern (check_setup_link, create_setup_link, get_integration_code, get_pricing, read_docs_page, search_docs). No mixing of conventions or vague verbs.
Six tools is a well-scoped set for a fingerprinting/docs/onboarding server, with each tool earning a distinct role. Nothing feels padded or redundant.
The surface covers the full onboarding lifecycle (create link, poll for keys), integration, pricing, and documentation access/search. Minor gaps like account or key management aren't present, but they are outside the apparent self-serve scope.
Available Tools
6 toolscheck_setup_linkCheck a TraceTail setup linkAInspect
Where a setup link stands. The first check after the person finishes returns the API keys (and the server key, if requested); they are not shown again. While they're still on the page, check again every few seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id create_setup_link returned (sl_…). | |
| token | Yes | The token create_setup_link returned (tt_setup_…). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and idempotentHint=false, and the description justifies both: the first check after completion returns the API keys (and optionally the server key), and they are never shown again. That one-shot secret disclosure is the key behavioral trait beyond structured data. It does not describe the possible status states or how to tell when polling should stop.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the purpose and then the key behavioral caveat and the polling cadence. Nothing is redundant or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining returns, yet it never names the status values or terminal states an agent needs in order to decide whether to keep polling. The keys-returned-once detail is valuable, but the return contract is left incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are already documented as values returned by create_setup_link. The description reinforces the same provenance but adds no format or usage detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys that this reports the status of a setup link ('Where a setup link stands') and ties it explicitly to create_setup_link, whose id/token it consumes. The verb is implied rather than stated directly, but an agent can distinguish it from create_setup_link and the other siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete timing guidance: call once the person finishes, and poll every few seconds while they remain on the page. There is no explicit when-not-to-use or named alternative, but the operational context is clear enough to drive correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_setup_linkCreate a TraceTail setup linkAInspect
Gets TraceTail API keys for the person you work for: returns a link to give them, where they sign in with an emailed code and add a card or continue without a card, and a token. Then call check_setup_link with its id and token every few seconds: once they've finished, it returns an API key for each site (and a server key if you asked), once.
| Name | Required | Description | Default |
|---|---|---|---|
| No | The person's email, if you know it: it prefills the page. | ||
| domains | Yes | The sites to create API keys for, like ["example.com", "localhost"]; include localhost for local development. | |
| serverKey | No | Also create a server key, so the backend can verify identifications. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safety profile (not read-only, not destructive, not idempotent, closed-world). The description adds real behavioral context beyond that: the recipient signs in with an emailed code, may add a card or continue without one, and the tool returns both a link and a token. It does not mention auth requirements or rate limits, but the async handoff flow is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the outcome and followed by the next-step instruction. Dense but every clause carries information; the polling detail and return format are both relevant rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining returns and does so: this tool yields a link and token, and check_setup_link yields one API key per site plus an optional server key. Combined with a fully documented input schema, this is nearly complete, though a note on link expiry or failure handling is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents email, domains, and serverKey thoroughly. The description echoes the site-to-key mapping and the server-key option ('a server key if you asked'), adding only marginal meaning over the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (gets/creates) and resource (TraceTail API keys via a setup link) and names the exact sibling to call next. An agent can distinguish this from check_setup_link and the docs/pricing siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear workflow context: use this to obtain keys for 'the person you work for,' then 'call check_setup_link with its id and token every few seconds.' It names the follow-up tool and the polling cadence, but offers no explicit exclusions or when-not-to-use guidance, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_integration_codeGet TraceTail integration codeARead-onlyIdempotentInspect
The exact install command and code to add TraceTail browser fingerprinting (a stable visitor ID for each browser, without cookies) to a web app built with the given framework, with where each file goes. Works without an API key (keyless mode, no sign-up); pass the site's public API key to fill it in.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | The site's public TraceTail API key (tt_…), if it has one. Leave out to use the placeholder. | |
| framework | Yes | The app's framework: html (a plain script tag), javascript (any bundler), react, nextjs, vue, nuxt, angular or svelte. | |
| firstPartyPath | No | The path of the site's first-party proxy, e.g. /k3v9, to load TraceTail from the site's own domain. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds real behavioral context: it works without an API key via keyless mode with no sign-up, and the key is only used to fill in a value. It also discloses what the response contains (command, code, file placement).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core deliverable is front-loaded in the first sentence, with the keyless/key caveat in a short second sentence. It is dense but every clause carries information; no wasted padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so well (install command, code, file placement). Combined with full schema coverage and read-only annotations, an agent has nearly everything needed, though it lacks explicit sibling routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents apiKey, framework, and firstPartyPath thoroughly. The description only marginally extends this by framing omission of apiKey as 'keyless mode', which justifies the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: returns the exact install command and code to add TraceTail fingerprinting to an app in the given framework, including file placement. This is clearly distinct from siblings like get_pricing, create_setup_link, or search_docs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose (call it when you need integration code for a framework), and the keyless/API-key note gives some context, but the description never states when to prefer this over check_setup_link or read_docs_page, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricingGet TraceTail pricingARead-onlyIdempotentInspect
TraceTail's prices and limits (1,000 identification requests free every month, then $0.10 per 1,000), with the monthly cost at a given volume and the same volume on Fingerprint (FingerprintJS) for comparison.
| Name | Required | Description | Default |
|---|---|---|---|
| monthlyRequests | No | Expected identification requests a month. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered without prose. The description adds useful substance beyond the annotations (the pricing tiers and that a competitor comparison is included), but says nothing about how the optional volume parameter defaults or how the result is shaped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler; the pricing figures are the most decision-relevant content and lead the sentence. The parentheticals make it dense but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description tells the agent what the call returns (monthly cost at a volume plus a Fingerprint comparison), which is sufficient for a one-parameter read-only calculator tool. Nothing an agent needs to call it correctly appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% ('Expected identification requests a month'), so the schema already carries the parameter's meaning. The description restates the concept as 'the monthly cost at a given volume' but adds no units, default, or boundary behavior for an optional integer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (get pricing) and makes the output concrete: prices/limits, the monthly cost at a given volume, and a FingerprintJS comparison for the same volume. An agent can distinguish this from read_docs_page or search_docs, which are the only siblings that could plausibly also surface pricing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case inferable (cost estimation at a known request volume), but there is no explicit when-to-use statement, no mention of when to prefer read_docs_page/search_docs instead, and no note on what happens if monthlyRequests is omitted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_docs_pageRead a TraceTail pageBRead-onlyIdempotentInspect
Returns a page of the TraceTail site as Markdown: "/docs" (the full documentation), "/pricing", "/vs-fingerprintjs", "/" (overview) or a blog post.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | The page's path on tracetail.io. |
TDQS
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 adds that the payload comes back as Markdown, which is useful since there is no output schema, but it says nothing about response size or truncation for large pages like /docs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with the resource and return format front-loaded. The inline path examples partially duplicate the schema enum, but the cost is small.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, fully-enumerated read tool with strong annotations, the description supplies the essential missing piece: the Markdown return format. The main gap is the unaddressed relationship to get_pricing and search_docs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the path parameter carries a complete 27-value enum, so the schema does the heavy lifting. The description only names four of those paths plus 'a blog post', adding illustrative examples but no syntax or semantic detail beyond the enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Returns), resource (a page of the TraceTail site) and output format (Markdown). It is distinguishable from siblings like search_docs, but it overlaps with get_pricing without acknowledging the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this instead of search_docs (find a topic) or get_pricing (structured pricing data). The description lists paths but never states when this tool is the right choice or when it is not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsSearch the TraceTail documentationARead-onlyIdempotentInspect
Searches TraceTail's documentation, pricing, comparison and blog for a topic (e.g. "next.js", "rate limits", "ad blockers", "GDPR", "server-side verification") and returns the matching sections with their URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many results to return (default 5). | |
| query | Yes | What to look for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds useful context beyond them: the exact corpora searched and the fact that results are sections with URLs, which matters because there is no output schema. It stops short of describing ranking or result-cap behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the parenthetical examples earn their place by showing query granularity. Slightly dense, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with annotations covering the safety profile, the description covers purpose, corpora and return shape, which is most of what an agent needs. Ranking behavior and any result-cap/pagination nuance remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented and the baseline is 3. The example topics ("rate limits", "ad blockers", "GDPR") do help an agent shape a good query, but the description says nothing about the limit parameter or result-count semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (searches) and resource (TraceTail's documentation, pricing, comparison and blog), plus the return shape (matching sections with URLs). It does not explicitly distinguish itself from siblings like read_docs_page or get_pricing, whose scope it partially overlaps, so an agent still has to infer the split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: this is the discovery tool for when you don't already know the page, versus read_docs_page for opening a known page. But no when-to-use, when-not-to-use, or named alternative is stated, leaving the routing decision to inference.
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.
6 tool updates
- First observed
check_setup_link - First observed
create_setup_link - First observed
get_integration_code - First observed
get_pricing - First observed
read_docs_page - First observed
search_docs
Related MCP Connectors
Device intelligence for AI agents: Fingerprint events, smart signals, and API key management.
- SnitcherOAuthcom.snitcher
Identify companies visiting your website: organisations, contacts, segments, tags, CRM sync.
Detect 7,500+ technologies on any website - CMS, ecommerce, analytics, frameworks. ~$5/1,000 sites.
Domain & brand intelligence: company enrichment, tech stack detection, brand research.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceCloud browser API with anti-detect engine + AI behavior layer. Session-based undetectable browsers for AI agents and developers.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI applications to automate your existing browser using your logged-in profile. Provides fast, private browser automation that avoids bot detection by working with your real browser fingerprint.12,939 npmApache 2.0
- AlicenseNot gradedqualityDmaintenanceProvides a real Chrome fingerprint browser with 32 MCP tools for undetectable web automation, navigation, interaction, and data extraction.MIT
- AlicenseNot gradedqualityBmaintenanceDetects 50+ technologies on any website (CMS, JS frameworks, analytics, hosting, etc.) with confidence scores and evidence, using x402 micropayments.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.