@cliqo/mcp
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@cliqo/mcpshorten https://example.com to mylink"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@cliqo/mcp
A Model Context Protocol server for cliqo.link — a pay-per-use (credits) link shortener.
It lets any MCP client (Claude Desktop, Claude Code, etc.) create short links, list/get/revoke them, and check your remaining credit balance.
The server is a thin wrapper over the public cliqo v1 REST API — see the machine-readable reference at https://cliqo.link/llms.txt.
Prerequisites
Node.js >= 18
A cliqo API key. Create one in the dashboard under API keys — it is shown only once. The key's scopes determine which tools work:
links:read—list_links,get_linklinks:write—shorten_urllinks:delete—delete_linkbilling:read—get_credits
Related MCP server: Firelinks MCP Server
Tools
Tool | Description | Scope |
| Create a short link for a URL. Consumes one credit. |
|
| List your links (newest first). Optionally include revoked links or filter by tag. |
|
| Fetch a single link by its numeric id. |
|
| Revoke (delete) a link by id. Cannot be undone. |
|
| Check how many link credits remain. |
|
Usage
Set the CLIQO_API_KEY environment variable to your API key. The server speaks MCP over stdio.
Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"cliqo": {
"command": "npx",
"args": ["-y", "@cliqo/mcp"],
"env": {
"CLIQO_API_KEY": "your-api-key"
}
}
}
}Claude Code
claude mcp add cliqo --env CLIQO_API_KEY=your-api-key -- npx -y @cliqo/mcpRun directly
CLIQO_API_KEY=your-api-key npx -y @cliqo/mcpEnvironment variables
Variable | Required | Description |
| yes | Your cliqo API key, sent as a Bearer token. |
Development
npm install
npm run build # compile TypeScript to dist/
npm run watch # recompile on change
npm start # run the built serverThe source lives in src/:
client.ts— thin HTTP client for the cliqo REST API.index.ts— MCP server wiring and tool definitions.
License
MIT
Available Tools
5 toolsdelete_linkRevoke linkA
Revoke (delete) a short link by its numeric id. The short URL stops resolving. This cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The numeric id of the link to revoke. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the URL stops resolving and the action cannot be undone. This is sufficient for a simple deletion, though it could mention permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the action and result. No wasted words, easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description fully covers what, how, and side effects. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'id' described as 'numeric id of the link to revoke'. The description adds 'by its numeric id', but does not provide additional meaning beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool revokes/deletes a short link by numeric id, with a verb (Revoke/delete) and resource (short link). It distinguishes from siblings: get_link (read), list_links (list), shorten_url (create), get_credits (unrelated).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (delete a link permanently) and notes irreversibility. It does not explicitly state when not to use or list alternatives, but sibling names and context make this clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_creditsGet credit balanceA
Check how many link credits remain on your account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes a read-only check with no side effects, which is sufficient given no annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple read-only tool, though output format could be hinted for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Description adds no parameter info, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Check' and resource 'link credits', distinguishing it from sibling tools that operate on links.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when/why to use, but context of sibling tools makes it implicit that this is for checking credit balance before link operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_linkGet linkA
Fetch a single short link by its numeric id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The numeric id of the link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey behavioral traits. It indicates a non-destructive read operation, but it fails to mention potential error states (e.g., not found), response structure, or any rate limits. The bare minimum is covered, but additional context would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 9 words, efficiently conveying the essential purpose without extraneous information. It is front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is nearly complete. It explains what the tool does and how to identify the link. However, it could mention the return type (e.g., link object) to fully close the loop for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes the parameter 'id' as 'The numeric id of the link.' with 100% coverage. The description adds no extra meaning beyond what the schema already provides. Given full schema coverage, a score of 3 (baseline) is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch a single short link by its numeric id.' This specifies the verb (fetch), resource (single short link), and method of identification (numeric id). It effectively distinguishes from siblings like delete_link, list_links, and shorten_url, which operate on the same resource but with different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. The description implies usage when the numeric id is known, but it does not exclude scenarios where other tools would be more appropriate, such as listing all links or deleting a link. The lack of alternative suggestions or context-aware recommendations leaves the agent without clear boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_linksList linksC
List your short links (newest first). By default only active links are returned.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter to links with this exact tag name. | |
| includeRevoked | No | Include revoked/deleted links in the results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only mentions listing, ordering, and default filtering. It does not address authentication, rate limits, pagination, scope of 'your links', or whether deleted links are excluded by default other than via the parameter. This is insufficient for a list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each earning its place. The first front-loads purpose and ordering; the second adds the default filter. No redundancy or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is too sparse. It does not mention response format, pagination behavior, maximum results, or how to interpret the output. For a list tool retrieving multiple items, this leaves significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds minimal value: it hints at the default for includeRevoked ('By default only active links are returned'), but the parameter descriptions in schema already cover the functionality. No new semantic depth is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists short links, with ordering (newest first) and a default filter (active only). The verb 'List' and resource 'short links' are specific. However, it does not explicitly differentiate from the sibling tool 'get_link' (which retrieves a single link), though the collective purpose is distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_link' or 'shorten_url'. The description lacks exclusions or context for optimal use. It only states default behavior, not when the tool should or should not be invoked.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shorten_urlShorten URLB
Create a short link for a URL. Consumes one credit. Returns the created link including its short URL and id.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The destination URL to shorten. | |
| name | No | Optional human-friendly label for the link. | |
| utmSource | No | Optional utm_source value appended to the destination URL. | |
| utmCampaign | No | Optional utm_campaign value appended to the destination URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses credit consumption and return values, but omits behavioral details like idempotency (always creates new link), error handling for invalid URLs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundant information. First sentence states purpose, second sentence adds credit cost and return description. Well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters and no output schema, the description adequately covers purpose, cost, and return. However, it could mention validation behavior or uniqueness guarantee for URLs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description adds no additional meaning beyond what the input schema already provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create a short link), the resource (URL), and mentions credit consumption and return values. It effectively distinguishes from siblings as the only creation tool among delete, get, and list operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives (e.g., when to use list_links instead). It mentions credit cost but lacks explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.3.0- First observed
delete_link - First observed
get_credits - First observed
get_link - First observed
list_links - First observed
shorten_url
TDQS
Each tool has a clearly distinct purpose: delete, get credits, get a single link, list links, and shorten a URL. No overlap or ambiguity.
All tool names follow a consistent verb_noun snake_case pattern (e.g., delete_link, list_links, shorten_url), making them predictable and easy to understand.
With 5 tools, the set is well-scoped for a URL shortener service, covering the essential operations without being excessive or insufficient.
The tools provide complete CRUD for links (create, read, list, delete) plus a credit check, leaving no obvious gaps for the domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Create and manage short links, track clicks, and automate URL management
Create, manage and measure short links: branded domains, cookie-less analytics and QR codes
Short-link service embedded in your AI workflow — shorten links, track campaigns, read stats.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to create, manage, and analyze short URLs through complete URL shortening functionality. Supports batch operations, custom domains, click statistics, and comprehensive link management.6181MIT
- FlicenseNot gradedqualityDmaintenanceEnables interaction with the Firelinks link shortening platform to create and manage short links, track click statistics, manage custom domains, and compare analytics periods through natural language.3-
- AlicenseAqualityAmaintenanceEnables interaction with Linkly's URL shortener and link management platform. Supports creating and managing short links, viewing analytics, configuring custom domains and webhooks, and exporting click data.20531MIT
- AlicenseNot gradedqualityCmaintenanceConnects AI assistants to the Clypt Link Intelligence platform to shorten URLs, manage tags, and generate QR codes. It enables users to view link analytics and perform bulk link operations through natural language commands.79MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cliqo-link/cliqo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server