KooLink URL Shortener
Server Details
Shorten any long URL into a clean kool.ink link. Free, unlimited, no signup. AI-agent ready.
Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 82.3% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
- Repository
- KooLink/koolink-cli
- GitHub Stars
- 0
- Server Listing
- koolink
TDQS
Scored across 3 tools
Each tool targets a distinct operation: creating a short link, listing existing links, and retrieving analytics for a specific link. There is no meaningful overlap or ambiguity between them.
shorten_url and list_links follow a clear verb_noun pattern, but link_stats deviates by using noun_noun instead of something like get_link_stats. Overall the names are still predictable and readable.
Three tools is appropriate for a focused URL shortener and analytics service. Each tool covers a core user need without redundancy or bloat.
The core workflows—creating, listing, and analyzing links—are covered. Missing delete or update operations are minor gaps since the primary purpose of shortening and viewing performance is satisfied.
Available Tools
3 toolslink_statsAInspect
Get view analytics for one of the user's own KooLink short links: total and valid (fraud-filtered) views, breakdowns by device, country and referrer, plus a trailing 7-day trend. Use this to answer 'how is my link performing'.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The short code (the part after kool.ink/). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It adds useful behavioral context: the link must be the user's own, and views are fraud-filtered. However, it does not disclose authentication requirements, error behavior for invalid codes, or whether the operation requires any special permissions.
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 compact and information-dense: purpose, scope, included metrics, and the intended user question are all covered in two sentences. Key facts are front-loaded and no words are wasted.
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 single-param, read-only analytics tool without an output schema, the description adequately explains what data will be returned and what the param means. It could be more complete by noting what happens for invalid/unknown codes or if authorization is required, but those are secondary for selecting and invoking the tool.
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% and the schema already documents 'code' as the short code. The description adds practical meaning beyond the schema by specifying 'the part after kool.ink/', making the expected value format concrete and unambiguous.
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?
States the specific verb 'Get view analytics' and the resource (the user's own KooLink short links). Names the concrete data returned: total/valid views, device/country/referrer breakdowns, and a 7-day trend, which clearly distinguishes it from the sibling tools list_links and shorten_url.
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?
Provides an explicit use case: 'Use this to answer how is my link performing.' This gives clear context for when to invoke. It does not explicitly name alternatives or exclusions, but the intended scenario is obvious against the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_linksAInspect
List the user's short links with their valid view counts, most recent first. Useful to survey overall link performance or to find a code to dig into with link_stats.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max links to return (1-100, default 20). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It reveals the returned data includes valid view counts, that results are scoped to the user's links, and that they are ordered most recent first. This is sufficient for a simple read-only listing tool, though it does not describe edge cases like empty results or pagination.
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, no filler. The first sentence states the core behavior and ordering; the second provides the use case and sibling linkage. The most important information is front-loaded and every sentence earns its place.
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 low-complexity tool with one optional parameter and no output schema, the description is nearly complete: it covers scope, content, ordering, and intended use. A minor gap is that it does not describe the exact response shape, but the listing nature of the tool makes that less critical.
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 schema already fully documents the single limit parameter with range and default, so the description adds no parameter-level meaning. Baseline 3 applies because the schema coverage is 100% and the description doesn't need to compensate.
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 uses a specific verb and resource: 'List the user's short links with their valid view counts, most recent first.' It clearly states what is returned and the ordering, and it distinguishes itself from sibling link_stats by framing list_links as the survey-level tool and link_stats as the per-code deep-dive tool.
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 second sentence gives actionable guidance: use this tool 'to survey overall link performance or to find a code to dig into with link_stats.' This implies the when-to-use and points to a sibling alternative. It does not explicitly mention shorten_url or exclusions, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shorten_urlBInspect
Shorten a long URL using KooLink and return a compact kool.ink short link. Use this whenever the user wants a shortened URL, a tidy link to share, or a redirect for a long destination.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The destination URL to shorten (http or https). | |
| label | No | Optional label for the API key owner's records. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations provided, so the description carries the full burden of behavioral disclosure. The description indicates this is a creation operation (shortening a URL) and mentions the return of a short link, but it does not disclose potential side effects (e.g., the link is stored), any rate limits, or whether the label is required for tracking. This is a significant gap for a tool that creates a resource.
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 concise: one sentence for the function and one for usage guidance. It front-loads the core action ('Shorten a long URL using KooLink') and then explains when to use it. There is no unnecessary filler, but it could be slightly more structured by separating the usage guidance clearly. Overall, it is efficient and informative.
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 that there is no output schema, the description should clarify what the tool returns beyond just 'a compact kool.ink short link.' It does not mention whether the response includes additional data (e.g., the original URL, expiry, or labels). Since this is a creation tool (non-read-only) with no annotations, more detail on side effects, persistence, and the exact return format would be helpful. The description is adequate but not complete for an agent to anticipate the tool's full behavior.
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 description coverage is 100%, meaning both parameters (url and label) are described in the schema. The description does not add much beyond what the schema already provides; it confirms that the 'url' is the destination to shorten, but the schema already states that. The label's purpose is adequately explained in the schema as 'Optional label for the API key owner's records.' Thus, the description adds minimal value, but the schema covers the semantics, so a baseline 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's function: it shortens a URL using KooLink and returns a kool.ink short link. It distinguishes itself from siblings by focusing on the creation of a short link, whereas siblings likely handle statistics and listing. However, it does not explicitly mention the sibling tool names, so some distinction is implicit rather than explicit.
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 provides explicit usage context: 'Use this whenever the user wants a shortened URL, a tidy link to share, or a redirect for a long destination.' This gives clear guidance on when to invoke the toolcheduling, though it does not discuss situations when NOT to use it (e.g., when only stats are needed). The mention of alternatives is absent, but the context signals list sibling tools, so an agent can infer the distinction.
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.
1 tool update
- Changed
shorten_url1 field changed- removed
Input schema / properties / handleRemoved value: -{ - "description": "Optional branded short code, e.g. \"@chillguyhk\". Letters/digits/underscores after the @, 2-30 chars.", - "type": "string" -}
3 tool updates
- First observed
link_stats - First observed
list_links - First observed
shorten_url
Related MCP Connectors
Free URL shortener: manage short links, QR codes and click analytics from AI clients.
Short-link service embedded in your AI workflow — shorten links, track campaigns, read stats.
Create short links, QR codes, UTM templates, vCards, and landing pages from your AI assistant.
Short links, QR images + tracking for agents. Docs free; tool calls need an account.
Related MCP Servers
- AlicenseAqualityDmaintenanceEffortlessly create clean, elegant links in bulk — powered by AI.12 npmJavaScriptMIT
- AlicenseAqualityDmaintenanceGenerate styled QR codes, manage dynamic short links with click analytics, and publish micro-landing pages via AI agents.1933 npm1MIT
- AlicenseNot gradedqualityDmaintenanceAffilio.link URL shortener — shorten affiliate links, get QR codes, powered by Affilio's affiliate link management platform.Apache 2.0
- 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.63 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.