Create and manage short links, track clicks, and automate URL management
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Batch delete multiple links
Array of link IDs to delete
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Batch delete multiple links
| Argument | Type | Description |
|---|---|---|
| ids* | array | Array of link IDs to delete |
{
"type": "object",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Array of link IDs to delete"
}
}
}Add a custom domain to the workspace. The domain must be configured to point to Linkly's servers.
| Argument | Type | Description |
|---|---|---|
| name* | string | The domain name (e.g., 'links.example.com') |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The domain name (e.g., 'links.example.com')"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| url* | string | The destination URL for the link (required) |
| name | string | A nickname for the link to identify it later |
| note | string | A private note about this link |
| slug | string | 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 | string | 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 | string | Google Tag Manager container ID |
| enabled | boolean | Whether the link is active (default: true) |
| cloaking | boolean | Hide destination URL by opening in an iframe |
| og_image | string | Open Graph image URL for social media previews |
Remove a custom domain from the workspace.
| Argument | Type | Description |
|---|---|---|
| domain_id* | integer | The ID of the domain to delete |
{
"type": "object",
"required": [
"domain_id"
],
"properties": {
"domain_id": {
"type": "integer",
"description": "The ID of the domain to delete"
}
}
}Delete a Linkly link by its ID
| Argument | Type | Description |
|---|---|---|
| link_id* | integer | The ID of the link to delete |
{
"type": "object",
"required": [
"link_id"
],
"properties": {
"link_id": {
"type": "integer",
"description": "The ID of the link to delete"
}
}
}Export detailed click records with full information (timestamp, browser, country, URL, platform, referer, bot, ISP, params).
| Argument | Type | Description |
|---|---|---|
| end | string | End date in YYYY-MM-DD format (default: yesterday) |
| bots | string | Bot filtering |
| start | string | Start date in YYYY-MM-DD format (default: 30 days ago) |
| country | string | Filter by country code |
| link_id | integer | Filter by specific link ID |
| platform | string | Filter by platform |
{
"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"
}
}
}Get time-series click analytics data for charting. Returns click counts over time.
| Argument | Type | Description |
|---|---|---|
| end | string | End date in YYYY-MM-DD format (default: today) |
| bots | string | Bot filtering: include (default), exclude, or only |
| start | string | Start date in YYYY-MM-DD format (default: 30 days ago) |
| unique | boolean | Count unique clicks only (by IP) |
| browser | string | Filter by browser name |
| country | string | Filter by country code (e.g., 'US', 'GB') |
| link_id | integer | Filter by specific link ID |
| platform | string | Filter by platform (e.g., 'desktop', 'mobile', 'tablet') |
| frequency | string | Time granularity: 'day' (default) or 'hour' |
Get click counts grouped by a dimension (country, platform, referrer, etc.). Useful for breakdowns and top-N reports.
| Argument | Type | Description |
|---|---|---|
| end | string | End date in YYYY-MM-DD format (default: today) |
| bots | string | Bot filtering |
| start | string | Start date in YYYY-MM-DD format (default: 30 days ago) |
| unique | boolean | Count unique clicks only |
| counter* | string | Dimension to group by (required) |
| country | string | Filter by country code |
| link_id | integer | Filter by specific link ID |
| platform | string | Filter by platform |
{
"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"
}
}
}Get recent click data for the workspace
| Argument | Type | Description |
|---|---|---|
| link_id | integer | Optional: filter clicks by link ID |
{
"type": "object",
"required": [],
"properties": {
"link_id": {
"type": "integer",
"description": "Optional: filter clicks by link ID"
}
}
}Get details of a specific Linkly link by its ID
| Argument | Type | Description |
|---|---|---|
| link_id* | integer | The ID of the link to retrieve |
{
"type": "object",
"required": [
"link_id"
],
"properties": {
"link_id": {
"type": "integer",
"description": "The ID of the link to retrieve"
}
}
}List all custom domains in the workspace.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}List all webhook URLs subscribed to a specific link.
| Argument | Type | Description |
|---|---|---|
| link_id* | integer | The ID of the link |
{
"type": "object",
"required": [
"link_id"
],
"properties": {
"link_id": {
"type": "integer",
"description": "The ID of the link"
}
}
}List links with sorting and search
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| search | string | Search Query |
| sort_by | string | Field to sort by |
| sort_dir | string | Sort direction |
| page_size | integer |
{
"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"
}
}
}List all webhook URLs subscribed to the workspace. These receive click events for all links.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}Return details of authenticated workspace
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}Health check
| Argument | Type | Description |
|---|---|---|
| message* | string | a message to ping , default to Hello From Linkkly |
{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "a message to ping , default to Hello From Linkkly"
}
}
}Search for links by name, URL, or note. Returns matching links with click statistics.
| Argument | Type | Description |
|---|---|---|
| query* | string | Search query to match against link names, URLs, and notes |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Search query to match against link names, URLs, and notes"
}
}
}Subscribe a webhook URL to receive click events for a specific link.
| Argument | Type | Description |
|---|---|---|
| url* | string | The webhook URL to receive click event notifications |
| link_id* | integer | The ID of the link |
{
"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"
}
}
}Subscribe a webhook URL to receive click events for all links in the workspace.
| Argument | Type | Description |
|---|---|---|
| url* | string | The webhook URL to receive click event notifications |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The webhook URL to receive click event notifications"
}
}
}Test API Authentication
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}Unsubscribe a webhook URL from a specific link's click events.
| Argument | Type | Description |
|---|---|---|
| url* | string | The webhook URL to unsubscribe |
| link_id* | integer | The ID of the link |
{
"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"
}
}
}Unsubscribe a webhook URL from workspace click events.
| Argument | Type | Description |
|---|---|---|
| url* | string | The webhook URL to unsubscribe |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The webhook URL to unsubscribe"
}
}
}Update the favicon URL for a custom domain.
| Argument | Type | Description |
|---|---|---|
| domain_id* | integer | The ID of the domain to update |
| favicon_url* | string | URL to the favicon image |
{
"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"
}
}
}Update an existing Linkly link by its ID
| Argument | Type | Description |
|---|---|---|
| url | string | New destination URL |
| name | string | New nickname for the link |
| note | string | New private note |
| gtm_id | string | Google Tag Manager ID |
| enabled | boolean | Whether the link is active |
| link_id* | integer | The ID of the link to update (required) |
| cloaking | boolean | Enable URL cloaking |
| og_image | string | Open Graph image URL |
| og_title | string | Open Graph title |
| utm_term | string | UTM term parameter |
| block_bots |
Update workspace settings. Only the fields provided are changed; omitted fields keep their current values.
| Argument | Type | Description |
|---|---|---|
| name | string | Workspace name |
| webhooks | array | 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. |
{
"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."
}
}
}| og_title | string | Open Graph title for social media previews |
| utm_term | string | UTM term parameter |
| block_bots | boolean | Block known bots and spiders from following the link |
| ga4_tag_id | string | Google Analytics 4 tag ID |
| utm_medium | string | UTM medium parameter |
| utm_source | string | UTM source parameter |
| fb_pixel_id | string | Meta/Facebook Pixel ID for tracking |
| utm_content | string | UTM content parameter |
| utm_campaign | string | UTM campaign parameter |
| hide_referrer | boolean | Hide referrer information when users click |
| forward_params | boolean | Forward URL parameters to the destination |
| og_description | string | Open Graph description for social media previews |
| expiry_datetime | string | ISO 8601 datetime when the link should expire |
| expiry_destination | string | Fallback URL after expiry (404 if blank) |
{
"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)"
}
}
}{
"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'"
}
}
}| boolean |
| Block bots |
| ga4_tag_id | string | Google Analytics 4 tag ID |
| utm_medium | string | UTM medium parameter |
| utm_source | string | UTM source parameter |
| fb_pixel_id | string | Meta Pixel ID |
| utm_content | string | UTM content parameter |
| utm_campaign | string | UTM campaign parameter |
| hide_referrer | boolean | Hide referrer |
| forward_params | boolean | Forward URL parameters |
| og_description | string | Open Graph description |
| expiry_datetime | string | Expiry datetime (ISO 8601) |
| expiry_destination | string | Fallback URL after expiry |
{
"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"
}
}
}