urlhub

Many links as one short link with a QR code; read urlhub sets and preview what links are about.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
97%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,140Tokens (tool definitions)
~2.0 KBTypical response size
Moderate attention impact (0.89% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "urlhub": {
      "url": "https://urlhub.cloud/mcp"
    }
  }
}

Remote endpoints

https://urlhub.cloud/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟑make_set(urls, view, lang, title, description)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "urls": {
      "type": "array",
      "description": "The links, in the order to show them (1 to 200, http or https)",
      "items": {
        "type": "string",
        "format": "uri",
        "pattern": "^https?://"
      },
      "minItems": 1,
      "maxItems": 200
    },
    "view": {
      "type": "string",
      "enum": [
        "table",
        "tiles"
      ],
      "description": "table (the default) or tiles with big pictures, for products and looks"
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "pl"
      ],
      "description": "The page's language (en by default)"
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "A heading for the set, e.g. \"Gift ideas for Dad under $50\": makes a page"
    },
    "description": {
      "type": "string",
      "maxLength": 300,
      "description": "A line under the heading (only with a title)"
    }
  },
  "required": [
    "urls"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "link": {
      "type": "string",
      "format": "uri",
      "description": "The link to give the person"
    },
    "kind": {
      "type": "string",
      "enum": [
        "short_link",
        "page"
      ],
      "description": "page when a title was given"
    },
    "count": {
      "type": "integer",
      "description": "How many links the set has"
    },
    "qr_png": {
      "type": "string",
      "format": "uri",
      "description": "The QR code of the link (PNG)"
    },
    "qr_svg": {
      "type": "string",
      "format": "uri",
      "description": "The same code as SVG, to print"
    },
    "as_text": {
      "type": "string",
      "format": "uri",
      "description": "The set as Markdown"
    },
    "expires_after_days_unopened": {
      "type": "integer"
    }
  },
  "required": [
    "link",
    "kind",
    "count",
    "qr_png",
    "qr_svg",
    "as_text",
    "expires_after_days_unopened"
  ]
}
🟒read_set(url)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "description": "A link on urlhub.cloud"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false
}
🟒preview_links(urls)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "urls": {
      "type": "array",
      "description": "The links to read (1 to 50)",
      "items": {
        "type": "string",
        "format": "uri",
        "pattern": "^https?://"
      },
      "minItems": 1,
      "maxItems": 50
    }
  },
  "required": [
    "urls"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "title": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "site": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "page, video…"
          },
          "error": {
            "type": "string",
            "description": "Why the link could not be read"
          }
        },
        "required": [
          "url",
          "title",
          "description",
          "site",
          "type"
        ]
      }
    }
  },
  "required": [
    "links"
  ]
}
🟒featured_sets(lang)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "pl"
      ],
      "description": "en (default) or pl"
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "sets": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "page": {
            "type": "string",
            "format": "uri"
          },
          "links": {
            "type": "integer"
          }
        },
        "required": [
          "title",
          "description",
          "page",
          "links"
        ]
      }
    }
  },
  "required": [
    "sets"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools