Skip to main content
Glama
kesslerio

YOURLS-MCP

by kesslerio

YOURLS-MCP

YOURLS URL 短縮を Claude Desktop と統合するためのモデル制御プロトコル (MCP) サーバー。

**著者:**マーティン・ケスラー

概要

YOURLS-MCPは、 Claude Desktopとセルフホスト型のYOURL短縮サービスインスタンス間のブリッジを構築します。設定が完了すると、ClaudeはYOURLSのインストール環境を使用してURLを自動的に短縮できるようになります。

Related MCP server: NotePlan MCP Server

特徴

  • YOURLSインスタンスを使用してURLを短縮する

  • 特定のキーワードでカスタム短縮URLを作成する

  • **重複 URL の処理:**同じリンク先 URL に対して複数の短縮 URL を作成します (YOURLS-MCP に固有)

  • 拡張された URL 情報と統計

  • データベース統計

  • プラグインのインテリジェントなフォールバック

  • 包括的なドキュメントとテストツール

クイックスタート

インストール

# Clone the repository
git clone https://github.com/kesslerio/yourls-mcp.git
cd yourls-mcp

# Install dependencies
npm install

構成

YOURLS-MCP インストールを指す Claude Desktop 構成ファイルを作成します。

{
  "mcpServers": {
    "yourls": {
      "command": "node",
      "args": [
        "/full/path/to/yourls-mcp/yourls-mcp.js"
      ],
      "env": {
        "YOURLS_API_URL": "https://your-yourls-domain.com/yourls-api.php",
        "YOURLS_AUTH_METHOD": "signature", 
        "YOURLS_SIGNATURE_TOKEN": "your-secret-signature-token"
      }
    }
  }
}

このファイルを Claude Desktop 構成ディレクトリに保存します。通常、次のディレクトリに保存されます。

  • macOS: ~/Library/Application Support/Claude/config.json

  • Windows: %APPDATA%\Claude\config.json

  • Linux: ~/.config/Claude/config.json

特徴

  • MCP による Claude Desktop とのシームレスな統合

  • Claude を通じて直接 URL を短縮する

  • 短縮URLを展開してリンク先を表示します

  • リンクのクリック統計を取得する

  • カスタムキーワードのサポート

  • 安全な署名ベースの認証

  • 環境変数の設定

設定オプション

Claude Desktop 構成では次の環境変数を設定できます。

変数

説明

デフォルト

必須

YOURLS_API_URL

YOURLS APIエンドポイントへのURL

-

はい

YOURLS_AUTH_METHOD

