Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

com.mcparmory/linkly

PYPI · MCPARMORY-LINKLY · 2 COMPONENTS · SCANNED SEP 20

Create short links, manage domains, and track click analytics

−15 this week 60 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security37
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Install-script risk not yet assessed.Unverified
  • 2 of 41 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
Schema Quality & AI Usability70
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3167 tokens (~175/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
  • Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the com.mcparmory/linkly MCP server?

com.mcparmory/linkly runs locally as a PyPI package, launched with uvx mcparmory-linkly. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · mcparmory-linkly

# add to Claude Code
claude mcp add com-mcparmory-linkly -- uvx mcparmory-linkly
// .cursor/mcp.json
{
  "mcpServers": {
    "com-mcparmory-linkly": {
      "command": "uvx",
      "args": [
        "mcparmory-linkly"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-mcparmory-linkly": {
      "command": "uvx",
      "args": [
        "mcparmory-linkly"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add com-mcparmory-linkly -- uvx mcparmory-linkly
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-mcparmory-linkly": {
      "type": "local",
      "command": [
        "uvx",
        "mcparmory-linkly"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-mcparmory-linkly --command uvx --arg mcparmory-linkly
# ~/.hermes/config.yaml
mcp_servers:
  com-mcparmory-linkly:
    command: "uvx"
    args: ["mcparmory-linkly"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-mcparmory-linkly": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "mcparmory-linkly"
      ]
    }
  }
}
# add to Vellum
assistant mcp add com-mcparmory-linkly -t stdio -c uvx -a mcparmory-linkly
// mcp.json
{
  "mcpServers": {
    "com-mcparmory-linkly": {
      "command": "uvx",
      "args": [
        "mcparmory-linkly"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 −18
    • Malware scan: pass → unverified security
    • Stability: pass → 0.80 functional
  • 17 Sept 26 +15
    • Malware scan: unverified → pass security
    • Stability: 0.97 → pass security
  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 −14
    • Malware scan: pass → unverified security
  • 13 Sept 26 +15
    • Malware scan: unverified → pass security
  • 12 Sept 26 −14
    • Malware scan: pass → unverified security
  • 11 Sept 26 −3
    • Stability: pass → 0.80 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/mcparmory-linkly@1.0.3

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Dependencies 41 packages
Packages resolved 41
Stale 1
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 18 exposed · ~3,167 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_domain_to_workspace ~70

Add a new custom domain to your workspace. Ensure DNS CNAME record configuration is completed before adding the domain.

NameTypeReqDescription
namestringThe name of the custom domain to add to your workspace.
workspace_idintegeryesThe unique identifier of the workspace where the domain will be added.

No output schema declared.

No examples provided.

add_domain_to_workspace_by_id ~91

Add a custom domain to a workspace. The domain must have a CNAME record configured in DNS before being added.

NameTypeReqDescription
namestringyesThe fully qualified domain name to add (e.g., links.example.com). Ensure the corresponding CNAME record is configured in your DNS provider before adding.
workspace_idstringyesThe unique identifier of the workspace where the domain will be added.

No output schema declared.

No examples provided.

create_or_update_link ~599

Create a new shortened link or update an existing one. Provide `url` and `workspace_id` to create; provide `id` and fields to update. Supports custom slugs, UTM parameters, tracking pixels, Open Graph metadata, and conditional redirect rules.

NameTypeReqDescription
block_botsbooleanPrevent automated bots and crawlers from accessing this link.
body_tagsstringCustom HTML tags to inject into the page body for tracking or functionality purposes.
cloakingbooleanEnable URL cloaking to hide the destination URL from users and analytics.
deletedbooleanMark the link as deleted. Set to true to soft-delete without removing the record.
enabledbooleanEnable or disable the link. Disabled links will not redirect.
fb_pixel_idstringFacebook Pixel ID for conversion tracking and audience building.
forward_paramsbooleanForward query parameters from the shortened link to the destination URL.
ga4_tag_idstringGoogle Analytics 4 measurement ID for tracking link performance.
gtm_idstringGoogle Tag Manager container ID for advanced event tracking and tag management.
head_tagsstringCustom HTML tags to inject into the page head for scripts, metadata, or tracking.
hide_referrerbooleanHide the HTTP referrer header when redirecting to prevent the destination from seeing the source.
idintegerUnique identifier of the link to update. Required when updating an existing link; omit when creating new.
linkify_wordsstringComma-separated list of words to automatically convert into links within the destination page content.
namestringHuman-readable name or title for the link to aid organization and identification.
notestringInternal note or memo for reference; not visible to end users.
og_descriptionstringOpen Graph description displayed when the link is shared on social media platforms.
og_imagestringOpen Graph image URL displayed when the link is shared on social media platforms.
og_titlestringOpen Graph title displayed when the link is shared on social media platforms.
replacementsstringString-encoded replacement rules for dynamic URL parameter substitution or content modification.
rulesarrayArray of conditional redirect rules that determine the destination URL based on user attributes, device type, or other criteria. Rules are evaluated in order.
slugstringCustom URL slug for the shortened link. If omitted, a random slug is generated automatically.
spambooleanMark the link as spam or suspicious content.
tiktok_pixel_idstringTikTok Pixel ID for conversion tracking and audience building on TikTok.
urlstringDestination URL to redirect to. Required when creating a new link; must be a valid URI.
workspace_idintegerWorkspace ID

No output schema declared.

No examples provided.

create_or_update_link_batch ~746

Create a new link or update an existing one in a workspace. Include an 'id' field to update an existing link, or omit it to create a new one. Supports batch operations by accepting an array of links.

NameTypeReqDescription
block_botsbooleanWhen enabled, blocks traffic from known bots and automated crawlers.
body_tagsstringCustom HTML tags to inject into the body section of the destination page.
cloakingbooleanWhen enabled, hides the actual destination URL and displays a cloaked URL instead.
domain_idintegerNumeric identifier of the domain to use for this link. Use this as an alternative to specifying a domain name.
enabledbooleanControls whether the link is active and functional. Set to false to disable without deleting.
expiry_clicksintegerNumber of clicks after which the link automatically expires and becomes inactive.
expiry_datetimestringDate and time when the link automatically expires and becomes inactive. Use ISO 8601 format.
expiry_destinationstringURL to redirect users to after the link expires.
fb_pixel_idstringFacebook Pixel ID for tracking conversions on Facebook.
forward_paramsbooleanWhen enabled, query parameters from the shortened link are automatically forwarded to the destination URL.
ga4_tag_idstringGoogle Analytics 4 measurement ID for tracking events and conversions.
gtm_idstringGoogle Tag Manager container ID for tracking and analytics.
head_tagsstringCustom HTML tags to inject into the head section of the destination page.
hide_referrerbooleanWhen enabled, prevents the referrer information from being passed to the destination URL.
idintegerNumeric identifier of an existing link to update. Omit this field to create a new link.
linkify_wordsstringSpecific words within the link that should be converted into clickable links.
namestringHuman-readable nickname or label for this link to help identify it in your workspace.
notestringPrivate internal note for reference; not visible to end users.
og_descriptionstringOpen Graph description text displayed when the link is shared on social media.
og_imagestringURL of an image to display when the link is shared on social media.
og_titlestringOpen Graph title text displayed when the link is shared on social media.
public_analyticsbooleanWhen enabled, analytics data for this link is publicly accessible without authentication.
qr_stylesobjectObject containing styling options for QR codes generated from this link, such as colors and patterns.
replacementsstringURL parameter replacements to transform or modify query parameters before forwarding to the destination.
rulesarrayArray of redirect rules that determine where users are sent based on conditions like device type, location, or custom parameters.
skip_social_crawler_trackingbooleanWhen enabled, prevents tracking of requests from social media crawlers and bots.
slugstringCustom URL slug for this link. Must start with a forward slash (/) and be unique within the workspace.
tiktok_pixel_idstringTikTok Pixel ID for tracking conversions on TikTok.
urlstringyesThe destination URL where users will be redirected. Must be a valid URI.
webhooksarrayArray of webhook URLs that receive notifications when link events occur, such as clicks or conversions.
workspace_idstringyesThe workspace identifier where the link will be created or updated.

No output schema declared.

No examples provided.

delete_domain ~70

Remove a custom domain from your workspace. Once deleted, any links using this domain will no longer be functional.

NameTypeReqDescription
domain_idstringyesThe unique identifier of the domain to be removed from the workspace.
workspace_idstringyesThe unique identifier of the workspace containing the domain to be deleted.

No output schema declared.

No examples provided.

delete_link ~61

Permanently delete a specific link from a workspace by its ID. This action cannot be undone.

NameTypeReqDescription
idintegeryesThe unique identifier of the link to delete.
workspace_idstringyesThe unique identifier of the workspace containing the link to delete.

No output schema declared.

No examples provided.

delete_links ~70

Permanently delete one or more links from a workspace by their IDs. This action cannot be undone.

NameTypeReqDescription
idsarrayArray of link IDs to delete. If not provided, no links will be deleted.
workspace_idstringyesThe unique identifier of the workspace containing the links to delete.

No output schema declared.

No examples provided.

delete_webhook_from_link ~99

Remove a webhook subscription from a link by unsubscribing the specified webhook URL. This operation permanently deletes the webhook subscription relationship.

NameTypeReqDescription
hook_idstringyesThe webhook URL to unsubscribe, provided in URL-encoded format (e.g., https%3A%2F%2Fhooks.example.com%2Fabc123).
link_idintegeryesThe unique identifier of the link from which to remove the webhook subscription.

No output schema declared.

No examples provided.

export_links ~97

Export all links in a workspace in JSON or CSV format, with optional filtering by search query.

NameTypeReqDescription
formatstringThe output format for the exported links. Choose between JSON (default) or CSV.
searchstringOptional search query to filter which links are included in the export. Only links matching the query will be returned.
workspace_idstringyesThe unique identifier of the workspace containing the links to export.

No output schema declared.

No examples provided.

get_click_counters_by_dimension ~275

Retrieve aggregated click analytics grouped by a specified dimension (such as country, platform, or browser). Returns click counts for each unique value within the selected dimension, with optional filtering by date range, country, and response format.

NameTypeReqDescription
counterstringyesThe dimension to group clicks by. Choose from: country (geographic location), platform (device type), browser (web browser), referer (HTTP referrer), isp (internet service provider), link_id (specifi…
countrystringFilter results to a specific country using its ISO 3166-1 alpha-2 country code (e.g., 'US', 'GB', 'DE'). If omitted, all countries are included.
endstringThe end date for filtering analytics data, specified in YYYY-MM-DD format. If omitted, defaults to the current date.
formatstringThe response format for the analytics data. Choose from JSON (default, structured format), CSV (comma-separated values), or TSV (tab-separated values).
startstringThe start date for filtering analytics data, specified in YYYY-MM-DD format. If omitted, defaults to the earliest available data.
workspace_idstringyesThe workspace identifier that contains the click analytics data.

No output schema declared.

No examples provided.

get_clicks_analytics ~420

Retrieve click analytics for a workspace with flexible filtering and aggregation options. Returns time-series data suitable for charting, with support for multiple output formats and pivot transformations.

NameTypeReqDescription
browserstringFilter results to clicks from a specific browser (e.g., Chrome, Firefox, Safari).
countrystringFilter results to clicks from a specific country using its ISO 3166-1 alpha-2 code (e.g., US, GB, DE).
endstringThe end date for filtering clicks, specified in ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ). If omitted, defaults to the current date.
formatstringSpecify the response format: 'json' (default), 'csv', or 'tsv'.
frequencystringThe time granularity for aggregating data points: 'day' (default) for daily buckets or 'hour' for hourly buckets.
ispstringFilter results to clicks from a specific Internet Service Provider.
pivotstringTransform the response into a matrix format where dates appear as rows and links as columns. When set to 'link_id', CSV/TSV responses include header rows with link name, full URL, and ID.
platformstringFilter results to clicks from a specific platform or operating system (e.g., Windows, Mac, iOS, Android).
refererstringFilter results to clicks originating from a specific referrer domain.
startstringThe start date for filtering clicks, specified in ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ). If omitted, defaults to the beginning of available data.
timezonestringThe timezone to apply for date and time calculations (e.g., America/New_York). Affects how dates are bucketed and displayed.
workspace_idstringyesThe unique identifier of the workspace to retrieve click analytics for.

No output schema declared.

No examples provided.

get_link ~41

Retrieve detailed information about a specific link by its unique identifier.

NameTypeReqDescription
idintegeryesThe unique identifier of the link to retrieve (e.g., 24).

No output schema declared.

No examples provided.

get_link_analytics ~75

Retrieve detailed information about a specific link, including click statistics, UTM parameters, and configuration settings.

NameTypeReqDescription
idstringyesThe unique identifier of the link to retrieve. Use the link ID provided when the link was created.
workspace_idstringWorkspace ID. Optional when using OAuth2 Bearer token.

No output schema declared.

No examples provided.

list_domains ~49

Retrieve all custom domains configured for a workspace. These domains can be used as targets when creating short links.

NameTypeReqDescription
workspace_idstringyesThe unique identifier of the workspace whose domains you want to list.

No output schema declared.

No examples provided.

list_links ~185

Retrieve a paginated list of all links in a workspace with support for searching, sorting, and filtering. Results include click statistics and link metadata for each entry.

NameTypeReqDescription
pageintegerThe page number for pagination, starting from 1. Defaults to the first page if not specified.
page_sizeintegerThe maximum number of links to return per page. Defaults to 1000 if not specified.
searchstringOptional search query to filter links by matching against link properties. Searches across relevant link fields to narrow results.
sort_bystringThe field name to sort results by. Common sortable fields include creation date, click count, and link name.
sort_dirstringThe sort direction for results: ascending or descending order.
workspace_idstringyesThe unique identifier of the workspace containing the links to retrieve.

No output schema declared.

No examples provided.

list_webhooks_for_link ~64

Retrieve all webhook subscriptions configured for a specific link. Returns a list of webhooks that are actively monitoring events for the given link.

NameTypeReqDescription
link_idintegeryesThe unique identifier of the link whose webhooks you want to retrieve. Must be a positive integer.

No output schema declared.

No examples provided.

list_workspaces ~34

Retrieve all workspaces accessible to the authenticated user. Use this operation to discover available workspace IDs for use in other API calls.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

update_domain_favicon ~121

Update the favicon URL for a custom domain within a workspace. The favicon will be displayed in browser tabs and bookmarks for the domain.

NameTypeReqDescription
favicon_urlstringA valid URI pointing to the favicon image file. Common formats include .ico, .png, and .svg. If omitted, the favicon will not be updated.
idstringyesThe unique identifier of the domain whose favicon should be updated. Typically a numeric ID.
workspace_idstringyesThe unique identifier of the workspace containing the domain. Typically a numeric ID.

No output schema declared.

No examples provided.

Common questions

What is the com.mcparmory/linkly MCP server?

com.mcparmory/linkly is an MCP server listed in the public MCP registry as com.mcparmory/linkly. Create short links, manage domains, and track click analytics. This page covers its PyPI package (mcparmory-linkly).

Is the com.mcparmory/linkly MCP server safe to use?

com.mcparmory/linkly scores 60 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the com.mcparmory/linkly MCP server expose?

com.mcparmory/linkly exposes 18 tools: add_domain_to_workspace, get_link, create_or_update_link, get_link_analytics, list_webhooks_for_link, and 13 more. Their descriptions and schemas cost roughly 3,167 tokens of context every time the server is loaded.

Is the com.mcparmory/linkly MCP server still maintained?

com.mcparmory/linkly is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.