b59.link
Server Details
Short links, QR codes and page-view trackers for AI agents, with click stats and email-code sign-up.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
TDQS
Scored across 7 tools
Most tools target clearly distinct actions: shortening, trackers, stats-URL lookup, existing-URL lookup, auth. The only genuinely confusable pair is generate_qr vs make_qr_image, but make_qr_image's description explicitly states to use generate_qr when scans should be counted, resolving the boundary.
All names are snake_case and mostly verb_noun, but the verbs are inconsistent for equivalent concepts (create_tracker, generate_qr, make_qr_image all mean 'produce'), and 'auth' is a bare verb with no object. Readable, but no predictable single convention.
Seven tools is well-scoped for a link shortener/QR/tracker service, and each one maps to a distinct capability rather than padding the surface.
Creation, lookup and stats-URL discovery are covered, but there is no way to list your existing short links/trackers or delete them, and stats themselves are only reachable by URL rather than retrieved. These are notable lifecycle gaps an agent would hit in real management workflows.
Available Tools
7 toolsauthSign in to b59.linkAInspect
Sign in to b59.link to raise the rate limit from 2 to 300 requests/minute and own what you create. Pass api_key to get a session key straight away. Or pass email to have a 6-digit code emailed, then call again with email and otp to get a session key (new emails are signed up and also get their api_key). Send the session key as the HTTP header 'Authorization: Bearer <session_key>'.
| Name | Required | Description | Default |
|---|---|---|---|
| otp | No | The 6-digit code from the email. | |
| No | Email to send a one-time code to. | ||
| api_key | No | The account's 256-character API key. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly=false, idempotent=false, openWorld=true) but say nothing about side effects. The description adds real behavioral context: new emails are silently signed up and issued an api_key (an account-creating side effect), the rate-limit benefit, and how to transmit the resulting session key as an Authorization: Bearer header.
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?
Four short sentences, front-loaded with the benefit and the primary api_key path before the longer OTP path. Every sentence carries information an agent needs to invoke the tool correctly.
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 must describe the return value, and it does: a session key, plus the header format for using it. Combined with both auth flows and the side-effect disclosure, nothing needed for correct invocation 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 coverage is 100%, so baseline is 3, but the description goes further by explaining the dependency between email and otp (the two-step OTP flow) and the distinct role of api_key as a shortcut path, none of which the per-field schema text conveys.
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 and resource ("Sign in to b59.link") plus the concrete outcome (rate limit 2 -> 300 req/min, ownership of creations). It is unmistakably distinct from the sibling URL/QR tools, which none of them authenticate.
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?
Explicitly describes two invocation paths and the condition selecting each: pass api_key for an immediate session key, or pass email then call again with email+otp. The only gap is that no "when not to call" case or alternative route is stated, and the motivating condition (hitting the 2 req/min limit) is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_trackerCreate a page-view trackerAInspect
Create a free page-view tracker for a website. Returns the tag image URL and ready-to-paste snippets for the site's pages, plus the stats URL where views, visitors, pages and referrers are shown. When signed in, the tracker belongs to the account; otherwise keep the manage_token to claim it later.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional display name for the tracker. | |
| site_url | Yes | The site's address, e.g. example.com. Views are only counted on this domain and its subdomains. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the mutation/safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description's job is to add context — and it does, disclosing that the response includes the tag image URL, paste-ready snippets, and a stats URL, plus the auth-dependent ownership behavior and the need to retain manage_token. That is real behavioral detail beyond the annotations, though rate limits and token lifetime are unstated.
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 tight sentences, front-loaded with the core action and then the return payload and ownership rule. Every sentence carries information an agent needs.
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 usefully explains what comes back (tag URL, snippets, stats URL) and how ownership works. It stops short of clarifying how the manage_token is surfaced in the response or any creation constraints, but it is otherwise sufficient for correct invocation.
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 both name and site_url (including the domain/subdomain counting rule), making 3 the baseline. The description adds no parameter-level meaning beyond that.
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?
Opens with a specific verb+resource ('Create a free page-view tracker for a website'), which is clearly distinguishable from siblings like shorten_url, generate_qr and get_stats_url. The scope (page-view tracking on a website) is unambiguous.
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 creation framing, and the description adds useful context about signed-in vs anonymous ownership, but it never states when to prefer this over an alternative tool or what preconditions must hold before calling it. No explicit exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_qrMake a tracked QR codeAIdempotentInspect
Generate a trackable QR code for a URL. Creates a b59.link short URL at the same time so scans are counted. Returns the short URL, a stats URL, and the QR code as a base64-encoded PNG.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to generate a QR code for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare write (readOnlyHint=false), idempotent, and non-destructive. The description adds genuinely useful behavior beyond that: it creates a short link as a side effect and names the three returned artifacts, including the base64 PNG encoding. It does not mention idempotency or any rate/creation limits, but the core behavior 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?
Three short sentences, each earning its place: purpose, side effect, return shape. Information is front-loaded with zero 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 helpfully enumerates the return values (short URL, stats URL, base64 PNG), which is exactly what is needed. The only gap is the absent guidance on when to prefer this over the sibling QR/shorten tools.
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?
One parameter with 100% schema coverage, so the schema already fully documents 'url'. The description adds no syntax, validation, or format detail beyond the schema, which is the expected baseline.
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 and resource (generate a trackable QR code) and immediately discloses the side effect of creating a b59.link short URL, which distinguishes it from the plain code generator. It never names make_qr_image or shorten_url explicitly, so the sibling differentiation is left to inference.
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 implies the use case (you want scans counted) but gives no explicit when-to-use vs make_qr_image or shorten_url, both of which likely produce overlapping artifacts. An agent can guess, but there is no routing guidance or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stats_urlFind a stats pageARead-onlyIdempotentInspect
Get the stats page URL for anything b59.link tracks: a slug or short URL, the destination URL of a short link or QR code, a tracker id or tag URL, or any page URL / domain that has a tracker tag. Stats themselves are viewed on b59.link; this returns where.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | Slug, short URL, page URL, domain, tracker id or tag URL. |
TDQS
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, so the safety profile is covered. The description adds real value beyond that by clarifying the return contract (a URL to view elsewhere, not the stats themselves), which prevents a wrong follow-up call. It says nothing about failure modes, e.g. what happens when the identifier has no tracker tag.
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?
Front-loaded with the verb and resource, then a compact enumeration of accepted inputs, then a short clarifying sentence. It is a bit dense in one sentence but every clause carries information; nothing reads as 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?
For a one-parameter, read-only lookup with no output schema, the description supplies the two things the agent needs: what inputs are valid and that the result is a location rather than stats data. Annotations cover safety. Only the error/not-found behavior is left unspecified, which is a minor gap for this tool shape.
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 the single parameter is fully documented, so the baseline is 3. The description's list of accepted identifier types closely mirrors the schema text ("Slug, short URL, page URL, domain, tracker id or tag URL"), adding no format, normalization, or ambiguity-resolution detail beyond the schema.
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 the stats page URL") and enumerates exactly which kinds of identifiers it accepts (slug, short URL, destination URL, tracker id/tag URL, page URL/domain). The second sentence reinforces the output semantics: it returns the location of stats, not stats data. It never names or contrasts with the close sibling lookup_url, which accepts overlapping input types (slug/short URL), so the agent must infer when to pick this one.
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 clearly frames the usage context ("for anything b59.link tracks") and pre-answers the likely follow-up question by stating stats are viewed on b59.link rather than returned here. There is no explicit when-not guidance or comparison to lookup_url / create_tracker, so an agent facing an ambiguous slug input has no rule for choosing between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_urlLook up an existing short linkARead-onlyIdempotentInspect
Check whether a URL already has a b59.link short URL. Handles variations: http/https, www prefix, trailing slash. Returns the existing short URL and QR code if found.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to look up. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description still adds genuinely useful behavior: it normalizes http/https, www prefix, and trailing slash before matching, and it discloses the return payload (short URL plus QR code when found). Missing is what happens on a miss, which with no output schema leaves a small gap.
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 core purpose, then matching behavior, then return value. No filler or redundancy; every sentence contributes.
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 one-parameter read-only lookup with no output schema, the description covers purpose, URL-matching semantics, and the shape of the result. The only omission is the not-found behavior, which is implied ('if found') but not stated explicitly.
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% for the single 'url' parameter, so the schema carries the parameter documentation. The description adds matching semantics (variation tolerance) rather than per-parameter meaning, which qualifies as marginal added value over structured data — 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?
The description gives a specific verb and resource ('Check whether a URL already has a b59.link short URL') and even names the service domain, so an agent immediately understands this is a lookup rather than a creation. It does not explicitly name the sibling it contrasts with (shorten_url), but the 'already has' framing makes the distinction inferable.
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 — you would call this to de-duplicate before shortening — but the description never states when to prefer this over shorten_url or get_stats_url, nor any preconditions or exclusions. The context is guessable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_qr_imageMake a QR code imageARead-onlyIdempotentInspect
Make a QR code image for any text (URL, Wi-Fi string, phone, email, plain text) without creating a short link. Supports colors, size and SVG. Returns the image plus a permanent image URL that can be embedded with . Use generate_qr instead when scans should be counted.
| Name | Required | Description | Default |
|---|---|---|---|
| bg | No | Background hex color, e.g. ffffff. | |
| fg | No | Foreground hex color, e.g. 000000. | |
| data | Yes | Text to encode (max 1500 chars). | |
| size | No | Width/height in pixels, 64-1200 (default 300). | |
| format | No | Image format (default png). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/non-open-world, so the safety profile is covered. The description adds genuinely new behavioral context: it does not create a short link, and it returns the image plus a permanent embeddable image URL. No rate limits or error behavior, but the key output trait is 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?
Three tight sentences: what it makes, what it supports, what it returns, and the routing rule. Front-loaded with the core action and zero 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 return-value burden and does so ('the image plus a permanent image URL that can be embedded with <img src>'), while constraints like char limit and size range live in a fully documented schema. Nothing material for correct invocation 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 coverage is 100%, so baseline is 3, but the description goes beyond the schema by enumerating acceptable payloads for the required 'data' parameter (URL, Wi-Fi string, phone, email, plain text) and confirming the color/size/SVG options. That adds semantic value the schema's terse property descriptions do not.
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 ('Make a QR code image') and immediately scopes it against the sibling: 'without creating a short link' vs. 'Use generate_qr instead when scans should be counted.' An agent can separate this from generate_qr 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit exclusion rule plus the named alternative: use generate_qr when scans should be counted, use this tool otherwise. That is the exact when/when-not/alternative structure the dimension asks for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shorten_urlShorten a URLAIdempotentInspect
Shorten a long URL and get a memorable b59.link short URL. Optionally specify a custom slug. Returns the short URL and a stats URL.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to shorten. | |
| slug | No | Optional custom slug (letters, digits, hyphens, underscores, max 100 chars). A random slug is used if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the write/idempotency profile is covered structurally. The description adds the domain (b59.link) and the return payload (short URL plus stats URL), but says nothing about auth requirements, collision behavior when a custom slug is taken, or why the operation is idempotent.
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 primary action and outcome, with the optional parameter and return values following in order of relevance. Nothing is padded or redundant.
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 two-parameter tool with no output schema, the description usefully discloses what comes back (short URL and stats URL) and the target domain, which an agent needs to chain into get_stats_url. The main gap is the absence of any authentication or error-condition context.
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%: the url and slug parameters, including the slug's character set and 100-char limit, are already fully documented in the schema. The description only restates that the slug is optional and that a random one is used otherwise, adding no new 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?
States a specific verb and resource ('Shorten a long URL'), names the concrete product outcome (b59.link short URL), and clarifies the custom-slug option. It is distinguishable from lookup_url and get_stats_url, though it never names a sibling to draw the boundary explicitly.
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 - an agent can infer this is the creation step - but there is no explicit when-to-use guidance, no mention of prerequisites such as authentication, and no comparison to lookup_url or create_tracker for retrieving or managing existing links.
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.
7 tool updates
- First observed
auth - First observed
create_tracker - First observed
generate_qr - First observed
get_stats_url - First observed
lookup_url - First observed
make_qr_image - First observed
shorten_url
Related MCP Connectors
Free, unlimited short links, QR codes and click analytics your AI agent can create and track.
Short links + QR codes for AI agents. Account required to create links via API or MCP. Public beta.
Short links for AI agents: editable after sharing, with click counts and password-protected files.
1Free URL shortener: manage short links, QR codes and click analytics from AI clients.
Related MCP Servers
- AlicenseAqualityDmaintenanceGenerate styled QR codes, manage dynamic short links with click analytics, and publish micro-landing pages via AI agents.1913 npm1MIT
- AlicenseNot gradedqualityCmaintenanceAI-native URL shortener and paste handoff service for agents. Create short links, publish handoff pastes, resolve prior slugs, generate QR links, and find tagged artifacts across sessions.MIT

esyURL MCP serverofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to create, update, organize, and delete short links; render styled QR codes; route visitors by device or country; and read click and scan statistics. Agents can also manage groups and custom domains while changing destinations without breaking printed QR codes or shared short URLs.MIT- AlicenseNot gradedqualityDmaintenanceQrVerloz lets AI agents create QR codes instantly — no account needed, active for 90 days, and claimable at any time to make them permanent. Retarget the destination URL whenever you need, without reprinting.3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.