urlhub
Server Details
Many links as one short link with a QR code; read urlhub sets and preview what links are about.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a clearly distinct action: listing featured sets, creating a set, previewing raw links, and reading a specific urlhub link. There is no meaningful overlap between make_set, preview_links, read_set, and featured_sets.
All names use snake_case consistently, but featured_sets is a noun phrase while the others follow a verb_noun pattern. This is a minor deviation that still leaves the set readable and predictable.
Four tools are well-scoped for a focused URL-set service. Each tool earns its place and the set is not padded or trivially thin.
Core workflows are covered: discovery, creation, link preview, and reading sets. There is no explicit delete or update tool, though make_set's re-call behavior and link expiry mitigate this gap.
Available Tools
4 toolsfeatured_setsFeatured setsARead-onlyInspect
Lists urlhub's ready sets of the season in a language (gift ideas, films, events, lessons…), each with its address and a short description: links to point someone to who asks for ideas on one of these topics.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | en (default) or pl |
Output Schema
| Name | Required | Description |
|---|---|---|
| sets | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds that sets are 'ready sets of the season in a language', which gives useful context about the currency and localization of the data, and that each set includes an address and short description. It doesn't detail pagination or output format, but this is reasonable given the output schema exists.
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, well-crafted sentence that is front-loaded with the core action and resource, then elaborates on the content and use case without any wasted words.
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, read-only listing tool with one optional parameter, full schema coverage, and an output schema, the description provides adequate context: what the tool returns, its purpose for sharing, and its seasonal/lang scope. No critical gaps remain.
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 single 'lang' parameter is fully described with enum values and default. The description mentions 'in a language' but adds no additional semantic detail about the parameter beyond what the schema provides. 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 (Lists) and resource (urlhub's ready/featured sets), and clarifies the nature of the content (gift ideas, films, events, lessons) with addresses and short descriptions. It distinguishes itself from siblings like make_set and read_set by being a listing tool. However, it doesn't explicitly name an alternative tool for a different way to get sets.
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 usage for pointing someone to ideas on topics, but it doesn't explicitly state when to use this tool versus alternatives like read_set (which likely reads a specific set) or make_set. The context is implied rather than stated with clear conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_setMake a set of linksAIdempotentInspect
Makes a urlhub set from links: a short link that opens a page with every link's picture, title and description, and its QR code as PNG and SVG files. Good when several links should travel together: sent to someone, opened later on a phone, or printed as one QR code on a poster or a slide (gift ideas, products to compare, a reading list, a trip plan, links for a class). With a title (and a description) it publishes the set as a page with that heading, for a set to send round or print; without one it makes a short link. Both are public to anyone who has the link. The same links always give the same link; to change a set, call make_set again. A short link nobody opens for 90 days goes away, a page after a year.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | The page's language (en by default) | |
| urls | Yes | The links, in the order to show them (1 to 200, http or https) | |
| view | No | table (the default) or tiles with big pictures, for products and looks | |
| title | No | A heading for the set, e.g. "Gift ideas for Dad under $50": makes a page | |
| description | No | A line under the heading (only with a title) |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | page when a title was given |
| link | Yes | The link to give the person |
| count | Yes | How many links the set has |
| qr_png | Yes | The QR code of the link (PNG) |
| qr_svg | Yes | The same code as SVG, to print |
| as_text | Yes | The set as Markdown |
| expires_after_days_unopened | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations it discloses visibility ('Both are public to anyone who has the link'), the retention policy ('A short link nobody opens for 90 days goes away, a page after a year'), and regeneration semantics ('The same links always give the same link; to change a set, call make_set again'). These are exactly the behavioral facts an agent cannot infer from readOnlyHint/idempotentHint alone.
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 purpose is front-loaded in the first clause, and the long parenthetical examples of use cases are the only mildly expendable material. Overall dense and well-ordered, though slightly longer than necessary.
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?
An output schema exists so return values need no explanation. With parameters fully documented in the schema and the description covering visibility, expiry, idempotency and use contexts, an agent has everything needed to invoke this tool correctly.
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 already 100%, so the baseline is 3. The description adds meaning the schema does not spell out: the title/description pair branches the output mode ('With a title (and a description) it publishes the set as a page...; without one it makes a short link'), clarifying the conditional behavior of those two parameters.
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 concrete verb+resource ('Makes a urlhub set from links') and details the artifact produced (short link opening a page of pictures, titles, descriptions, plus QR code in PNG and SVG). It is clearly the creation tool among its siblings, but it never names featured_sets, preview_links or read_set to draw the contrast 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?
It states concrete contexts for use ('sent to someone, opened later on a phone, or printed as one QR code on a poster'), and gives the update path ('to change a set, call make_set again'), which implicitly rules out a separate edit tool. No explicit when-not or named-alternative routing is provided, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_linksPreview linksARead-onlyInspect
Reads up to 50 links and returns each one's title, description, site and kind (page, video…), or why it could not be read. Useful before making a set, to check the links work and describe them, or to see what links someone sent are about.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | The links to read (1 to 50) |
Output Schema
| Name | Required | Description |
|---|---|---|
| links | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real behavioral context beyond that: the 50-link cap and the failure mode (returns why a link could not be read), which an agent otherwise would not know.
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 tight sentence that front-loads the operation and its output before pivoting to usage. Minor run-on in the second clause but no wasted sentences.
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?
An output schema exists, so return values need not be described here, yet the description still previews the result shape and error case. Combined with annotations covering read-only/open-world behavior, an agent has everything needed to invoke it correctly.
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 single parameter is fully documented in the schema itself (type, URI pattern, min/max items). The description's 'up to 50 links' simply restates the schema's maxItems, so it adds little beyond the structured field.
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 (reads) and resource (links), and enumerates exactly what is returned per link (title, description, site, kind). This is distinct from the sibling make_set/read_set operations, which the description implicitly separates by positioning this as a pre-step to making a set.
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 concrete when-to-use contexts: 'before making a set, to check the links work and describe them, or to see what links someone sent are about.' It does not name an alternative tool explicitly, but the usage contexts are clear enough that an agent knows when to reach for it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_setRead a urlhub setARead-onlyInspect
Reads a urlhub link someone gives you (a short link /c/…, a published page /l/…, a featured set /s/…, or an address with ?urls=) and returns its links with their titles and descriptions as Markdown.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | A link on urlhub.cloud |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds real value beyond them by disclosing the return format (links with titles and descriptions, rendered as Markdown), which tells the agent what to expect from the call.
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 the core action first and the accepted inputs and output format bundled compactly. No filler or redundancy.
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 tool with no output schema, the description covers what it does and what it returns. It does not mention behavior for large or empty sets (limits, pagination), a minor gap but not one an agent needs to invoke it correctly.
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?
With one param at 100% schema coverage the baseline is 3, but the description genuinely extends the schema: it enumerates the accepted URL forms (/c/, /l/, /s/, ?urls=) whereas the schema only says "A link on urlhub.cloud". This gives the agent concrete format expectations.
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 (Reads) and resource (a urlhub link / set) and clarifies the output (links with titles and descriptions as Markdown). It enumerates the accepted URL shapes, which helps an agent recognize the tool, though it never explicitly names how it differs from siblings like featured_sets or preview_links.
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?
"Reads a urlhub link someone gives you" implies the trigger context (a user-supplied link), but there is no explicit when-to-use-vs-alternatives guidance and no mention of featured_sets/preview_links, which plausibly overlap. Usage is only implied.
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.
4 tool updates
- First observed
featured_sets - First observed
make_set - First observed
preview_links - First observed
read_set
Related MCP Connectors
Bundle multiple URLs into one short link. QR codes, access counters, redirect lookup. Free.
Create QR codes, re-point printed dynamic codes, name links on your domain, read scan analytics.
Short links with branded domains, cookie-less analytics and QR codes. Sign in with OAuth or a token
Related MCP Servers
FlicenseNot gradedqualityDmaintenanceUser can create short urls, edit short urls, get click analytics, generate qr codes and much more.-- AlicenseNot gradedqualityCmaintenanceLets an AI assistant create QR codes and short links, re-point or pause them, inspect scan counts and analytics, and read the contents of a QR image you supply. It connects to a hosted workspace over Streamable HTTP, so codes can be managed and tracked without leaving the chat.MIT
- AlicenseAqualityDmaintenanceGenerate styled QR codes, manage dynamic short links with click analytics, and publish micro-landing pages via AI agents.1946 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables generating QR codes from URLs or text without an API key, and creating trackable short links whose printed QR codes can be re-pointed after printing.45 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.