Skip to main content
Glama
nks-hub

rybbit-mcp

by nks-hub

Outbound Links

rybbit_get_outbound_links
Read-onlyIdempotent

Retrieve and analyze outbound link click data from your website to understand which external URLs users visit and their frequency.

Instructions

Get outbound link clicks tracked on the site. Shows which external URLs users are clicking and how often.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
siteIdYesSite ID (numeric ID or domain identifier)
startDateNoStart date in ISO format (YYYY-MM-DD)
endDateNoEnd date in ISO format (YYYY-MM-DD)
timeZoneNoIANA timezone (e.g., Europe/Prague). Default: UTC
filtersNoArray of filters. Example: [{parameter:'browser',type:'equals',value:['Chrome']},{parameter:'country',type:'equals',value:['US','DE']}]
pastMinutesStartNoAlternative to dates: minutes ago start (e.g., 60 = last hour)
pastMinutesEndNoAlternative to dates: minutes ago end (default 0 = now)
pageNoPage number, 1-indexed (default: 1)
limitNoResults per page (default: 20-50 depending on endpoint, max 200)

Implementation Reference

  • The handler function for the rybbit_get_outbound_links tool, which fetches outbound link click events from the Rybbit API.
    async (args) => {
      try {
        const params = client.buildAnalyticsParams(args);
        const data = await client.get(`/sites/${args.siteId}/events/outbound`, params);
        return {
          content: [{ type: "text" as const, text: truncateResponse(data) }],
        };
      } catch (err) {
        const message = err instanceof Error ? err.message : String(err);
        return {
          content: [{ type: "text" as const, text: `Error: ${message}` }],
          isError: true,
        };
      }
    }
  • The registration block for the rybbit_get_outbound_links tool, including its schema and description.
    server.registerTool(
      "rybbit_get_outbound_links",
      {
        title: "Outbound Links",
        annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true, destructiveHint: false },
        description:
          "Get outbound link clicks tracked on the site. Shows which external URLs users are clicking and how often.",
        inputSchema: {
          ...analyticsInputSchema,
          ...paginationSchema,
        },
      },
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, establishing this is a safe, repeatable query. The description adds value by clarifying the data content (external URLs and frequency/'how often'), but does not disclose pagination behavior, rate limits, or whether results are aggregated or raw.

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?

Two sentences with zero waste. The first establishes the action (get outbound link clicks), the second clarifies the output (external URLs and frequency). Every word earns its place.

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 9 parameters with complex filtering capabilities and pagination, the description is minimally adequate. It lacks mention of the powerful filtering system or pagination controls, but the well-documented schema compensates. No output schema exists, but the description partially explains return values (URLs and frequency).

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?

With 100% schema description coverage, the schema fully documents all 9 parameters including the complex filters array and date alternatives. The description adds no parameter-specific guidance, earning the baseline score for high-coverage schemas.

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 retrieves 'outbound link clicks' and shows 'which external URLs users are clicking,' providing specific verb (Get/Shows) and resource (outbound links). However, it does not explicitly differentiate from similar analytics siblings like rybbit_list_events or rybbit_get_metric.

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 (e.g., rybbit_list_events with event_name filter), nor does it mention prerequisites like requiring the site to have outbound link tracking enabled. No mention of when to use date ranges vs. pastMinutes parameters.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nks-hub/rybbit-mcp'

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