Tools reference
Every tool that the PROlinks MCP server exposes, with its arguments.
The PROlinks MCP server exposes 29 tools. Your assistant chooses the tools for you, so you do not need to call them by name. Use this page to know what the assistant can do, and which arguments each tool accepts.
Conventions
- Organization: every tool except
list-organizations-toolaccepts an optionalorganization_idargument (integer). Organizations explains how the server chooses the organization when you do not send it. The tables below do not repeat this argument. - Pagination: list tools accept
page(integer) andper_page(integer, 1 to 100, default 20). Their response includes ametaobject withcurrent_page,last_pageandtotal. - Responses: tools return structured JSON with the result in a
datakey. Delete tools return a short confirmation text. - Dates: date arguments use the format
d/m/Y H:i, for example31/12/2026 18:00. - Behavior: each tool tells your client if it is read-only, idempotent or destructive. Most clients ask you to approve destructive tools before they run.
Organizations
list-organizations-tool
List the organizations the authenticated user belongs to.
Behavior: Read-only
Arguments: none.
get-organization-tool
Get a single organization the authenticated user belongs to.
Behavior: Read-only
Arguments: organization_id only.
Domains
list-domains-tool
List the domains belonging to an organization.
Behavior: Read-only
Arguments: pagination only.
get-domain-tool
Get a single domain belonging to an organization.
Behavior: Read-only
| Argument | Type | Required | Description |
|---|---|---|---|
domain_id |
integer | Yes | The ID of the domain to retrieve. |
create-domain-tool
Add a custom domain to an organization. The domain starts in a pending state until DNS and SSL are provisioned.
Behavior: Writes data
| Argument | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | The domain name to add, e.g. "links.example.com". Must not already be registered. |
redirect_url |
string | No | Optional URL to redirect visitors to when they hit the domain root. |
update-domain-tool
Update an existing domain belonging to an organization.
Behavior: Idempotent
| Argument | Type | Required | Description |
|---|---|---|---|
domain_id |
integer | Yes | The ID of the domain to update. |
name |
string | Yes | The new domain name. Must not already be registered. |
redirect_url |
string | No | Optional URL to redirect visitors to when they hit the domain root. |
delete-domain-tool
Delete a domain belonging to an organization.
Behavior: Destructive, Idempotent
| Argument | Type | Required | Description |
|---|---|---|---|
domain_id |
integer | Yes | The ID of the domain to delete. |
Tags
list-tags-tool
List the tags belonging to an organization.
Behavior: Read-only
Arguments: pagination only.
get-tag-tool
Get a single tag belonging to an organization.
Behavior: Read-only
| Argument | Type | Required | Description |
|---|---|---|---|
tag_id |
integer | Yes | The ID of the tag to retrieve. |
create-tag-tool
Create a new tag in an organization.
Behavior: Writes data
| Argument | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | The name of the tag. Must be unique within the organization. |
color |
string (red, orange, yellow, green, cyan, teal, blue, indigo, purple, fuchsia, pink, zinc) |
No | The color of the tag. Defaults to "zinc". |
update-tag-tool
Update an existing tag belonging to an organization.
Behavior: Idempotent
| Argument | Type | Required | Description |
|---|---|---|---|
tag_id |
integer | Yes | The ID of the tag to update. |
name |
string | Yes | The new name of the tag. Must be unique within the organization. |
color |
string (red, orange, yellow, green, cyan, teal, blue, indigo, purple, fuchsia, pink, zinc) |
No | The new color of the tag. Leave empty to keep the current color. |
delete-tag-tool
Delete a tag belonging to an organization.
Behavior: Destructive, Idempotent
| Argument | Type | Required | Description |
|---|---|---|---|
tag_id |
integer | Yes | The ID of the tag to delete. |
Campaign sources
list-campaign-sources-tool
List the campaign sources belonging to an organization.
Behavior: Read-only
Arguments: pagination only.
get-campaign-source-tool
Get a single campaign source belonging to an organization.
Behavior: Read-only
| Argument | Type | Required | Description |
|---|---|---|---|
campaign_source_id |
integer | Yes | The ID of the campaign source to retrieve. |
create-campaign-source-tool
Create a new campaign source (utm_source) in an organization.
Behavior: Writes data
| Argument | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | The name of the campaign source. Must be unique within the organization. |
update-campaign-source-tool
Update an existing campaign source belonging to an organization.
Behavior: Idempotent
| Argument | Type | Required | Description |
|---|---|---|---|
campaign_source_id |
integer | Yes | The ID of the campaign source to update. |
name |
string | Yes | The new name of the campaign source. Must be unique within the organization. |
delete-campaign-source-tool
Delete a campaign source belonging to an organization.
Behavior: Destructive, Idempotent
| Argument | Type | Required | Description |
|---|---|---|---|
campaign_source_id |
integer | Yes | The ID of the campaign source to delete. |
Campaign mediums
list-campaign-mediums-tool
List the campaign mediums belonging to an organization.
Behavior: Read-only
Arguments: pagination only.
get-campaign-medium-tool
Get a single campaign medium belonging to an organization.
Behavior: Read-only
| Argument | Type | Required | Description |
|---|---|---|---|
campaign_medium_id |
integer | Yes | The ID of the campaign medium to retrieve. |
create-campaign-medium-tool
Create a new campaign medium (utm_medium) in an organization.
Behavior: Writes data
| Argument | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | The name of the campaign medium. Must be unique within the organization. |
update-campaign-medium-tool
Update an existing campaign medium belonging to an organization.
Behavior: Idempotent
| Argument | Type | Required | Description |
|---|---|---|---|
campaign_medium_id |
integer | Yes | The ID of the campaign medium to update. |
name |
string | Yes | The new name of the campaign medium. Must be unique within the organization. |
delete-campaign-medium-tool
Delete a campaign medium belonging to an organization.
Behavior: Destructive, Idempotent
| Argument | Type | Required | Description |
|---|---|---|---|
campaign_medium_id |
integer | Yes | The ID of the campaign medium to delete. |
Links
list-links-tool
List the links belonging to an organization, optionally filtered by domain.
Behavior: Read-only
| Argument | Type | Required | Description |
|---|---|---|---|
domain_id |
integer | No | Optionally filter links to a single domain. |
view |
string (summary, full) |
No | How much of each link to return. "summary" gives the domain, destination, slug, short link, description, tags, clicks, campaign source and medium, active state and creation date. "full" adds the platform redirects, schedule, expiry and remaining campaign fields, which are unset on most links. Use "summary" unless you need one of the fields only "full" carries. Default: full. |
This tool also accepts the pagination arguments.
get-link-tool
Get a single link belonging to an organization.
Behavior: Read-only
| Argument | Type | Required | Description |
|---|---|---|---|
link_id |
integer | Yes | The ID of the link to retrieve. |
create-link-tool
Create a new short link in an organization. A random slug is generated when none is provided.
Behavior: Writes data
| Argument | Type | Required | Description |
|---|---|---|---|
domain_id |
integer | Yes | The ID of the domain to create the link on. |
url |
string | Yes | The destination URL the short link redirects to. |
slug |
string | No | Optional custom slug. Must be unique within the domain. A random slug is generated when omitted. |
description |
string | No | Optional description of the link. |
tags |
array of integers | No | Optional IDs of tags to attach to the link. |
campaign_source_id |
integer | No | Optional campaign source (utm_source) ID. |
campaign_medium_id |
integer | No | Optional campaign medium (utm_medium) ID. |
campaign_id |
string | No | Optional utm_id value. |
campaign_name |
string | No | Optional utm_campaign value. |
campaign_term |
string | No | Optional utm_term value. |
campaign_content |
string | No | Optional utm_content value. |
schedule |
boolean | No | Whether the link only becomes active at a scheduled time. |
schedule_at |
string | No | When the link becomes active, formatted as "d/m/Y H:i". Required when schedule is true. |
schedule_url |
string | No | Optional URL to redirect to before the scheduled time. |
expires |
boolean | No | Whether the link expires at a given time. |
expires_at |
string | No | When the link expires, formatted as "d/m/Y H:i". Required when expires is true. |
expires_url |
string | No | Optional URL to redirect to after expiration. |
protect |
boolean | No | Whether the link is password protected. |
ios |
boolean | No | Whether iOS visitors are redirected to a dedicated URL. |
ios_url |
string | No | The URL for iOS visitors. Required when ios is true. |
android |
boolean | No | Whether Android visitors are redirected to a dedicated URL. |
android_url |
string | No | The URL for Android visitors. Required when android is true. |
windows |
boolean | No | Whether Windows visitors are redirected to a dedicated URL. |
windows_url |
string | No | The URL for Windows visitors. Required when windows is true. |
macos |
boolean | No | Whether macOS visitors are redirected to a dedicated URL. |
macos_url |
string | No | The URL for macOS visitors. Required when macos is true. |
linux |
boolean | No | Whether Linux visitors are redirected to a dedicated URL. |
linux_url |
string | No | The URL for Linux visitors. Required when linux is true. |
update-link-tool
Update an existing link belonging to an organization. Only the provided fields are changed.
Behavior: Idempotent
| Argument | Type | Required | Description |
|---|---|---|---|
link_id |
integer | Yes | The ID of the link to update. |
url |
string | No | The new destination URL the short link redirects to. |
slug |
string | No | The new slug. Must be unique within the domain. |
description |
string | No | The new description of the link. |
is_active |
boolean | No | Whether the link is active. |
tags |
array of integers | No | IDs of tags to attach to the link. Replaces the current tags. |
campaign_source_id |
integer | No | The new campaign source (utm_source) ID. |
campaign_medium_id |
integer | No | The new campaign medium (utm_medium) ID. |
campaign_id |
string | No | The new utm_id value. |
campaign_name |
string | No | The new utm_campaign value. |
campaign_term |
string | No | The new utm_term value. |
campaign_content |
string | No | The new utm_content value. |
schedule |
boolean | No | Whether the link only becomes active at a scheduled time. |
schedule_at |
string | No | When the link becomes active, formatted as "d/m/Y H:i". Required when schedule is true. |
schedule_url |
string | No | URL to redirect to before the scheduled time. |
expires |
boolean | No | Whether the link expires at a given time. |
expires_at |
string | No | When the link expires, formatted as "d/m/Y H:i". Required when expires is true. |
expires_url |
string | No | URL to redirect to after expiration. |
protect |
boolean | No | Whether the link is password protected. |
ios |
boolean | No | Whether iOS visitors are redirected to a dedicated URL. |
ios_url |
string | No | The URL for iOS visitors. Required when ios is true. |
android |
boolean | No | Whether Android visitors are redirected to a dedicated URL. |
android_url |
string | No | The URL for Android visitors. Required when android is true. |
windows |
boolean | No | Whether Windows visitors are redirected to a dedicated URL. |
windows_url |
string | No | The URL for Windows visitors. Required when windows is true. |
macos |
boolean | No | Whether macOS visitors are redirected to a dedicated URL. |
macos_url |
string | No | The URL for macOS visitors. Required when macos is true. |
linux |
boolean | No | Whether Linux visitors are redirected to a dedicated URL. |
linux_url |
string | No | The URL for Linux visitors. Required when linux is true. |
delete-link-tool
Delete a link belonging to an organization.
Behavior: Destructive, Idempotent
| Argument | Type | Required | Description |
|---|---|---|---|
link_id |
integer | Yes | The ID of the link to delete. |
get-link-qr-code-tool
Get the QR code for a link, as a PNG image plus the URL it encodes.
Behavior: Read-only
| Argument | Type | Required | Description |
|---|---|---|---|
link_id |
integer | Yes | The ID of the link to generate a QR code for. |
list-link-clicks-tool
List the recorded clicks for a link, subject to the organization's analytics retention period.
Behavior: Read-only
| Argument | Type | Required | Description |
|---|---|---|---|
link_id |
integer | Yes | The ID of the link to retrieve clicks for. |
This tool also accepts the pagination arguments.
Are you an agent? Read this page as Markdown: /api/v1/docs/mcp/tools