dubco mcp server

Local 2025-09-01 00:15:38 0

Enables AI agents to create, update, and manage short links through your Dub.co account, allowing for creation, modification, and deletion of custom shortened URLs.


smithery badge MCP Compatible License: MIT

An MCP server for interacting with the Dub.co link shortener API. This server allows AI agents to create, update, and manage short links through your Dub.co account.

Dub.co Server MCP server

Features

  • Create short links with custom slugs
  • Update existing short links
  • Upsert links (create or update)
  • Delete links
  • Automatic domain selection

Installation

Installing via Smithery

To install Dub.co Link Shortener Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @Gitmaxd/dubco-mcp-server --client claude

Prerequisites

  • Node.js 18 or higher
  • A Dub.co account with API access
  • An API key from Dub.co
npm install -g dubco-mcp-server

Then add the following to your MCP configuration:

{
  "mcpServers": {
    "dubco-server": {
      "command": "dubco-mcp-server",
      "env": {
        "DUBCO_API_KEY": "your_api_key_here"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Option 2: Clone and Build

# Clone the repository
git clone https://github.com/Gitmaxd/dubco-mcp-server.git
cd dubco-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

Then add the following to your MCP configuration:

{
  "mcpServers": {
    "dubco-server": {
      "command": "node",
      "args": ["/path/to/dubco-mcp-server/build/index.js"],
      "env": {
        "DUBCO_API_KEY": "your_api_key_here"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Getting a Dub.co API Key

  1. Log in to your Dub.co account
  2. Go to your workspace settings
  3. Navigate to the "API" section
  4. Generate a new API key

Usage

Once installed and configured, the MCP server provides the following tools to AI agents:

Create a new short link on dub.co.

{
  "url": "https://example.com",
  "key": "example",  // optional
  "domain": "your-domain.com",  // optional
  "externalId": "123"  // optional
}

Update an existing short link on dub.co.

{
  "linkId": "link_id_here",
  "url": "https://new-example.com",  // optional
  "domain": "new-domain.com",  // optional
  "key": "new-slug"  // optional
}

Create or update a short link on dub.co.

{
  "url": "https://example.com",
  "key": "example",  // optional
  "domain": "your-domain.com",  // optional
  "externalId": "123"  // optional
}

Delete a short link on dub.co.

{
  "linkId": "link_id_here"
}

License

MIT

[
  {
    "description": "Create a new short link on dub.co, asking the user which domain to use",
    "inputSchema": {
      "properties": {
        "domain": {
          "description": "Optional domain slug to use. If not provided, the primary domain will be used.",
          "type": "string"
        },
        "externalId": {
          "description": "Optional external ID for the link",
          "type": "string"
        },
        "key": {
          "description": "Optional custom slug for the short link. If not provided, a random slug will be generated.",
          "type": "string"
        },
        "url": {
          "description": "The destination URL to shorten",
          "type": "string"
        }
      },
      "required": [
        "url"
      ],
      "type": "object"
    },
    "name": "create_link"
  },
  {
    "description": "Update an existing short link on dub.co",
    "inputSchema": {
      "properties": {
        "domain": {
          "description": "The new domain for the short link",
          "type": "string"
        },
        "key": {
          "description": "The new slug for the short link",
          "type": "string"
        },
        "linkId": {
          "description": "The ID of the link to update",
          "type": "string"
        },
        "url": {
          "description": "The new destination URL",
          "type": "string"
        }
      },
      "required": [
        "linkId"
      ],
      "type": "object"
    },
    "name": "update_link"
  },
  {
    "description": "Create or update a short link on dub.co, asking the user which domain to use if creating",
    "inputSchema": {
      "properties": {
        "domain": {
          "description": "Optional domain slug to use. If not provided, the primary domain will be used.",
          "type": "string"
        },
        "externalId": {
          "description": "Optional external ID for the link",
          "type": "string"
        },
        "key": {
          "description": "Optional custom slug for the short link. If not provided, a random slug will be generated.",
          "type": "string"
        },
        "url": {
          "description": "The destination URL to shorten",
          "type": "string"
        }
      },
      "required": [
        "url"
      ],
      "type": "object"
    },
    "name": "upsert_link"
  },
  {
    "description": "Delete a short link on dub.co",
    "inputSchema": {
      "properties": {
        "linkId": {
          "description": "The ID of the link to delete",
          "type": "string"
        }
      },
      "required": [
        "linkId"
      ],
      "type": "object"
    },
    "name": "delete_link"
  }
]