Docs / MCP server

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-tool accepts an optional organization_id argument (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) and per_page (integer, 1 to 100, default 20). Their response includes a meta object with current_page, last_page and total.
  • Responses: tools return structured JSON with the result in a data key. Delete tools return a short confirmation text.
  • Dates: date arguments use the format d/m/Y H:i, for example 31/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.

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 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 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 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 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 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 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