_ registry / mcp streamable-http · checked 2h ago

l1nk

https://l1nk.website

Registry code: 728f605561b3614d

api record

L1NK is a link shortener. Use these tools to create short links, list them, change where they point, delete them and read click analytics for the account that owns the API token. Always show the user the shortUrl you get back. Plan limits apply: Free allows 25 new links per month; Pro allows 2,000 new links per month. An error saying something is not included in the plan cannot be fixed by retrying: tell the user. Error messages come from the API in Spanish; translate them for the user if needed.

endpoint
https://l1nk.website/api/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is l1nk live?
Yes — it answered the hub's last check (checked 2h ago). It answered 99% of checks over the last 30 days.
Is l1nk free to use?
Not anonymously — it asks for a key or a login before it will serve. Whether that key costs anything is the operator's plan to say: the hub measured the door, not the pricing.
What tools does l1nk have?
7 tools: create_link, get_link, update_link, delete_link, get_analytics, compare_tags, list_links.
Is l1nk safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.2%

90 days 98.9%· all time 98.9%

latency
341ms

last good check

priced tools
0

of 7 tools

_ answered our checks, 90 days 376 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • create a short link
  • update where a short link points
  • read click analytics
  • delete a short link
takes → gives
text, web pages → data
tools
3 reads3 changes data
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 7 tools
7 auth-required 7 of 7 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • create_link changes data auth-required never probed

    Create a short link that redirects to a URL. Returns shortUrl, which is what you share.

    mcp-tool

    {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "maxLength": 2048,
          "description": "Destination URL. https:// is added if missing."
        },
        "name": {
          "type": "string",
          "maxLength": 80,
          "description": "Optional label to recognise the link in the dashboard."
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[^,]{1,30}$",
            "maxLength": 30
          },
          "maxItems": 10,
          "description": "Optional tags to group links, e.g. [\"table-1\",\"instagram\"] (max 10, up to 30 characters each; letters, numbers, - and _; stored lowercase). Adding tags is Pro (also during the 14-day trial)."
        },
        "alias": {
          "type": "string",
          "pattern": "^[a-zA-Z0-9_-]{1,20}$",
          "maxLength": 20,
          "description": "Optional custom alias (letters, numbers, - and _; max 20 characters, never truncated: a longer one is rejected). Pro plan only (also during the 14-day trial): on Free, omit it and the link gets a random code."
        },
        "domain": {
          "type": "string",
          "pattern": "^[a-zA-Z0-9.-]+$",
          "maxLength": 253,
          "description": "Optional domain the user owns and has connected to L1NK (Pro plan only), to put the link on, e.g. go.mybrand.com. It must be active."
        },
        "domain_id": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional id of a verified custom domain (use domain instead)."
        },
        "time_zone": {
          "type": "string",
          "maxLength": 64,
          "description": "Optional IANA time zone (e.g. America/Lima) used to write the activation date to visitors. Default UTC."
        },
        "max_clicks": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 1,
          "description": "Optional. Pro plan. The link stops working after this many people (bots are not counted). Approximate at the boundary under simultaneous clicks."
        },
        "active_from": {
          "type": "string",
          "maxLength": 40,
          "description": "Optional. Pro plan. ISO 8601 date-time (e.g. 2026-11-03T09:00:00-05:00): before it the link does not redirect and shows \"this link becomes active on …\"."
        },
        "expires_in_days": {
          "type": "integer",
          "maximum": 365,
          "minimum": 1,
          "description": "Optional expiry. Pro plan only."
        },
        "unavailable_page": {
          "type": "object",
          "description": "Optional. Pro plan. What visitors see when the link is expired, past max_clicks or not active yet. {\"modo\":\"neutra\"} = the neutral L1NK page (default); {\"modo\":\"url\",\"url\":\"https://...\"} = redirect to that fallback URL; {\"modo\":\"mensaje\",\"mensaje\":\"...\"} = a short message of yours (max 200 characters). Shown on the same host, custom domains included."
        }
      },
      "additionalProperties": false
    }
    arguments 72 lines
  • get_link reads auth-required 20h ago

    Details of one link: destination, destination rules (reglas) if any, clicks by people, bots apart (link previews and crawlers, not counted in clicks), creation and expiry dates, last click and recent click history. For countries, devices and referrers use get_analytics with the same code.

    mcp-tool

    {
      "type": "object",
      "required": [
        "code"
      ],
      "properties": {
        "code": {
          "type": "string",
          "pattern": "^[a-zA-Z0-9_-]{1,64}$",
          "description": "The short code or custom alias of the link (the part after the slash)."
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • update_link changes data auth-required never probed

    Change where a link points, set a new expiry (Pro) or remove its expiry, or set destination rules (Pro): rotate clicks among several URLs (e.g. a WhatsApp rotator between salespeople) or send by country or device. Also (Pro) an activation date, a click limit, and what visitors see when the link is not available. The short code stays the same.

    mcp-tool

    {
      "type": "object",
      "required": [
        "code"
      ],
      "properties": {
        "url": {
          "type": "string",
          "maxLength": 2048,
          "description": "New destination URL."
        },
        "code": {
          "type": "string",
          "pattern": "^[a-zA-Z0-9_-]{1,64}$",
          "description": "The short code or custom alias of the link (the part after the slash)."
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[^,]{1,30}$",
            "maxLength": 30
          },
          "maxItems": 10,
          "description": "The COMPLETE list of tags the link keeps (it replaces the current one); [] removes them all. Adding a tag the link did not have is Pro (also during the trial); removing is always allowed."
        },
        "rules": {
          "type": "object",
          "description": "Destination rules, Pro plan. Shape: {\"version\":1, \"condiciones\":[{\"si\":{\"pais\":[\"PE\"],\"dispositivo\":[\"ios\"]},\"destino\":\"https://...\"}], \"rotacion\":{\"destinos\":[{\"url\":\"https://wa.me/51...\",\"peso\":1}]}}. Conditions are checked in order (pais = ISO country codes; dispositivo = movil, tablet, escritorio, ios, android); the first match wins. Otherwise rotacion takes turns among 2-10 URLs by weight (peso 1-100, default 1). Otherwise the link URL. Bots always get the link URL. Replaces any previous rules."
        },
        "time_zone": {
          "type": "string",
          "maxLength": 64,
          "description": "Optional IANA time zone (e.g. America/Lima) used to write the activation date to visitors. Default UTC."
        },
        "max_clicks": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 1,
          "description": "Optional. Pro plan. The link stops working after this many people (bots are not counted). Approximate at the boundary under simultaneous clicks."
        },
        "active_from": {
          "type": "string",
          "maxLength": 40,
          "description": "Optional. Pro plan. ISO 8601 date-time (e.g. 2026-11-03T09:00:00-05:00): before it the link does not redirect and shows \"this link becomes active on …\"."
        },
        "remove_rules": {
          "type": "boolean",
          "description": "true to remove the destination rules (the link goes back to a single URL)."
        },
        "expires_in_days": {
          "type": "integer",
          "maximum": 365,
          "minimum": 1,
          "description": "New expiry, counted from today. Not together with remove_expiration."
        },
        "unavailable_page": {
          "type": "object",
          "description": "Optional. Pro plan. What visitors see when the link is expired, past max_clicks or not active yet. {\"modo\":\"neutra\"} = the neutral L1NK page (default); {\"modo\":\"url\",\"url\":\"https://...\"} = redirect to that fallback URL; {\"modo\":\"mensaje\",\"mensaje\":\"...\"} = a short message of yours (max 200 characters). Shown on the same host, custom domains included."
        },
        "remove_expiration": {
          "type": "boolean",
          "description": "true to make the link permanent."
        },
        "remove_max_clicks": {
          "type": "boolean",
          "description": "true to remove the click limit."
        },
        "remove_active_from": {
          "type": "boolean",
          "description": "true to remove the activation date (the link works right away)."
        }
      },
      "additionalProperties": false
    }
    arguments 75 lines
  • delete_link changes data auth-required never probed

    Delete a link permanently. Anyone opening it afterwards gets "not found". Confirm with the user first.

    mcp-tool

    {
      "type": "object",
      "required": [
        "code"
      ],
      "properties": {
        "code": {
          "type": "string",
          "pattern": "^[a-zA-Z0-9_-]{1,64}$",
          "description": "The short code or custom alias of the link (the part after the slash)."
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • get_analytics reads auth-required 11h ago

    Click analytics by people (bots reported apart): totals, daily series, countries, devices, browsers, referrers and top links. On Pro (and the trial) also aiTraffic (visits from AI assistants such as ChatGPT or Perplexity, with their share and breakdown), cities (top 10 with their country) and QR scans; on Free those fields are null. For the whole account, or for one link with code. The plan caps how far back you can look (Free 30 days, Pro 365).

    mcp-tool

    {
      "type": "object",
      "properties": {
        "code": {
          "type": "string",
          "pattern": "^[a-zA-Z0-9_-]{1,64}$",
          "description": "Optional: only this link (its short code or alias)."
        },
        "days": {
          "type": "integer",
          "maximum": 365,
          "minimum": 1,
          "description": "Days to look back. Default 30."
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[^,]{1,30}$",
            "maxLength": 30
          },
          "maxItems": 10,
          "description": "Optional: only the links that carry at least one of these tags (e.g. [\"table-1\",\"table-2\"])."
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • compare_tags auth-required 11h ago

    Compare the links that carry some tags (e.g. one QR per table, shop window or flyer): for each link, people, QR scans, bots apart and its top countries and devices, over the same period so the rows add up to the total. Without tags it only returns the tags the account uses (etiquetasDisponibles), to choose from. Pro plan (also during the 14-day trial).

    mcp-tool

    {
      "type": "object",
      "properties": {
        "days": {
          "type": "integer",
          "maximum": 365,
          "minimum": 1,
          "description": "Days to look back. Default 30."
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[^,]{1,30}$",
            "maxLength": 30
          },
          "maxItems": 10,
          "description": "Tags to compare, e.g. [\"table-1\",\"table-2\"]. Omit to list the available tags."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • list_links reads auth-required 11h ago

    List the active (not expired) links of the account with their click counts and tags. Optionally only the links that carry any of the given tags.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[^,]{1,30}$",
            "maxLength": 30
          },
          "maxItems": 10,
          "description": "Optional: only links with at least one of these tags (e.g. [\"mesa-1\",\"mesa-2\"])."
        }
      },
      "additionalProperties": false
    }
    arguments 16 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 728f605561b3614d.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/728f605561b3614d/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/728f605561b3614d/badge.svg)](https://brick.blue/agent/728f605561b3614d?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.