TraceTail
Server Details
Browser fingerprinting for web apps: integration code for any framework, docs search and pricing.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 6 tools
create_setup_link and check_setup_link form a clear, well-described pair with distinct roles (initiate vs poll). read_docs_page vs search_docs and get_pricing vs read_docs_page('/pricing') overlap somewhat, but the descriptions make the boundaries clear—get_pricing adds cost math and search_docs returns topic-matched snippets.
Every name follows a verb_noun snake_case pattern (create_setup_link, check_setup_link, get_integration_code, get_pricing, read_docs_page, search_docs). The verbs are predictable and the resource nouns are readable, with only trivial length variation.
Six tools is well-scoped for an onboarding-plus-docs helper server, with each tool earning its place (onboarding pair, integration code, pricing, two docs accessors). No redundant or filler tools appear.
The API-key lifecycle (create link, poll for keys, get integration code) is fully covered, and docs/pricing access round it out. Minor gaps exist—no tool to list, rotate, or revoke existing keys, and no direct identification or server-side verification operation despite those being referenced.
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 declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds real context beyond that: it explains keyless mode needs no API key or sign-up, that the snippet adapts to the chosen framework, and that output includes file locations.
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 dense sentence front-loads what is returned (install command, code, file placement) before qualifying optionality. It is efficient, though the parenthetical about browser fingerprinting makes the sentence long.
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: install command, integration code, per-file placement, and keyless/keyed modes. Nothing an agent needs to call and interpret this tool correctly is 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%, so the enum values, the apiKey placeholder behavior, and the firstPartyPath pattern are all documented in the schema. The description echoes the framework and optional-key semantics but adds no syntax or format detail beyond what structured fields already provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns the exact install command and code to add TraceTail browser fingerprinting to an app built with a given framework, including file placement. This is clearly distinguishable from siblings like search_docs, get_pricing, or the setup-link tools.
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 tells the agent the precondition (a web app built with the given framework) and that the tool works keyless without sign-up, with an optional API key to fill in the snippet. It does not name an alternative tool or state when not to use this one, so it falls short of an explicit routing statement.
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.
1 tool update
- Changed
get_integration_code1 field changed- removed
Input schema / properties / apiKey / patternRemoved value: -"^tt_[0-9a-f]{64}$"
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.
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
- 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.
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.6,257 npmApache 2.0
- AlicenseAqualityAmaintenanceHeadless browser for AI agents with Chrome's fingerprint that passes Cloudflare challenges.121021Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to navigate, interact with, search, extract from, download from, and reuse sessions across the web using anti-detection browser automation.201 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.