Skip to main content
Glama
Linkly-HQ

Linkly MCP Server

Linkly MCP Server

Claude connector directory Glama MCP registry

Linkly の公式 Model Context Protocol(MCP)サーバー — URL 短縮とリンク管理のためのプラットフォームです。

このリポジトリは、https://mcp.linklyhq.com でホストされている MCP サーバーを支えています。 これが MCP 経由で AI アシスタントを Linkly に接続する、唯一サポートされている方法です。セットアップ手順については、https://linklyhq.com/support/mcp-server を参照してください。

⚠️ linkly-mcp-server npm パッケージは非推奨です。 セルフホスト / API キーフローは、もはや保守されていません。すべてのユーザーはホスト型サーバーへ移行してください。ホスト型サーバーは OAuth 2.1 with PKCE を使用し、API キーもローカルインストールも不要で、常に最新のツールセットが動作します。linkly-mcp-server npm パッケージは後方互換性のためにレジストリに残りますが、新しいツールやバグ修正は追加されず、将来非公開になる可能性があります。

ドキュメント

完全なドキュメント、セットアップガイド、使用例については、https://linklyhq.com/support/mcp-server を参照してください。

Related MCP server: DWZ Short URL MCP Server

機能

  • 短縮リンクの作成、更新、削除

  • クリック分析と統計の表示

  • カスタムドメインとファビコンの管理

  • クリックイベント用 Webhook の設定

  • リンクの検索とフィルタリング

  • クリックデータのエクスポート

ホスト型サーバーの利用

サーバー URL: https://mcp.linklyhq.com

MCP クライアントをホスト型サーバーに接続し、ブラウザが開いたら Linkly にサインインします。それだけです。API キーもインストールも、構成のずれもありません。

Claude Desktop

{
  "mcpServers": {
    "linkly": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.linklyhq.com"]
    }
  }
}

Claude Code (CLI)

claude mcp add --transport http linkly https://mcp.linklyhq.com

ChatGPT Desktop

{
  "servers": {
    "linkly": {
      "type": "url",
      "url": "https://mcp.linklyhq.com"
    }
  }
}

利用可能なツール

ツール

説明

create_link

新しい短縮リンクを作成します

update_link

既存のリンクを更新します

delete_link

リンクを削除します

get_link

リンクの詳細を取得します

list_links

ワークスペース内の全リンクを一覧表示します

search_links

名前・URL・メモでリンクを検索します

get_analytics

時系列のクリックデータを取得します

get_analytics_by

ディメンション別のクリック数を取得します

get_clicks

最近のクリックデータを取得します

export_clicks

詳細なクリック記録をエクスポートします

list_domains

カスタムドメインを一覧表示します

create_domain

カスタムドメインを追加します

delete_domain

カスタムドメインを削除します

update_domain_favicon

ドメインのファビコンを更新します

list_webhooks

ワークスペースの Webhook を一覧表示します

subscribe_webhook

Webhook を追加します

unsubscribe_webhook

Webhook を削除します

list_link_webhooks

リンク固有の Webhook を一覧表示します

subscribe_link_webhook

リンク用 Webhook を追加します

unsubscribe_link_webhook

リンク用 Webhook を削除します

リンク

サポート

ヘルプやサポートについては、Linkly サポート を参照するか、support@linklyhq.com までメールでお問い合わせください。

MCP レジストリへの公開(メンテナー向け)

リポジトリのルートにある server.json は、com.linklyhq/linkly サーバーの 公式 MCP レジストリ のマニフェストです。これは リモート専用 です。クライアントをホスト型サーバーに誘導し、意図的にパッケージを含んでいません(非推奨の npm 配布は v2.0.0 で削除されました)。

公開には linklyhq.com の DNS アクセスが必要です。com.linklyhq 名前空間は、ドメイン apex に設定された DNS TXT レコードによって検証されます。

# 1. Generate an Ed25519 key + TXT record (macOS: use openssl@3; system LibreSSL lacks Ed25519)
openssl genpkey -algorithm Ed25519 -out key.pem
PUBLIC_KEY="$(openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64)"
echo "linklyhq.com. IN TXT \"v=MCPv1; k=ed25519; p=${PUBLIC_KEY}\""   # add at the APEX of linklyhq.com

# 2. Authenticate the namespace + publish
PRIVATE_KEY="$(openssl pkey -in key.pem -noout -text | grep -A3 'priv:' | tail -n +2 | tr -d ' :\n')"
mcp-publisher login dns --domain linklyhq.com --private-key "$PRIVATE_KEY"
mcp-publisher publish

詳細は、レジストリ認証ガイド を参照してください。

ChatGPT アプリの更新(メンテナー向け)

chatgpt-app-submission.json は、OpenAI の Apps SDK 提出用インポート です。全 25 ツールに対して、ツールごとの注釈と、3 つの安全性の正当化理由(read-only / open-world / destructive)を事前に入力するため、ダッシュボードで手入力する必要がありません。

OpenAI は公開時にメタデータのスナップショットを固定し、MCP の変更を自動的に検出しません。そのため、サーバー変更をデプロイした後は、新しいバージョンを公開してください。

  1. ワーカーをデプロイします(接続済みのブランチへのプッシュ / wrangler deploy)。

  2. プラットフォームダッシュボード → Linkly アプリ → 新しいドラフトバージョンを作成します(MCP URL は https://mcp.linklyhq.com のままにします)。

  3. MCP セクションで Scan Tools をクリックし、ライブのツールリストと注釈を再読み込みします。

  4. フォーム(ページ上部)に chatgpt-app-submission.json をドラッグして、正当化理由を入力します。

  5. Testing を確認し、Submit で公開します。公開されたバージョンは、新しいバージョンが承認されるまでライブサーバー上で動作し続けます。

ツールの追加・削除、または readOnlyHint / destructiveHint の変更があった場合、このファイルをワーカーと同期させてください。destructive フラグが true になるのは、実際に破壊的な 5 つのツール(delete_link、delete_domain、batchDeleteLinks、unsubscribe_webhook、unsubscribe_link_webhook)だけです。作成・更新・購読は追加的な操作のため、false になります。

ライセンス

MIT

Available Tools

20 tools
create_domainCInspect

Add a custom domain to the workspace. The domain must be configured to point to Linkly's servers.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe domain name (e.g., 'links.example.com')

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 'Adds' a domain, implying a write/mutation operation, but doesn't cover critical aspects like required permissions, whether the operation is idempotent, potential side effects, or error conditions. The prerequisite about domain configuration is helpful but insufficient 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 two concise sentences that are front-loaded with the core purpose and follow with a key prerequisite. Every word earns its place, with no redundancy or fluff, making it highly efficient and easy to parse.

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 as a mutation operation with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., permissions, idempotency), expected outcomes, or error handling, which are crucial for safe and effective use in an AI agent 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 input schema has 100% description coverage, with the 'name' parameter clearly documented as 'The domain name (e.g., 'links.example.com')'. The description doesn't add any meaningful parameter details beyond what the schema provides, such as format constraints or examples, so it meets the baseline for high schema coverage without extra value.

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 ('Add a custom domain') and the resource ('to the workspace'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_domains' or 'update_domain_favicon' beyond the obvious verb difference, which keeps it from 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 a prerequisite ('The domain must be configured to point to Linkly's servers'), which offers some usage context. However, it lacks explicit guidance on when to use this tool versus alternatives like 'list_domains' or 'update_domain_favicon', and doesn't mention any exclusions or complementary tools, leaving gaps in practical application.

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

delete_domainCInspect

Remove a custom domain from the workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_idYesThe ID of the domain 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. It states 'Remove' implying a destructive mutation, but doesn't specify if this is permanent, requires admin permissions, affects associated data, or has rate limits. This leaves critical behavioral traits unaddressed for a deletion 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, direct sentence with zero wasted words. It front-loads the core action and resource, making it highly efficient and easy to parse, which is ideal for conciseness.

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 destructive nature, lack of annotations, and no output schema, the description is insufficient. It doesn't cover behavioral aspects like permanence, permissions, or error handling, nor does it hint at return values, leaving significant gaps in context for safe and effective use.

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, with 'domain_id' clearly documented as 'The ID of the domain to delete'. The description adds no additional parameter details beyond what the schema provides, so it meets the baseline for high schema coverage without compensating further.

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 ('Remove') and resource ('a custom domain from the workspace'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'delete_link' or 'update_domain_favicon', but the specificity of 'custom domain' provides some implicit distinction.

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 'list_domains' for viewing or 'create_domain' for adding. It lacks context about prerequisites, such as needing an existing domain ID, or warnings about irreversible deletion, leaving usage unclear.

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

export_clicksCInspect

Export detailed click records with full information (timestamp, browser, country, URL, platform, referer, bot, ISP, params).

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoEnd date in YYYY-MM-DD format (default: yesterday)
botsNoBot filtering
startNoStart date in YYYY-MM-DD format (default: 30 days ago)
countryNoFilter by country code
link_idNoFilter by specific link ID
platformNoFilter by platform

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 'Export' but doesn't specify the output format (e.g., CSV, JSON), whether it's a file download or data stream, or any rate limits or permissions required. The mention of 'full information' hints at comprehensive data but lacks operational details.

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

Conciseness4/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 and key details. It avoids redundancy, though it could be slightly more structured by separating purpose from field listings for better readability.

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 6 parameters, no annotations, and no output schema, the description is inadequate. It lacks critical information about the export format, data volume, error handling, and how it differs from sibling tools, leaving significant gaps for an agent to operate 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?

Schema description coverage is 100%, providing clear documentation for all 6 parameters. The description adds minimal value by implying filtering capabilities through 'detailed click records' and listing fields like 'country' and 'platform', but doesn't explain parameter interactions or default behaviors beyond what the schema already covers.

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 ('Export') and resource ('detailed click records'), and specifies the scope with 'full information' listing key fields. However, it doesn't explicitly differentiate from sibling tools like 'get_clicks' or 'get_analytics', which might offer similar click data but potentially with different formats or filtering capabilities.

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 'get_clicks' or 'get_analytics'. It mentions 'full information' but doesn't clarify if this is for bulk exports, reports, or other specific use cases, leaving the agent to infer usage from context alone.

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

get_analyticsAInspect

Get time-series click analytics data for charting. Returns click counts over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoEnd date in YYYY-MM-DD format (default: today)
botsNoBot filtering: include (default), exclude, or only
startNoStart date in YYYY-MM-DD format (default: 30 days ago)
uniqueNoCount unique clicks only (by IP)
browserNoFilter by browser name
countryNoFilter by country code (e.g., 'US', 'GB')
link_idNoFilter by specific link ID
platformNoFilter by platform (e.g., 'desktop', 'mobile', 'tablet')
frequencyNoTime granularity: 'day' (default) or 'hour'

TDQS

A3.5/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 return type ('click counts over time') but doesn't describe authentication requirements, rate limits, pagination, error conditions, or what happens with large date ranges. For a data retrieval tool with 9 parameters, this leaves significant behavioral aspects undocumented.

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 perfectly concise with two sentences that each earn their place: the first states the purpose and context, the second clarifies the return format. It's front-loaded with the core functionality and wastes no words.

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 tool with 9 parameters, 100% schema coverage, but no annotations and no output schema, the description provides adequate basic context about what the tool does and returns. However, it lacks information about authentication, rate limits, error handling, and output structure details that would be helpful given the complexity of the filtering options.

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 9 parameters thoroughly with descriptions, defaults, and enums. The description adds no parameter-specific information beyond what's in the schema, 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.

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 ('Get time-series click analytics data for charting') and resource ('click analytics data'), distinguishing it from siblings like get_clicks (which likely returns raw click data) or get_analytics_by (which might have different aggregation). It explicitly mentions the output format ('Returns click counts over time'), making the purpose unambiguous.

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 for charting time-series data, but doesn't explicitly state when to use this tool versus alternatives like get_clicks or get_analytics_by. It provides context about the return format (time-series for charting), but lacks guidance on exclusions or specific scenarios where this tool is preferred over siblings.

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

get_analytics_byBInspect

Get click counts grouped by a dimension (country, platform, browser, etc.). Useful for breakdowns and top-N reports.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoEnd date in YYYY-MM-DD format (default: today)
botsNoBot filtering
startNoStart date in YYYY-MM-DD format (default: 30 days ago)
uniqueNoCount unique clicks only
counterYesDimension to group by (required)
countryNoFilter by country code
link_idNoFilter by specific link ID
platformNoFilter by platform

TDQS

B3.2/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. It mentions 'click counts' and 'grouped by a dimension' but lacks behavioral details like whether this is a read-only operation, if it requires authentication, rate limits, pagination, or what the output format looks like. For an analytics tool with 8 parameters, 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 two concise sentences with zero waste: the first states the core functionality, and the second provides usage context. It's front-loaded with the main purpose and efficiently 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 complexity (8 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain the return values (e.g., format of grouped data), behavioral aspects like error handling, or how it differs from sibling tools. For a data retrieval tool with multiple filters, more context is needed to guide effective use.

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 adds minimal value beyond the schema by listing example dimensions (country, platform, browser, etc.), but doesn't provide additional semantics like how grouping works or interactions between parameters. Baseline 3 is appropriate when 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 clearly states the tool's purpose: 'Get click counts grouped by a dimension' with examples like country, platform, browser. It specifies the verb ('Get') and resource ('click counts'), but doesn't explicitly differentiate from sibling tools like 'get_analytics' or 'get_clicks', which likely provide different analytics views.

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 provides implied usage context: 'Useful for breakdowns and top-N reports.' This suggests when to use it, but doesn't explicitly state when not to use it or name alternatives among siblings (e.g., 'get_analytics' might be for aggregated totals). No clear exclusions or prerequisites are mentioned.

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

get_clicksCInspect

Get recent click data for the workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
link_idNoOptional: filter clicks by link ID

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 implies a read operation ('Get') but doesn't specify details like data recency, pagination, rate limits, or authentication needs. This leaves significant gaps in understanding how the tool behaves beyond basic 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, clear sentence with no wasted words, making it highly concise and front-loaded. It efficiently communicates the core purpose without unnecessary elaboration, earning top marks for brevity and structure.

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 data retrieval tool. It doesn't explain what 'recent' means, the format of returned data, or how to handle large datasets, 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, documenting the optional 'link_id' parameter for filtering. The description adds no additional parameter details beyond what the schema provides, so it meets the baseline score of 3 for adequate but not enhanced parameter semantics.

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 resource ('recent click data for the workspace'), making the purpose understandable. However, it doesn't distinguish itself from sibling tools like 'get_analytics' or 'export_clicks', which might also involve click data, leaving some ambiguity about its specific role.

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 'get_analytics' or 'export_clicks'. It lacks context on prerequisites, such as whether it requires specific permissions or is intended for real-time vs. historical data, offering minimal usage direction.

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

list_domainsBInspect

List all custom domains in the workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 it's a list operation, implying read-only behavior, but doesn't cover critical aspects like pagination, sorting, rate limits, authentication needs, or what 'all' entails in terms of scope or performance impact.

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 zero wasted words. It's front-loaded with the core action and resource, making it highly efficient and easy to parse at a glance.

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 simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. However, it lacks details on output format, potential limitations, or how it fits with siblings, leaving gaps for an agent to fully understand its use in 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?

The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, aligning with the schema. A baseline of 4 is applied since it doesn't add unnecessary 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 action ('List') and resource ('all custom domains in the workspace'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_links' or 'list_webhooks' beyond the domain focus, which prevents 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?

No guidance is provided on when to use this tool versus alternatives. While the description implies it's for listing domains, it doesn't mention prerequisites, when to choose it over other list tools, or any contextual constraints, leaving usage decisions unclear.

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

list_webhooksAInspect

List all webhook URLs subscribed to the workspace. These receive click events for all links.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/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 full burden. It discloses the tool's read-only nature and the type of data returned (webhook URLs for click events), but lacks details on pagination, rate limits, authentication needs, or error conditions. It adds basic behavioral context but misses operational specifics.

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 ('List all webhook URLs') and adds only essential context ('subscribed to the workspace' and 'receive click events for all links'). There is zero wasted verbiage, 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.

Completeness3/5

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

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but minimal. It covers the basic purpose and scope but lacks details on output format (e.g., list structure), error handling, or integration with sibling tools, leaving gaps for a complete understanding in a broader 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?

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description does not need to compensate for any parameter gaps, and it appropriately avoids redundant parameter explanations, earning a baseline score above 3 for clarity in a parameterless context.

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 ('List all webhook URLs') and the resource ('subscribed to the workspace'), with additional context about their function ('receive click events for all links'). It distinguishes from siblings like 'list_link_webhooks' by specifying workspace-level scope versus link-level.

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 for retrieving workspace webhooks but does not explicitly state when to use this tool versus alternatives like 'list_link_webhooks' or 'subscribe_webhook'. No guidance on prerequisites or exclusions is provided, leaving usage context partially inferred.

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

subscribe_webhookCInspect

Subscribe a webhook URL to receive click events for all links in the workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe webhook URL to receive click event notifications

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's function but fails to describe critical behavioral traits: it doesn't mention whether this is a mutating operation (likely yes, as it 'subscribes'), what permissions are required, if there are rate limits, how events are formatted, or if the subscription is persistent. For a tool that likely modifies system state, 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 any redundant or unnecessary information. It is appropriately sized and front-loaded, with every word contributing to understanding 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 complexity of a subscription tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after subscription (e.g., event format, delivery guarantees), potential errors, or how to manage the subscription later. For a tool that likely involves ongoing system changes, more context is needed to ensure proper usage.

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, with the single parameter 'url' well-documented in the schema. The description adds no additional semantic context about the parameter beyond what's in the schema (e.g., URL format requirements or validation rules). According to the rules, when schema coverage is high (>80%), the baseline score is 3 even with no param info in the description, which applies here.

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 ('Subscribe a webhook URL') and the resource ('to receive click events for all links in the workspace'), providing a specific verb+resource combination. However, it doesn't explicitly distinguish this tool from its sibling 'subscribe_link_webhook', which likely subscribes to events for specific links rather than all links, leaving some ambiguity about sibling differentiation.

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 'subscribe_link_webhook' or other webhook-related tools. It lacks context about prerequisites, such as whether the URL needs to be pre-configured, or exclusions, such as when not to use it. This leaves the agent with minimal usage direction.

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

unsubscribe_webhookCInspect

Unsubscribe a webhook URL from workspace click events.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe webhook URL to unsubscribe

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. While 'unsubscribe' implies a destructive operation, the description doesn't specify whether this requires specific permissions, whether the action is reversible, what happens if the URL isn't subscribed, or any rate limits. For a mutation tool 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?

The description is a single, efficient sentence that communicates the core functionality without any wasted words. It's appropriately sized for a tool with one parameter and gets straight to the point.

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 operation tool with no annotations and no output schema, the description is incomplete. It doesn't address important contextual information like what happens after unsubscription, whether there's confirmation feedback, error conditions, or how this interacts with sibling unsubscribe tools. The agent would need to guess about many behavioral aspects.

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%, with the single parameter 'url' clearly documented in the schema as 'The webhook URL to unsubscribe'. The description doesn't add any additional parameter information beyond what's already in the structured schema, 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.

Purpose4/5

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

The description clearly states the action ('unsubscribe') and target ('webhook URL from workspace click events'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'unsubscribe_link_webhook' - both involve unsubscribing webhooks but for different scopes (workspace vs link-specific).

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 about when to use this tool versus alternatives like 'unsubscribe_link_webhook' or what prerequisites might be needed. The description only states what the tool does, not when it should be selected over other unsubscribe options available in the sibling list.

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

update_domain_faviconCInspect

Update the favicon URL for a custom domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_idYesThe ID of the domain to update
favicon_urlYesURL to the favicon image

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. It implies a mutation ('Update'), but doesn't disclose behavioral traits like required permissions, whether the change is reversible, potential side effects, or rate limits. For a mutation tool with zero annotation coverage, this is a significant gap.

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 unnecessary words. It is appropriately sized and front-loaded, 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 that this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on behavioral aspects like permissions, reversibility, and response format, which are crucial for safe and effective use by 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 schema description coverage is 100%, with both parameters ('domain_id' and 'favicon_url') fully documented in the input schema. The description adds no additional meaning beyond what the schema provides, such as format details or constraints, so it 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 action ('Update') and the specific resource ('favicon URL for a custom domain'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'update_link', but the specificity of 'favicon URL' and 'custom domain' provides enough distinction in context.

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 'update_link' or 'create_domain', nor does it mention prerequisites like needing an existing domain. It states what the tool does but offers no contextual usage advice.

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. 20 tool updatesv1.3.0
    • First observedcreate_domain
    • First observedcreate_link
    • First observeddelete_domain
    • First observeddelete_link
    • First observedexport_clicks
    • First observedget_analytics
    • First observedget_analytics_by
    • First observedget_clicks
    • First observedget_link
    • First observedlist_domains
    • First observedlist_link_webhooks
    • First observedlist_links
    • First observedlist_webhooks
    • First observedsearch_links
    • First observedsubscribe_link_webhook
    • First observedsubscribe_webhook
    • First observedunsubscribe_link_webhook
    • First observedunsubscribe_webhook
    • First observedupdate_domain_favicon
    • First observedupdate_link

TDQS

A3.5/5.0

Scored across 20 tools

Disambiguation5/5

Each tool has a distinct purpose with clear boundaries, targeting specific resources (domains, links, webhooks, analytics) and actions (create, delete, get, list, update, subscribe, unsubscribe, export). There is no overlap or ambiguity; for example, get_analytics and get_analytics_by serve different analytical functions, and webhook tools are clearly separated by scope (link-specific vs. workspace-wide).

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern throughout, with verbs like create, delete, get, list, update, subscribe, unsubscribe, export, and search applied to nouns such as domain, link, webhook, analytics, and clicks. There are no deviations in style (e.g., no camelCase or mixed conventions), making the set predictable and readable.

Tool Count4/5

With 20 tools, the count is slightly high but reasonable for a link management and analytics domain, covering domains, links, webhooks, and analytics comprehensively. It avoids being excessive (e.g., not over 25) and each tool appears justified, though it could be streamlined slightly without losing functionality.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for domains (create, list, delete, update_favicon), links (create, get, list, update, delete, search), and webhooks (subscribe, unsubscribe, list for both link-specific and workspace-wide). Analytics tools (get_analytics, get_analytics_by, export_clicks, get_clicks) offer robust data access, leaving no obvious gaps for agent workflows in this domain.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables 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.
    6
    7 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with the Firelinks link shortening platform to create and manage short links, track click statistics, manage custom domains, and compare analytics periods through natural language.
    3
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to shorten URLs, manage links, and track click analytics through 8 first-class tools, designed for use with Claude Desktop, Cursor, and other MCP clients.
    9
    45 npm
    MIT