認証方法( signatureまたはpassword

signature

いいえ

YOURLS_SIGNATURE_TOKEN

署名ベースの認証のための秘密トークン

-

はい(署名認証を使用している場合)

YOURLS_USERNAME

パスワードベースの認証のユーザー名

-

はい(パスワード認証を使用している場合)

YOURLS_PASSWORD

パスワードベースの認証のパスワード

-

はい(パスワード認証を使用している場合)

YOURLS_SIGNATURE_TTL

署名の有効期間(秒単位)

43200(12時間)

いいえ

利用可能なMCPツール

YOURLS-MCP は、Claude に次のツールを提供します。

コアツール

1. URLを短縮する

YOURLS インスタンスを使用して長い URL を短縮します。

パラメータ:

  • url (必須): 短縮する長いURL

  • keyword (オプション):短縮URLのカスタムキーワード

  • title (オプション): URLのタイトル

2. 展開URL

短い URL を展開して元の長い URL を取得します。

パラメータ:

  • shorturl (必須): 展開する短縮URLまたはキーワード

3. url_stats

短縮 URL の統計を取得します。

パラメータ:

  • shorturl (必須): 統計情報を取得する短縮URLまたはキーワード

4. db_stats

YOURLS インスタンスのグローバル統計を取得します。

**パラメータ:**なし

5. カスタムURLを作成する

データベースに既に存在する URL の場合でも、特定のキーワードを含むカスタムの短縮 URL を作成します。

パラメータ:

  • url (必須): 短縮する対象のURL

  • keyword (必須): 短縮 URL のカスタム キーワード(例: bysha.pe/web の場合は「web」)

  • title (オプション): URLのタイトル

  • bypass_shortshort (オプション): すでに短縮された URL の短縮を防ぐ ShortShort プラグインをバイパスするかどうか (デフォルト: false)

  • force_url_modification (オプション): 同じ宛先に複数の短縮 URL を作成するために URL 変更アプローチの使用を強制するかどうか (デフォルト: false)

6. アナリティクスで短縮する

Google Analytics UTM パラメータを使用して長い URL を短縮します。

パラメータ:

  • url (必須): 短縮するURL

  • source (必須): UTM ソースパラメータ - トラフィックのソースを識別します(例:「google」、「newsletter」、「twitter」)

  • medium (必須): UTMメディアパラメータ - マーケティングメディアを識別します(例:「cpc」、「social」、「email」)

  • campaign (必須): UTM キャンペーンパラメータ - 特定のキャンペーンを識別します(例: 「summer_sale」、「product_launch」)

  • term (オプション):UTM用語パラメータ - 有料検索用語を識別します

  • content (オプション):UTMコンテンツパラメータ - 同じURLを指す広告やリンクを区別します

  • keyword (オプション):短縮URLのカスタムキーワード

  • title (オプション): URLのタイトル

プラグインベースのツール

7. url_analytics

指定した期間内の短縮URLの詳細なクリック分析を取得します。API ShortURL Analyticsプラグインのインストールが必要です。

パラメータ:

  • shorturl (必須): 分析情報を取得するための短縮URLまたはキーワード

  • date (必須): 分析の開始日(YYYY-MM-DD 形式)

  • date_end (オプション): 分析の終了日 (YYYY-MM-DD 形式) (指定されていない場合は開始日がデフォルトになります)

8. 契約URL

新しい短縮URLを作成せずに、URLが既に短縮されているかどうかを確認します。API Contractプラグインがインストールされている必要があります。

パラメータ:

  • url (必須): 短縮されているかどうかを確認するURL

9. 更新URL

既存の短縮URLを更新して、別のリンク先URLを指定します。API Edit URLプラグインがインストールされている必要があります。

パラメータ:

  • shorturl (必須): 更新する短縮URLまたはキーワード

  • url (必須): 新しいリンク先URL

  • title (オプション): オプションの新しいタイトル(既存のタイトルを保持する場合は「keep」、URL から取得する場合は「auto」)

10. キーワードの変更

既存の短縮URLのキーワードを変更します。API Edit URLプラグインがインストールされている必要があります。

パラメータ:

  • oldshorturl (必須): 既存の短縮URLまたはキーワード

  • newshorturl (必須): 使用する新しいキーワード

  • url (オプション): オプションの URL (指定されていない場合は、oldshorturl の URL が使用されます)

  • title (オプション): オプションの新しいタイトル(既存のタイトルを保持する場合は「keep」、URL から取得する場合は「auto」)

11. get_url_keyword

長いURLのキーワードを取得します。API Edit URLプラグインがインストールされている必要があります。

パラメータ:

  • url (必須): 検索する長いURL

  • exactly_one (オプション): false の場合、この URL のすべてのキーワードを返します (デフォルト: true)

12. 削除URL

短縮 URL を削除します。API削除プラグインがインストールされている必要があります。

パラメータ:

  • shorturl (必須): 削除する短縮URLまたはキーワード

13. リストURL

並べ替え、ページ区切り、フィルタリングオプション付きのURLリストを取得します。API List Extendedプラグインのインストールが必要です。

パラメータ:

  • sortby (オプション): 並べ替えるフィールド (キーワード、URL、タイトル、IP、タイムスタンプ、クリック数) (デフォルト: タイムスタンプ)

  • sortorder (オプション): ソート順 (ASC または DESC) (デフォルト: DESC)

  • offset (オプション):ページ区切りのオフセット(デフォルト:0)

  • perpage (オプション):1ページあたりの結果数(デフォルト:50)

  • query (オプション): キーワードでフィルタリングするためのオプションの検索クエリ

  • fields (オプション): 返されるフィールド (キーワード、URL、タイトル、タイムスタンプ、IP、クリック数) (デフォルト: すべてのフィールド)

14. QRコードを生成する

短縮URLのQRコードを生成します。YOURLS -IQRCodesプラグインがインストールされている必要があります。

パラメータ:

  • shorturl (必須): QRコードを生成するための短縮URLまたはキーワード

  • size (オプション): QRコードのサイズ(ピクセル単位)

  • border (オプション): QRコードの周囲の境界線の幅

  • ecc (オプション):エラー訂正レベル:L(低)、M(中)、Q(四分位)、またはH(高)

  • format (オプション):画像形式(png、jpg、svg など)

使用例

設定が完了すると、Claude は次のようなプロンプトで YOURLS ツールを使用できるようになります。

コア機能の例

  • 「この URL を短くしてください: https://example.com/very-long-url-that-needs-shortening

  • https://example.com/documentationのキーワード「docs」を含む短縮 URL を作成します」

  • 「shapescale.com を指すカスタム URL bysha.pe/web を設定します」

  • 「キーワード「docs」を使用して、ドキュメントのカスタム短縮 URL を作成します」

  • 「同じドキュメント URL に複数のキーワード (docs、docs2、docs3) を作成する」

  • 「UTMトラッキングパラメータを使用してキャンペーンの短縮URLを作成する」

  • 「Google アナリティクス トラッキングを使用してこのマーケティング URL を短縮します: source=newsletter、medium=email、campaign=summer_launch」

  • 「この短縮URLを展開してください: https://yourdomain.com/abc

  • 「私の短縮 URL https://yourdomain.com/abcは何回クリックされていますか?」

  • 「YOURLSインスタンスの統計情報を表示してください」

プラグインベースの機能の例

  • 「2025年1月の短縮URL「abc」の詳細な分析を教えてください」

  • 「2025年1月1日から2025年1月31日までのbysha.pe/abcのクリック統計を表示してください」

  • 「先月の私の短縮 URL「ウェブ」の毎日のトラフィックはどれくらいでしたか?」

  • 「この URL がすでに短縮されているかどうかを確認してください: https://example.com/page

  • https://example.com/pageの短縮 URL をすでに作成している人はいますか?」

  • 「短縮URL「docs」の宛先をhttps://example.com/new-documentationに更新します」

  • 「キーワード「docs」が指す場所を変更する」

  • 「短縮URLの名前を「docs」から「documentation」に変更します」

  • 「短縮 URL のキーワードを「docs」から「documentation」に変更します」

  • 「この長い URL: https://example.com/pageのキーワードは何ですか?」

  • https://example.com/pageのすべての短縮 URL を一覧表示します」

  • 「短縮URL「docs」を削除してください」

  • 「YOURLSインスタンスからキーワード「docs」を削除してください」

  • 「YOURLSデータベース内の最新の10個の短縮URLを表示してください」

  • 「クリック数順に並べた短縮URLをすべて一覧表示する」

  • 「「製品」を含む短縮URLを検索」

  • 「短縮URL「docs」のQRコードを生成する」

  • 「bysha.pe/webのQRコードを作成」

  • 「商品ページ用のエラー訂正率の高いQRコードを作成してください」

  • 「ランディングページのショートURLにもっと大きなQRコードが必要です。300ピクセルにしてください」

  • 「ドキュメントリンク用のSVG QRコードを生成する」

発達

# Clone the repository
git clone https://github.com/kesslerio/yourls-mcp.git
cd yourls-mcp

# Install dependencies
npm install

# For local testing, create a claude-local-config.json file:
{
  "mcpServers": {
    "yourls": {
      "command": "node",
      "args": [
        "/full/path/to/yourls-mcp/yourls-mcp.js"
      ],
      "env": {
        "YOURLS_API_URL": "https://your-yourls-domain.com/yourls-api.php",
        "YOURLS_AUTH_METHOD": "signature",
        "YOURLS_SIGNATURE_TOKEN": "your-secret-signature-token"
      }
    }
  }
}

# Start the server directly (for testing)
node yourls-mcp.js

仕組み

YOURLS-MCP は、Claude Desktop と YOURLS インスタンス間のブリッジとして機能します。

  1. Claude Desktopは必要に応じてYOURLS-MCPサーバーを起動します

  2. サーバーは環境変数から設定を読み取ります

  3. クロードがツールを呼び出すと、サーバーはYOURLSインスタンスに適切なAPI呼び出しを行います。

  4. 結果は構造化された形式でクロードに返されます

サーバーは、Model Context Protocol (MCP) 標準を使用して Claude Desktop と通信し、URL 短縮機能とのシームレスな統合と自然言語による対話を可能にします。

重複URLの処理

YOURLS-MCPは、同じリンク先URLに対して複数の短縮URLを作成する独自の機能を提供します。これはYOURLSではネイティブサポートされていません。この機能の詳細については、重複URL処理に関するドキュメントをご覧ください。

次の 2 つのアプローチがサポートされています。

  1. プラグインアプローチ(推奨):付属のForce Allow Duplicatesプラグインを使用して、真の重複URLを作成します。

  2. URL変更アプローチ(フォールバック):タイムスタンプパラメータを追加して、機能性を維持しながら各URLを技術的に一意にする

システムは YOURLS の設定に基づいて適切なアプローチを自動的に選択します。

YOURLSプラグインとの互換性

YOURLS-MCP は、標準の YOURLS インストールとさまざまなプラグインの両方で動作するように設計されており、プラグインが利用できない場合はフォールバックが組み込まれています。

フォールバック対応プラグイン

YOURLS-MCP には、プラグインがインストールされていない場合に拡張機能を実現するためのインテリジェントなフォールバックが含まれています。

  • APIショートURL分析:日付範囲の詳細なクリック統計

    • フォールバック動作: プラグインが利用できない場合は、コア YOURLS API を通じて基本的なクリック統計を提供します。

  • API 契約: URL を作成せずに存在するかどうかを確認する

    • フォールバック動作: コアYOURLS統計APIを使用してフィルタリングされた既存のURLを検索します

  • API 編集 URL : 短縮 URL の更新とキーワードの変更

    • フォールバック動作:

      • URLを更新する場合: 同じキーワードでURLを再作成しようとします

      • キーワードを変更する場合: 新しいキーワードで新しい短縮 URL を作成します (削除には API 削除プラグインが必要なので、古い URL は残ります)

      • URLキーワードを取得するには:フィルタリング機能を備えたコアYOURLS統計APIを使用します

  • API削除:短縮URLを削除する

    • フォールバック動作: 限定的 - コア YOURLS API が削除をサポートしていないため、削除にはプラグインが必要であるという情報を提供します

  • APIリスト拡張:並べ替えとフィルタリングによるURLリストの拡張

    • フォールバック動作: クライアント側の並べ替えとページ区切りを備えたコア YOURLS 統計 API を使用します

  • YOURLS-IQRCodes : 短縮URLからQRコードを生成する

    • フォールバック動作: なし - プラグインのインストールが必要

  • ShortShort : すでに短縮された URL を短縮しようとしたときにエラーを適切に処理します

    • 互換性: プラグインがインストールされているかどうかに関係なく、エラー処理が機能します

  • 既存の URL を許可: YOURLS が重複した URL を処理する方法を変更します。

    • プラグイン URL : https://github.com/elder-oss/yourls-allow-existing-urls

    • : このプラグインはエラー応答を成功応答に変更しますが、既存の宛先 URL に新しい短縮 URL を作成するわけではありません。

    • 当社のソリューション:YOURLS-MCPは、タイムスタンプパラメータを追加して、ユーザーエクスペリエンスを維持しながらデータベース内でURLを一意にするURL変更アプローチを実装します。

    • インストール: オプション - このプラグインのインストールの有無にかかわらず、URL 変更アプローチは機能します

  • 重複を強制的に許可: 同じ宛先 URL に対して複数の短縮 URL を作成できるようにします。

    • プラグインリポジトリ: https://github.com/kesslerio/yourls-force-allow-duplicates (近日公開予定)

    • 説明: YOURLS の一意の URL 制約を回避するカスタム プラグイン

    • 使用方法: APIリクエストにforce=1を追加するか、 create_custom_urlツールでforce_url_modification=falseを使用します。

    • インストール

      1. プラグインリポジトリからダウンロード

      2. force-allow-duplicatesフォルダをYOURLS/user/plugins/ディレクトリにコピーします。

      3. YOURLS管理インターフェースでプラグインを有効化します

フォールバックメカニズム

プラグインに依存する機能が使用されているが、プラグインがインストールされていない場合、YOURLS-MCP:

  1. 不足しているプラグインを自動的に検出します

  2. 可能な場合は適切なフォールバック機能を提供する

  3. フォールバックが有効化されている場合、レスポンスにfallback_used: true属性が含まれる

  4. フォールバックの機能が制限されている場合にfallback_limitations情報を追加します

  5. 完全にサポートされていない操作の場合は、情報エラーメッセージを返します。

このアプローチにより、YOURLS-MCP は可能な限り多くの YOURLS インストールで動作することが保証されると同時に、プラグインで利用できる拡張機能に関する明確な情報が提供されます。

開発とテスト

テストスクリプト

このプロジェクトにはtests/integration/ディレクトリにさまざまなテスト スクリプトが含まれています。

  • URL短縮テスト:

    • test-custom-url.js : 特定のキーワードでカスタム URL を作成するテスト

    • test-url-modification.js : 重複した URL を処理するための URL 変更アプローチをテストします

    • test-plugin-behavior.js : 既存のURLを許可するプラグインの動作をテストします

  • プラグインテスト:

    • test-duplicate-urls.js : 異なるキーワードで重複した URL を作成するテスト

    • test-plugin-approach.js : 重複を処理するための直接プラグインアプローチをテストします

  • テストの実行:

    # Run a specific test
    node tests/integration/test-custom-url.js

ユーティリティスクリプト

scripts/ディレクトリには、一般的な操作のためのユーティリティ スクリプトが含まれています。

  • create-random.js : 指定された宛先のランダムな短縮URLを作成します

  • 特定のURL作成タスク用のその他のスクリプト

ライセンス

マサチューセッツ工科大学

について

YOURLS-MCP は、Martin Kessler によって作成され、モデル コンテキスト プロトコル (MCP) を介して YOURLS を Claude Desktop およびその他の Claude 製品と統合します。

Force Allow Duplicates プラグインは、YOURLS ではネイティブにサポートされていない、同じ宛先に複数の短縮 URL を作成するという課題を解決するために開発されました。

サポート、問題、機能リクエストについては、次のアドレスまでお問い合わせください。

Available Tools

14 tools
change_keywordC

Change the keyword of an existing short URL

ParametersJSON Schema
NameRequiredDescriptionDefault
newshorturlYesThe new keyword to use
oldshorturlYesThe existing short URL or keyword
titleNoOptional new title

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It implies a mutation ('change') but doesn't specify permissions needed, whether changes are reversible, rate limits, or error handling. This is inadequate for a tool that modifies existing data without structured safety hints.

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, efficient sentence that front-loads the core action without unnecessary words. Every part earns its place by directly stating the tool's function, making it highly concise and well-structured.

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

Completeness2/5

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

Given the tool performs a mutation with no annotations and no output schema, the description is insufficient. It doesn't explain what happens on success (e.g., returns updated URL), error cases, or how it fits among siblings like 'update_url'. For a 3-parameter tool that alters data, more context is needed.

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%, so parameters are well-documented in the schema. The description adds no additional meaning beyond implying 'oldshorturl' and 'newshorturl' relate to keywords, but doesn't clarify format or constraints. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the verb ('change') and resource ('keyword of an existing short URL'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'update_url' or 'get_url_keyword', which could handle similar operations, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'update_url' or 'create_custom_url'. It lacks context about prerequisites (e.g., needing an existing short URL) or exclusions, leaving the agent to infer usage from the name alone.

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

contract_urlA

Check if a URL has already been shortened without creating a new short URL

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to check if it exists in the database

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the tool's read-only behavior by stating it checks without creating, but lacks details on error handling, response format, or database interaction specifics, leaving gaps in behavioral context.

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, efficient sentence that front-loads the purpose and usage, with zero wasted words, making it highly concise and well-structured for quick understanding.

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

Completeness3/5

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

Given no annotations and no output schema, the description is adequate for a simple lookup tool but incomplete in explaining return values or potential errors, which could hinder agent usage in more complex scenarios.

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%, so the schema already documents the 'url' parameter. The description adds minimal semantic context by implying the URL is checked against a database, but does not provide additional syntax or format details beyond what the schema covers.

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 clearly states the specific action ('Check if a URL has already been shortened') and the resource ('URL'), distinguishing it from sibling tools like 'shorten_url' or 'expand_url' by emphasizing it does not create new short URLs.

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

Usage Guidelines5/5

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

It explicitly states when to use this tool ('Check if a URL has already been shortened') and when not to ('without creating a new short URL'), providing clear alternatives by contrasting with sibling tools like 'shorten_url' for creation.

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

create_custom_urlA

Create a custom short URL with a specific keyword, even for URLs that already exist in the database

ParametersJSON Schema
NameRequiredDescriptionDefault
force_url_modificationNoWhether to force URL modification to allow duplicates
keywordYesThe custom keyword for the short URL
titleNoOptional title for the URL
urlYesThe URL to shorten

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the key behavioral trait about handling existing URLs, which is valuable. However, it doesn't mention permission requirements, rate limits, whether the operation is idempotent, or what happens on failure - significant gaps for a creation tool.

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, efficient sentence that communicates the core purpose and key differentiator without any wasted words. It's appropriately sized and front-loaded with the main action.

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

Completeness3/5

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

For a creation tool with no annotations and no output schema, the description provides the essential purpose but lacks important context about permissions, error conditions, return values, and system constraints. The 100% schema coverage helps, but behavioral aspects remain underspecified.

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%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. This meets the baseline expectation when schema coverage is complete.

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 clearly states the specific action ('Create a custom short URL'), identifies the resource ('with a specific keyword'), and distinguishes it from siblings by mentioning 'even for URLs that already exist in the database' - which differentiates it from tools like 'shorten_url' that might not handle duplicates.

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 provides clear context about when to use this tool ('for URLs that already exist in the database'), but doesn't explicitly mention when NOT to use it or name specific alternatives among the many sibling tools. It implies this is for custom keyword creation with duplicate handling.

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

db_statsB

Get global statistics for the YOURLS instance

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Get' implies a read operation, it doesn't specify whether this requires authentication, what format the statistics are returned in, whether there are rate limits, or if the data is cached. For a statistics tool with zero annotation coverage, this leaves significant gaps.

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, efficient sentence that gets straight to the point without any unnecessary words. It's perfectly front-loaded with the core functionality, making it easy for an AI agent to quickly understand what the tool does.

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

Completeness2/5

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

Given that this is a statistics tool with no annotations and no output schema, the description is insufficient. It doesn't explain what kind of statistics are returned (e.g., total URLs, clicks, users), the format of the response, or any behavioral characteristics. For a tool that presumably returns structured data, more context is needed.

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?

The tool has zero parameters, and schema description coverage is 100%, so there are no parameters to document. The description appropriately doesn't waste space discussing nonexistent parameters, earning a baseline score of 4 for this dimension.

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

Purpose4/5

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

The description clearly states the action ('Get') and target resource ('global statistics for the YOURLS instance'), making the tool's purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'url_stats' or 'url_analytics', which also provide statistical data but for different scopes.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'url_stats' and 'url_analytics' that also provide statistics, there's no indication whether this tool should be used for system-wide metrics versus URL-specific data, or any prerequisites for its use.

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

delete_urlC

Delete a short URL

ParametersJSON Schema
NameRequiredDescriptionDefault
shorturlYesThe short URL or keyword to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Delete' implies a destructive mutation, but the description doesn't specify whether this action is reversible, what permissions are required, or what the response looks like. It lacks details on side effects or error conditions.

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, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple tool, making it easy to parse quickly.

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

Completeness2/5

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

For a destructive mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'delete' entails (e.g., permanent removal, effects on analytics), return values, or error handling, leaving 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.

Parameters3/5

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

Schema description coverage is 100%, with the parameter 'shorturl' documented as 'The short URL or keyword to delete'. The description adds no additional meaning beyond this, so it meets the baseline of 3 where the schema does the heavy lifting.

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

Purpose4/5

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

The description 'Delete a short URL' clearly states the action (delete) and resource (short URL). It distinguishes from siblings like 'update_url' or 'change_keyword' by specifying deletion rather than modification, though it doesn't explicitly contrast with all alternatives.

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

Usage Guidelines2/5

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 'update_url' or 'change_keyword'. The description states what it does but offers no context about prerequisites, when deletion is appropriate, or what happens after deletion.

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

expand_urlA

Expand a short URL to its original long URL

ParametersJSON Schema
NameRequiredDescriptionDefault
shorturlYesThe short URL or keyword to expand

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the basic function but lacks details on behavioral traits such as error handling (e.g., invalid URLs), rate limits, authentication needs, or whether it follows redirects. This is a significant gap for a tool with no annotation coverage.

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, clear sentence with no wasted words. It is front-loaded with the core purpose and efficiently communicates the tool's function.

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

Completeness3/5

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

Given the tool's low complexity (one parameter, no output schema, no annotations), the description is minimally adequate. However, it lacks completeness in behavioral aspects like error cases or output format, which would be helpful for an agent to use it correctly.

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?

The description adds meaning by clarifying that the 'shorturl' parameter can be a 'short URL or keyword', which provides context beyond the schema's generic description. With 100% schema description coverage, the baseline is 3, but this extra semantic detail justifies a higher score.

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 clearly states the verb 'expand' and the resource 'short URL', specifying the action of converting a short URL to its original long URL. It distinguishes itself from sibling tools like 'shorten_url' and 'contract_url' by focusing on the reverse operation.

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 usage when needing to resolve a short URL, but does not explicitly state when to use this tool versus alternatives like 'get_url_keyword' or 'url_analytics'. No guidance on exclusions or prerequisites is provided.

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

generate_qr_codeC

Generate a QR code for a shortened URL

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoImage format (png, svg, etc.)
marginNoMargin size
shorturlYesThe short URL to generate a QR code for
sizeNoSize of the QR code in pixels

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't cover key aspects like whether it's a read-only or mutation operation, authentication requirements, rate limits, or error handling. This is inadequate for a tool that likely involves external resources.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and appropriately sized, making it easy to understand at a glance.

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

Completeness2/5

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

Given the tool's complexity (generating QR codes with multiple parameters) and lack of annotations and output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., image data or URL), potential side effects, or how it integrates with sibling tools, leaving 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.

Parameters3/5

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

The description implies the 'shorturl' parameter is required, but doesn't add meaning beyond the input schema, which has 100% coverage and already describes all parameters clearly. Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't compensate with extra details.

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

Purpose4/5

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

The description clearly states the verb 'generate' and the resource 'QR code', specifying it's for a 'shortened URL'. This distinguishes it from general QR code generators, though it doesn't explicitly differentiate from sibling tools like 'shorten_url' or 'url_analytics' that might also involve URLs.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as whether it's for generating QR codes specifically for URLs shortened by this service or any shortened URL. It lacks context on prerequisites or exclusions, leaving usage ambiguous.

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

get_url_keywordC

Get the keyword(s) for a long URL

ParametersJSON Schema
NameRequiredDescriptionDefault
exactly_oneNoWhether to return only one result (default: false)
urlYesThe URL to find keywords for

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on how it works (e.g., how keywords are extracted, any rate limits, error handling, or response format). This is a significant gap for a tool with no structured safety or behavioral hints.

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, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete. It does not explain what the return value looks like (e.g., format of keywords, potential errors), and with siblings like 'url_analytics', more context on use cases would be helpful. The tool's complexity is low, but the description lacks necessary behavioral details.

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%, so the input schema already documents both parameters ('url' and 'exactly_one') with clear descriptions. The description does not add any meaning beyond this, such as examples or edge cases, but the schema provides adequate baseline information.

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

Purpose4/5

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

The description clearly states the verb 'Get' and the resource 'keyword(s) for a long URL', making the purpose understandable. However, it does not explicitly differentiate this tool from siblings like 'url_analytics' or 'url_stats', which might also involve URL analysis, so it falls short of a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'url_analytics' or 'list_urls', there is no indication of context, prerequisites, or exclusions, leaving the agent to guess based on tool names alone.

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

list_urlsC

Get a list of URLs with sorting, pagination, and filtering options

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
perpageNoNumber of results per page
searchNoSearch term to filter results
sortbyNoField to sort by (e.g., "clicks", "timestamp")
sortorderNoSort order ("asc" or "desc")

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the tool's capabilities (sorting, pagination, filtering) but doesn't describe what the tool returns (e.g., format, fields), error conditions, rate limits, or authentication requirements. For a list operation with no annotation coverage, this leaves significant gaps.

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, efficient sentence that front-loads the core purpose ('Get a list of URLs') followed by key capabilities. Every word earns its place with zero waste or redundancy.

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

Completeness2/5

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

For a tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the returned list contains, how results are structured, or any behavioral aspects beyond basic capabilities. Given the complexity and lack of structured data, more context is needed.

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%, so the schema already documents all 5 parameters thoroughly. The description adds minimal value by mentioning 'sorting, pagination, and filtering' which aligns with parameters like sortby/sortorder, page/perpage, and search, but doesn't provide additional semantic context beyond what's in the schema descriptions.

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

Purpose4/5

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

The description clearly states the verb 'Get' and resource 'list of URLs', making the purpose understandable. However, it doesn't distinguish this tool from potential siblings like 'url_stats' or 'url_analytics' that might also provide URL-related information, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description mentions 'sorting, pagination, and filtering options' which implies when to use this tool, but provides no explicit guidance on when to choose this over alternatives like 'url_stats' or 'url_analytics'. There's no mention of prerequisites, exclusions, or specific contexts for use.

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

shorten_urlC

Shorten a long URL using YOURLS

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNoOptional custom keyword for the short URL
titleNoOptional title for the URL
urlYesThe URL to shorten

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the service ('YOURLS') but doesn't describe whether this is a read-only or mutating operation, what permissions are required, rate limits, error handling, or what the output looks like. For a tool that likely creates a new short URL, this is a significant gap in transparency.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse quickly.

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

Completeness2/5

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

Given the complexity of a URL shortening tool with no annotations and no output schema, the description is incomplete. It doesn't explain the return value (e.g., the shortened URL), error conditions, or behavioral traits like whether it's idempotent or requires authentication. This leaves gaps for an agent to understand how to use it effectively.

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?

The input schema has 100% description coverage, clearly documenting all three parameters (url, keyword, title) with their types and optionality. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 for adequate but not enhanced coverage.

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

Purpose4/5

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

The description clearly states the action ('shorten') and resource ('a long URL'), and specifies the service used ('using YOURLS'). It distinguishes from siblings like 'expand_url' or 'generate_qr_code' by focusing on shortening. However, it doesn't explicitly differentiate from 'shorten_with_analytics' or 'contract_url', which might offer similar functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'shorten_with_analytics', 'contract_url', or 'create_custom_url'. It lacks context about use cases, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.

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

shorten_with_analyticsC

Shorten a long URL with Google Analytics UTM parameters

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNoOptional custom keyword for the short URL
titleNoOptional title for the URL
urlYesThe URL to shorten
utm_campaignNoUTM campaign parameter
utm_contentNoUTM content parameter
utm_mediumYesUTM medium parameter
utm_sourceYesUTM source parameter
utm_termNoUTM term parameter

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It doesn't disclose whether this creates a permanent short URL, requires authentication, has rate limits, returns a specific format, or what happens on failure. For a write operation with zero annotation coverage, this is insufficient.

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?

Single sentence, zero waste. Every word earns its place by conveying the core functionality efficiently. No fluff or redundant information.

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

Completeness2/5

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

For a write operation (URL shortening with analytics) with no annotations and no output schema, the description is incomplete. It doesn't explain what gets returned (e.g., short URL format), error conditions, or behavioral aspects. Given the complexity and lack of structured data, more context is needed.

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%, so the schema already documents all 8 parameters thoroughly. The description adds no additional parameter information beyond implying UTM parameters are included. Baseline 3 is appropriate when schema does the heavy lifting, though the description doesn't compensate with any extra context.

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

Purpose4/5

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

The description clearly states the action ('shorten') and resource ('a long URL') with the specific feature of adding Google Analytics UTM parameters. It distinguishes from sibling 'shorten_url' by mentioning analytics parameters, but doesn't explicitly contrast them. The purpose is specific and actionable.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'shorten_url' (which presumably doesn't include UTM parameters) or 'create_custom_url'. The description implies usage for tracking purposes but doesn't provide explicit when/when-not scenarios or mention sibling tools as alternatives.

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

