Skip to main content
Glama

Surli MCP

Server Details

Create and manage short links from ChatGPT, Claude, Cursor and other MCP-compatible AI tools using Surli. Supports OAuth authentication, custom aliases, destination updates, password protection, bulk shortening and link management.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.9% over 31 days
Last Tested
Transport
Streamable HTTP · MCP 2024-11-05
URL

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct resource or action: creation, retrieval, account limits, and two separate update operations for alias and destination. No overlap or ambiguity between tools.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with lowercase and underscores (create_short_link, get_account_limits, get_short_link, update_alias, update_destination). The pattern is uniform and predictable.

Tool Count5/5

Five tools is well-scoped for a URL shortener service, covering the core operations without bloat. Each tool earns its place and the set feels appropriately sized.

Completeness3/5

The set covers create, read, and update operations, but lacks a delete or list tool. For a short-link lifecycle, deletion (and possibly listing all links) is a notable gap that agents may need to work around.

Available Tools

5 tools
get_account_limitsA
Read-onlyIdempotent
Inspect

Check current user tariff plan and available short link limits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
planYesCurrent account tariff plan (e.g. limited, unlimited)
usedYesNumber of short links used in the current plan period
limitYesTotal short link quota for the plan period (-1 = unlimited)
alias_maxNoMaximum custom alias updates allowed (0 if not supported by plan)
remainingYesNumber of short links remaining (-1 = unlimited)
upgrade_urlNoURL to upgrade the tariff plan
user_messageNoHuman-readable summary of plan usage

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds specific details about what is checked (tariff plan and short link limits), which enriches the behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant words. It states the verb first and the precise resources, making it directly actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an existing output schema, no parameters, and a clear description of what is checked, the tool is complete. An agent can correctly invoke it without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so schema coverage is trivially 100%. The baseline for 0-parameter tools is 4. The description adds no parameter info (none needed) and remains sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Check') and clearly identifies the resources ('current user tariff plan' and 'available short link limits'). This distinguishes it from siblings like create_short_link or update_alias, which are action-oriented. An agent can immediately understand the tool's scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a query for checking limits but does not explicitly state when to use it versus alternatives. It does not mention exclusions or recommend using it before link creation. While context suggests it, explicit guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_aliasA
DestructiveIdempotent
Inspect

Update the custom alias of an existing short link (requires supported plan).

ParametersJSON Schema
NameRequiredDescriptionDefault
surlYesThe current short URL or alias
new_aliasYesThe desired new custom alias

Output Schema

ParametersJSON Schema
NameRequiredDescription
short_urlYesThe short URL reflecting the new alias
user_messageYesHuman-readable confirmation or error message
dashboard_urlNoLink to manage this short URL in the Surli dashboard

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey the destructive, non-read-only, idempotent nature of the operation, so the description need not repeat that. It adds the 'requires supported plan' plan-gating constraint, but does not go further into side effects such as the old alias becoming invalid or possible uniqueness conflicts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence with no filler; the key action and the plan requirement are both front-loaded. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with full schema coverage, an output schema, and useful annotations, the description is nearly complete. It includes the plan prerequisite and existing-link scope; only a brief note about the fate of the old alias or uniqueness constraints would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are fully documented in the input schema (100% coverage), so the baseline of 3 applies. The description adds only that the alias belongs to an existing short link, which is a modest elaboration over the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('Update'), a precise target ('custom alias of an existing short link'), and a constraint ('requires supported plan'). It is easy to distinguish from siblings like update_destination, which targets the destination URL rather than the alias.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: the operation applies to an existing short link and requires a supported plan, which implies it is not for creating a link and not available on all plans. It does not explicitly name alternatives or state when not to use it, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_destinationA
DestructiveIdempotent
Inspect

Update the target destination URL of an existing short link.

ParametersJSON Schema
NameRequiredDescriptionDefault
surlYesThe short URL or alias to update
new_destination_urlYesThe new destination URL

Output Schema

