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

linkly

https://mcp.linklyhq.com

Registry code: 9c8a55bdba158fda

api record

Linkly is a link-management and analytics platform. Use these tools to create, update, search, and delete short links; manage custom domains and favicons; configure click webhooks; and read click analytics and exports for the authenticated user's workspace. All actions run against the current OAuth-authenticated workspace (see list_workspaces). Find a link's id with search_links or list_links before calling get_link, update_link, or delete_link.

endpoint
https://mcp.linklyhq.com
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 linkly live?
Yes — it answered the hub's last check (checked 2h ago). It answered 100% of checks over the last 30 days.
Is linkly 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 linkly have?
25 tools: update_workspace, get_clicks, search_links, update_link, get_analytics, batchDeleteLinks, subscribe_webhook, get_analytics_by, ….
Is linkly 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.6%

90 days 99.7%· all time 99.7%

latency
330ms

last good check

priced tools
0

of 25 tools

_ answered our checks, 90 days 386 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • unknown → live
_ what it is for
used for
  • create a short link
  • get link click analytics
  • manage custom link domains
  • subscribe a webhook to link clicks
  • export click records
takes → gives
text → data
tools
13 reads12 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 25 tools
25 auth-required 25 of 25 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.

  • update_workspace changes data auth-required never probed

    Update workspace settings. Only the fields provided are changed; omitted fields keep their current values.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "name": {
          "type": "string",
          "description": "Workspace name"
        },
        "webhooks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "REPLACES the workspace's full webhook subscription list. Omit to leave webhooks unchanged; prefer subscribe_webhook / unsubscribe_webhook for adding or removing a single URL."
        }
      }
    }
    arguments 17 lines
  • get_clicks reads auth-required 17h ago

    Get recent click data for the workspace

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "link_id": {
          "type": "integer",
          "description": "Optional: filter clicks by link ID"
        }
      }
    }
    arguments 10 lines
  • search_links reads auth-required 6h ago

    Search for links by name, URL, or note. Returns matching links with click statistics.

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "query": {
          "type": "string",
          "description": "Search query to match against link names, URLs, and notes"
        }
      }
    }
    arguments 12 lines
  • update_link changes data auth-required never probed

    Update an existing Linkly link by its ID

    mcp-tool

    {
      "type": "object",
      "required": [
        "link_id"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "New destination URL"
        },
        "name": {
          "type": "string",
          "description": "New nickname for the link"
        },
        "note": {
          "type": "string",
          "description": "New private note"
        },
        "gtm_id": {
          "type": "string",
          "description": "Google Tag Manager ID"
        },
        "enabled": {
          "type": "boolean",
          "description": "Whether the link is active"
        },
        "link_id": {
          "type": "integer",
          "description": "The ID of the link to update (required)"
        },
        "cloaking": {
          "type": "boolean",
          "description": "Enable URL cloaking"
        },
        "og_image": {
          "type": "string",
          "description": "Open Graph image URL"
        },
        "og_title": {
          "type": "string",
          "description": "Open Graph title"
        },
        "utm_term": {
          "type": "string",
          "description": "UTM term parameter"
        },
        "block_bots": {
          "type": "boolean",
          "description": "Block bots"
        },
        "ga4_tag_id": {
          "type": "string",
          "description": "Google Analytics 4 tag ID"
        },
        "utm_medium": {
          "type": "string",
          "description": "UTM medium parameter"
        },
        "utm_source": {
          "type": "string",
          "description": "UTM source parameter"
        },
        "fb_pixel_id": {
          "type": "string",
          "description": "Meta Pixel ID"
        },
        "utm_content": {
          "type": "string",
          "description": "UTM content parameter"
        },
        "utm_campaign": {
          "type": "string",
          "description": "UTM campaign parameter"
        },
        "hide_referrer": {
          "type": "boolean",
          "description": "Hide referrer"
        },
        "forward_params": {
          "type": "boolean",
          "description": "Forward URL parameters"
        },
        "og_description": {
          "type": "string",
          "description": "Open Graph description"
        },
        "expiry_datetime": {
          "type": "string",
          "description": "Expiry datetime (ISO 8601)"
        },
        "expiry_destination": {
          "type": "string",
          "description": "Fallback URL after expiry"
        }
      }
    }
    arguments 96 lines
  • get_analytics reads auth-required 17h ago

    Get time-series click analytics data for charting. Returns click counts over time.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "end": {
          "type": "string",
          "description": "End date in YYYY-MM-DD format (default: today)"
        },
        "bots": {
          "enum": [
            "include",
            "exclude",
            "only"
          ],
          "type": "string",
          "description": "Bot filtering: include (default), exclude, or only"
        },
        "start": {
          "type": "string",
          "description": "Start date in YYYY-MM-DD format (default: 30 days ago)"
        },
        "unique": {
          "type": "boolean",
          "description": "Count unique clicks only (by IP)"
        },
        "browser": {
          "type": "string",
          "description": "Filter by browser name"
        },
        "country": {
          "type": "string",
          "description": "Filter by country code (e.g., 'US', 'GB')"
        },
        "link_id": {
          "type": "integer",
          "description": "Filter by specific link ID"
        },
        "platform": {
          "type": "string",
          "description": "Filter by platform (e.g., 'desktop', 'mobile', 'tablet')"
        },
        "frequency": {
          "enum": [
            "day",
            "hour"
          ],
          "type": "string",
          "description": "Time granularity: 'day' (default) or 'hour'"
        }
      }
    }
    arguments 51 lines
  • batchDeleteLinks changes data auth-required never probed

    Batch delete multiple links

    mcp-tool

    {
      "type": "object",
      "required": [
        "ids"
      ],
      "properties": {
        "ids": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "description": "Array of link IDs to delete"
        }
      }
    }
    arguments 15 lines
  • subscribe_webhook changes data auth-required never probed

    Subscribe a webhook URL to receive click events for all links in the workspace.

    mcp-tool

    {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "The webhook URL to receive click event notifications"
        }
      }
    }
    arguments 12 lines
  • get_analytics_by reads auth-required 10h ago

    Get click counts grouped by a dimension (country, platform, referrer, etc.). Useful for breakdowns and top-N reports.

    mcp-tool

    {
      "type": "object",
      "required": [
        "counter"
      ],
      "properties": {
        "end": {
          "type": "string",
          "description": "End date in YYYY-MM-DD format (default: today)"
        },
        "bots": {
          "enum": [
            "include",
            "exclude",
            "only"
          ],
          "type": "string",
          "description": "Bot filtering"
        },
        "start": {
          "type": "string",
          "description": "Start date in YYYY-MM-DD format (default: 30 days ago)"
        },
        "unique": {
          "type": "boolean",
          "description": "Count unique clicks only"
        },
        "counter": {
          "enum": [
            "country",
            "platform",
            "referer",
            "isp",
            "link_id",
            "destination",
            "bot_name"
          ],
          "type": "string",
          "description": "Dimension to group by (required)"
        },
        "country": {
          "type": "string",
          "description": "Filter by country code"
        },
        "link_id": {
          "type": "integer",
          "description": "Filter by specific link ID"
        },
        "platform": {
          "type": "string",
          "description": "Filter by platform"
        }
      }
    }
    arguments 54 lines
  • test_authentication reads auth-required 10h ago

    Test API Authentication

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • list_link_webhooks reads auth-required 6h ago

    List all webhook URLs subscribed to a specific link.

    mcp-tool

    {
      "type": "object",
      "required": [
        "link_id"
      ],
      "properties": {
        "link_id": {
          "type": "integer",
          "description": "The ID of the link"
        }
      }
    }
    arguments 12 lines
  • delete_link changes data auth-required never probed

    Delete a Linkly link by its ID

    mcp-tool

    {
      "type": "object",
      "required": [
        "link_id"
      ],
      "properties": {
        "link_id": {
          "type": "integer",
          "description": "The ID of the link to delete"
        }
      }
    }
    arguments 12 lines
  • unsubscribe_webhook changes data auth-required never probed

    Unsubscribe a webhook URL from workspace click events.

    mcp-tool

    {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "The webhook URL to unsubscribe"
        }
      }
    }
    arguments 12 lines
  • subscribe_link_webhook changes data auth-required never probed

    Subscribe a webhook URL to receive click events for a specific link.

    mcp-tool

    {
      "type": "object",
      "required": [
        "link_id",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "The webhook URL to receive click event notifications"
        },
        "link_id": {
          "type": "integer",
          "description": "The ID of the link"
        }
      }
    }
    arguments 17 lines
  • get_link reads auth-required 10h ago

    Get details of a specific Linkly link by its ID

    mcp-tool

    {
      "type": "object",
      "required": [
        "link_id"
      ],
      "properties": {
        "link_id": {
          "type": "integer",
          "description": "The ID of the link to retrieve"
        }
      }
    }
    arguments 12 lines
  • list_links reads auth-required 24h ago

    List links with sorting and search

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "page": {
          "type": "integer"
        },
        "search": {
          "type": "string",
          "description": "Search Query"
        },
        "sort_by": {
          "type": "string",
          "description": "Field to sort by"
        },
        "sort_dir": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort direction"
        },
        "page_size": {
          "type": "integer"
        }
      }
    }
    arguments 28 lines
  • list_webhooks reads auth-required 24h ago

    List all webhook URLs subscribed to the workspace. These receive click events for all links.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • ping reads auth-required 6h ago

    Health check

    mcp-tool

    {
      "type": "object",
      "required": [
        "message"
      ],
      "properties": {
        "message": {
          "type": "string",
          "description": "a message to ping , default to Hello From Linkkly"
        }
      }
    }
    arguments 12 lines
  • list_workspaces reads auth-required 17h ago

    Return details of authenticated workspace

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • unsubscribe_link_webhook changes data auth-required never probed

    Unsubscribe a webhook URL from a specific link's click events.

    mcp-tool

    {
      "type": "object",
      "required": [
        "link_id",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "The webhook URL to unsubscribe"
        },
        "link_id": {
          "type": "integer",
          "description": "The ID of the link"
        }
      }
    }
    arguments 17 lines
  • delete_domain changes data auth-required never probed

    Remove a custom domain from the workspace.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain_id"
      ],
      "properties": {
        "domain_id": {
          "type": "integer",
          "description": "The ID of the domain to delete"
        }
      }
    }
    arguments 12 lines
  • update_domain_favicon changes data auth-required never probed

    Update the favicon URL for a custom domain.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain_id",
        "favicon_url"
      ],
      "properties": {
        "domain_id": {
          "type": "integer",
          "description": "The ID of the domain to update"
        },
        "favicon_url": {
          "type": "string",
          "description": "URL to the favicon image"
        }
      }
    }
    arguments 17 lines
  • list_domains reads auth-required 24h ago

    List all custom domains in the workspace.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • create_link changes data auth-required never probed

    Create short links and URL shorteners. Use this when the user asks to shorten a URL, create a short link, or make a link shorter.

    mcp-tool

    {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "The destination URL for the link (required)"
        },
        "name": {
          "type": "string",
          "description": "A nickname for the link to identify it later"
        },
        "note": {
          "type": "string",
          "description": "A private note about this link"
        },
        "slug": {
          "type": "string",
          "description": "Custom slug/suffix for the link (must start with /). Only valid together with domain: setting slug without a workspace-owned domain is rejected by the API."
        },
        "domain": {
          "type": "string",
          "description": "Custom domain for the short link (without trailing /). Must be a domain that already belongs to this workspace — call list_domains to get valid values. Required whenever slug is set."
        },
        "gtm_id": {
          "type": "string",
          "description": "Google Tag Manager container ID"
        },
        "enabled": {
          "type": "boolean",
          "description": "Whether the link is active (default: true)"
        },
        "cloaking": {
          "type": "boolean",
          "description": "Hide destination URL by opening in an iframe"
        },
        "og_image": {
          "type": "string",
          "description": "Open Graph image URL for social media previews"
        },
        "og_title": {
          "type": "string",
          "description": "Open Graph title for social media previews"
        },
        "utm_term": {
          "type": "string",
          "description": "UTM term parameter"
        },
        "block_bots": {
          "type": "boolean",
          "description": "Block known bots and spiders from following the link"
        },
        "ga4_tag_id": {
          "type": "string",
          "description": "Google Analytics 4 tag ID"
        },
        "utm_medium": {
          "type": "string",
          "description": "UTM medium parameter"
        },
        "utm_source": {
          "type": "string",
          "description": "UTM source parameter"
        },
        "fb_pixel_id": {
          "type": "string",
          "description": "Meta/Facebook Pixel ID for tracking"
        },
        "utm_content": {
          "type": "string",
          "description": "UTM content parameter"
        },
        "utm_campaign": {
          "type": "string",
          "description": "UTM campaign parameter"
        },
        "hide_referrer": {
          "type": "boolean",
          "description": "Hide referrer information when users click"
        },
        "forward_params": {
          "type": "boolean",
          "description": "Forward URL parameters to the destination"
        },
        "og_description": {
          "type": "string",
          "description": "Open Graph description for social media previews"
        },
        "expiry_datetime": {
          "type": "string",
          "description": "ISO 8601 datetime when the link should expire"
        },
        "expiry_destination": {
          "type": "string",
          "description": "Fallback URL after expiry (404 if blank)"
        }
      }
    }
    arguments 100 lines
  • export_clicks reads auth-required never probed

    Export detailed click records with full information (timestamp, browser, country, URL, platform, referer, bot, ISP, params).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "end": {
          "type": "string",
          "description": "End date in YYYY-MM-DD format (default: yesterday)"
        },
        "bots": {
          "enum": [
            "include",
            "exclude",
            "only"
          ],
          "type": "string",
          "description": "Bot filtering"
        },
        "start": {
          "type": "string",
          "description": "Start date in YYYY-MM-DD format (default: 30 days ago)"
        },
        "country": {
          "type": "string",
          "description": "Filter by country code"
        },
        "link_id": {
          "type": "integer",
          "description": "Filter by specific link ID"
        },
        "platform": {
          "type": "string",
          "description": "Filter by platform"
        }
      }
    }
    arguments 35 lines
  • create_domain changes data auth-required never probed

    Add a custom domain to the workspace. The domain must be configured to point to Linkly's servers.

    mcp-tool

    {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The domain name (e.g., 'links.example.com')"
        }
      }
    }
    arguments 12 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 9c8a55bdba158fda.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/9c8a55bdba158fda/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/9c8a55bdba158fda/badge.svg)](https://brick.blue/agent/9c8a55bdba158fda?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.