update_urlB

Update an existing short URL to point to a different destination URL

ParametersJSON Schema
NameRequiredDescriptionDefault
shorturlYesThe short URL or keyword to update
titleNoOptional new title for the URL
urlYesThe new destination URL

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool updates a short URL but does not mention permissions required, whether changes are reversible, rate limits, or error handling. This leaves significant gaps for a mutation tool.

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, efficient sentence that front-loads the core action ('update an existing short URL') and specifies the purpose ('to point to a different destination URL'). There is no wasted text, making it highly concise and well-structured.

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

Completeness2/5

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

Given the tool is a mutation with no annotations and no output schema, the description is incomplete. It does not cover behavioral aspects like side effects, return values, or error conditions, which are critical for safe and effective use in this context.

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?

The schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond implying the 'url' parameter is the new destination, which is already clear from the schema. This meets the baseline for high schema coverage.

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 clearly states the verb 'update' and the resource 'existing short URL', specifying the action of changing its destination. It distinguishes from siblings like 'create_custom_url' (creation) and 'delete_url' (deletion), making the purpose specific and unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as 'change_keyword' (which might update keywords) or 'contract_url' (which could modify URLs differently). It lacks context on prerequisites or exclusions, offering only a basic functional statement.

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

url_analyticsC

Get detailed click analytics for a shortened URL within a date range

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoThe time period for analytics (e.g., "day", "week", "month")
shorturlYesThe short URL to get analytics for

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves analytics (implying read-only) but doesn't mention authentication needs, rate limits, error conditions, or what 'detailed click analytics' includes (e.g., metrics like clicks, locations, devices). This leaves significant gaps for safe and effective use.

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, efficient sentence that front-loads the core purpose without unnecessary words. Every part earns its place by specifying the action, resource, and scope concisely.

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

Completeness2/5

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

Given the complexity of analytics tools, no annotations, and no output schema, the description is incomplete. It doesn't explain what data is returned, how to interpret results, or handle edge cases (e.g., invalid URLs, no data in range). For a tool with potential rich outputs, this leaves the agent under-informed.

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%, so the schema already documents both parameters ('shorturl' and 'period') adequately. The description adds minimal value beyond implying date-range filtering, but doesn't provide additional syntax, format examples, or constraints beyond what's in the schema descriptions.

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

Purpose4/5

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

The description clearly states the action ('Get detailed click analytics') and resource ('for a shortened URL within a date range'), making the purpose immediately understandable. However, it doesn't explicitly distinguish this tool from sibling tools like 'url_stats' or 'shorten_with_analytics', which likely have overlapping analytics functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'url_stats' or 'shorten_with_analytics'. It mentions a date range but doesn't specify prerequisites, exclusions, or comparative contexts with sibling tools, leaving the agent to guess based on tool names alone.

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

url_statsC

Get statistics for a shortened URL

ParametersJSON Schema
NameRequiredDescriptionDefault
shorturlYesThe short URL or keyword to get stats for

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get statistics') but fails to describe key traits like what statistics are returned, whether authentication is required, rate limits, or error handling. This leaves significant gaps for a tool that likely involves data retrieval.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized, making it easy for an agent to parse quickly and understand the core functionality.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a tool that retrieves statistics. It doesn't specify what statistics are included, the format of the response, or any behavioral nuances, leaving the agent with insufficient context to use the tool effectively beyond basic invocation.

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?

The input schema has 100% description coverage, clearly documenting the 'shorturl' parameter. The description adds no additional meaning beyond this, as it doesn't elaborate on parameter syntax, examples, or constraints. With high schema coverage, the baseline score of 3 is appropriate, as the schema handles the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('statistics for a shortened URL'), making it immediately understandable. However, it doesn't differentiate from sibling tools like 'url_analytics' or 'shorten_with_analytics', which might offer similar statistical functionality, preventing a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'url_analytics', 'db_stats', and 'shorten_with_analytics' potentially overlapping in functionality, the agent lacks explicit direction on selection criteria, such as specific use cases or data scope differences.

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.

  1. 14 tool updatesv1.0.0
    • First observedchange_keyword
    • First observedcontract_url
    • First observedcreate_custom_url
    • First observeddb_stats
    • First observeddelete_url
    • First observedexpand_url
    • First observedgenerate_qr_code
    • First observedget_url_keyword
    • First observedlist_urls
    • First observedshorten_url
    • First observedshorten_with_analytics
    • First observedupdate_url
    • First observedurl_analytics
    • First observedurl_stats

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity. For example, 'shorten_url' creates a basic short URL, 'shorten_with_analytics' adds analytics parameters, 'contract_url' checks for existing URLs, and 'update_url' modifies destinations. The tools cover different aspects of URL management without overlap.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern throughout, such as 'change_keyword', 'create_custom_url', 'delete_url', and 'expand_url'. All tools use snake_case with clear action-object naming, making them predictable and easy to understand.

Tool Count5/5

With 14 tools, the server is well-scoped for URL shortening and management. Each tool serves a specific function in the YOURLS domain, from creation and deletion to analytics and utilities like QR code generation, without being excessive or insufficient.

Completeness5/5

The tool set provides complete CRUD and lifecycle coverage for URL management, including create, read, update, delete, analytics, and utilities. There are no obvious gaps; tools like 'update_url' and 'change_keyword' cover modifications, while 'url_analytics' and 'db_stats' handle monitoring, ensuring agents can perform all necessary operations.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/kesslerio/yourls-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server