ParametersJSON Schema
NameRequiredDescription
short_urlYesThe short URL that was updated
user_messageNoHuman-readable confirmation message
dashboard_urlNoLink to manage this short URL in the Surli dashboard
destination_urlYesThe newly set destination URL

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the operation is write-capable (readOnlyHint false), destructive (destructiveHint true), and idempotent (idempotentHint true). The description adds that it targets an existing short link, clarifying it modifies rather than creates or deletes the link itself, but it does not go beyond that to describe side effects or reversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. Every word contributes to identifying the action and target, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With fully described parameters, annotations covering safety, and an output schema present, the description is adequate for an agent to invoke the tool correctly. The only notable gap is the lack of explicit guidance on choosing this tool over update_alias, which is more a usage guideline nuance than a missing critical detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters ('surl' and 'new_destination_url') are clearly explained in the schema. The description adds no additional meaning beyond restating the operation, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb ('update') and resource ('target destination URL of an existing short link'), making the operation unambiguous. It implicitly distinguishes itself from the sibling 'update_alias' by referencing the destination URL rather than the alias.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use the tool—when the destination URL of an existing short link needs to be changed. However, it does not explicitly mention alternatives or explain when not to use it (e.g., when updating the alias instead), leaving the distinction from update_alias to inference.

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. 5 tool updates
    • Changedcreate_short_link1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "dashboard_url": {
        +      "description": "Link to manage this short URL in the Surli dashboard",
        +      "type": "string"
        +    },
        +    "destination_url": {
        +      "description": "The destination URL the short link points to",
        +      "type": "string"
        +    },
        +    "limit": {
        +      "description": "Total short link quota for the plan period (-1 = unlimited)",
        +      "type": "integer"
        +    },
        +    "plan": {
        +      "description": "Current account tariff plan (e.g. limited, unlimited)",
        +      "type": "string"
        +    },
        +    "remaining": {
        +      "description": "Number of short links remaining (-1 = unlimited)",
        +      "type": "integer"
        +    },
        +    "short_url": {
        +      "description": "The newly created short URL",
        +      "type": "string"
        +    },
        +    "used": {
        +      "description": "Number of short links used in the current plan period",
        +      "type": "integer"
        +    },
        +    "user_message": {
        +      "description": "Human-readable status message",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "short_url",
        +    "destination_url"
        +  ],
        +  "type": "object"
        +}
    • Changedget_account_limits1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "alias_max": {
        +      "description": "Maximum custom alias updates allowed (0 if not supported by plan)",
        +      "type": "integer"
        +    },
        +    "limit": {
        +      "description": "Total short link quota for the plan period (-1 = unlimited)",
        +      "type": "integer"
        +    },
        +    "plan": {
        +      "description": "Current account tariff plan (e.g. limited, unlimited)",
        +      "type": "string"
        +    },
        +    "remaining": {
        +      "description": "Number of short links remaining (-1 = unlimited)",
        +      "type": "integer"
        +    },
        +    "upgrade_url": {
        +      "description": "URL to upgrade the tariff plan",
        +      "type": "string"
        +    },
        +    "used": {
        +      "description": "Number of short links used in the current plan period",
        +      "type": "integer"
        +    },
        +    "user_message": {
        +      "description": "Human-readable summary of plan usage",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "plan",
        +    "limit",
        +    "used",
        +    "remaining"
        +  ],
        +  "type": "object"
        +}
    • Changedget_short_link1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "dashboard_url": {
        +      "description": "Link to manage this short URL in the Surli dashboard",
        +      "type": "string"
        +    },
        +    "destination_url": {
        +      "description": "The current destination URL for this short link",
        +      "type": "string"
        +    },
        +    "short_url": {
        +      "description": "The short URL that was looked up",
        +      "type": "string"
        +    },
        +    "user_message": {
        +      "description": "Human-readable summary of the link status",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "short_url",
        +    "destination_url"
        +  ],
        +  "type": "object"
        +}
    • Changedupdate_alias1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "dashboard_url": {
        +      "description": "Link to manage this short URL in the Surli dashboard",
        +      "type": "string"
        +    },
        +    "short_url": {
        +      "description": "The short URL reflecting the new alias",
        +      "type": "string"
        +    },
        +    "user_message": {
        +      "description": "Human-readable confirmation or error message",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "short_url",
        +    "user_message"
        +  ],
        +  "type": "object"
        +}
    • Changedupdate_destination1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "dashboard_url": {
        +      "description": "Link to manage this short URL in the Surli dashboard",
        +      "type": "string"
        +    },
        +    "destination_url": {
        +      "description": "The newly set destination URL",
        +      "type": "string"
        +    },
        +    "short_url": {
        +      "description": "The short URL that was updated",
        +      "type": "string"
        +    },
        +    "user_message": {
        +      "description": "Human-readable confirmation message",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "short_url",
        +    "destination_url"
        +  ],
        +  "type": "object"
        +}
  2. 5 tool updates
    • First observedcreate_short_link
    • First observedget_account_limits
    • First observedget_short_link
    • First observedupdate_alias
    • First observedupdate_destination

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    24 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources