Skip to main content
Glama
Linkly-HQ

Linkly MCP Server

Linkly MCP 서버

Claude 커넥터 디렉토리 Glama MCP 레지스트리

Linkly — URL 단축기이자 링크 관리 플랫폼 — 의 공식 Model Context Protocol(MCP) 서버입니다.

이 저장소는 https://mcp.linklyhq.com에서 호스팅되는 MCP 서버를 구동합니다. 이것이 AI 어시스턴트를 MCP를 통해 Linkly에 연결하는 유일하게 지원되는 방식입니다. 설정 방법은 https://linklyhq.com/support/mcp-server를 참조하세요.

⚠️ linkly-mcp-server npm 패키지는 더 이상 사용되지 않습니다. 자체 호스팅 / API 키 방식은 더 이상 유지 관리되지 않습니다. 모든 사용자는 호스팅 서버로 마이그레이션해야 합니다 — OAuth 2.1 with PKCE를 사용하며, API 키나 로컬 설치가 필요 없고, 항상 최신 도구 세트를 실행합니다. npm 패키지는 이전 버전과의 호환성을 위해 레지스트리에 계속 존재하지만 새 도구나 버그 수정은 받지 않으며, 향후 게시가 중단될 수 있습니다.

문서

전체 문서, 설정 가이드 및 예제는 다음을 방문하세요: https://linklyhq.com/support/mcp-server

Related MCP server: DWZ Short URL MCP Server

기능

  • 짧은 링크 생성, 업데이트 및 삭제

  • 클릭 분석 및 통계 보기

  • 사용자 지정 도메인 및 파비콘 관리

  • 클릭 이벤트에 대한 웹훅 구성

  • 링크 검색 및 필터링

  • 클릭 데이터 내보내기

호스팅 서버 사용

서버 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

작업 공간 웹훅 나열

subscribe_webhook

웹훅 추가

unsubscribe_webhook

웹훅 제거

list_link_webhooks

링크별 웹훅 나열

subscribe_link_webhook

링크 웹훅 추가

unsubscribe_link_webhook

링크 웹훅 제거

링크

지원

도움말 및 지원은 Linkly 지원을 방문하거나 support@linklyhq.com으로 이메일을 보내세요.

MCP 레지스트리에 게시 (관리자)

저장소 루트의 server.json은 com.linklyhq/linkly 서버의 공식 MCP 레지스트리 매니페스트입니다. 원격 전용입니다: 클라이언트를 호스팅 서버로 안내하며 의도적으로 패키지를 포함하지 않습니다 (deprecated된 npm 배포는 v2.0.0에서 제거되었습니다).

게시하려면 linklyhq.com에 대한 DNS 액세스가 필요합니다 — com.linklyhq 네임스페이스는 도메인 에이펙스의 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개 도구 모두에 대한 도구별 주석과 세 가지 안전 근거 (읽기 전용 / 개방형 세계 / 파괴적)를 미리 채워 대시보드에서 수동으로 입력할 필요가 없습니다.

OpenAI는 게시 시 메타데이터 스냅샷을 고정하며 MCP 변경 사항을 자동 감지하지 않으므로, 서버 변경 사항을 배포한 후 새 버전을 게시해야 합니다:

  1. 워커를 배포합니다 (연결된 브랜치에 푸시 / wrangler deploy).

  2. 플랫폼 대시보드 → Linkly 앱 → 새 초안 버전 생성 (동일한 MCP URL https://mcp.linklyhq.com 유지).

  3. MCP 섹션에서 도구 스캔을 클릭하여 실시간 도구 목록 + 주석을 다시 읽습니다.

  4. chatgpt-app-submission.json을 양식(페이지 상단)에 끌어다 놓아 근거를 채웁니다.

  5. 테스트를 검토한 다음 제출합니다. 게시된 버전은 새 버전이 승인될 때까지 실시간 서버에 대해 계속 실행됩니다.

도구가 추가/제거되거나 readOnlyHint/destructiveHint가 변경될 때마다 이 파일을 워커와 동기화하세요. 파괴 플래그는 5개의 진정한 파괴 도구(delete_link, delete_domain, batchDeleteLinks, unsubscribe_webhook, unsubscribe_link_webhook)에 대해서만 true입니다; 생성/업데이트/구독은 추가적(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