loading…
Search for a command to run...
loading…
An MCP server that enables users to shorten long URLs into permanent, shareable links using the AceDataCloud API. It supports both single and batch URL shorteni
An MCP server that enables users to shorten long URLs into permanent, shareable links using the AceDataCloud API. It supports both single and batch URL shortening directly within MCP-compatible clients like Claude and VS Code.
PyPI version PyPI downloads Python 3.10+ License: MIT MCP
A Model Context Protocol (MCP) server for URL shortening using Short URL API through the AceDataCloud API.
Create short, shareable URLs directly from Claude, VS Code, or any MCP-compatible client.
surl.id domain| Tool | Description |
|---|---|
shorturl_create |
Create a short URL from a long URL. |
shorturl_batch_create |
Create short URLs for multiple long URLs in a single batch. |
shorturl_get_usage_guide |
Get a comprehensive guide for using the ShortURL tools. |
shorturl_get_api_info |
Get information about the ShortURL API service. |
AceDataCloud hosts a managed MCP server — no local installation required.
Endpoint: https://shorturl.mcp.acedata.cloud/mcp
All requests require a Bearer token. Use the API token from Step 1.
Connect directly on Claude.ai with OAuth — no API token needed:
https://shorturl.mcp.acedata.cloud/mcpAdd to your config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"shorturl": {
"type": "streamable-http",
"url": "https://shorturl.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to your MCP config (.cursor/mcp.json or .windsurf/mcp.json):
{
"mcpServers": {
"shorturl": {
"type": "streamable-http",
"url": "https://shorturl.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to your VS Code MCP config (.vscode/mcp.json):
{
"servers": {
"shorturl": {
"type": "streamable-http",
"url": "https://shorturl.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Or install the Ace Data Cloud MCP extension for VS Code, which bundles all 15 MCP servers with one-click setup.
{
"mcpServers": {
"shorturl": {
"url": "https://shorturl.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Claude Code supports MCP servers natively:
claude mcp add shorturl --transport http https://shorturl.mcp.acedata.cloud/mcp \
-h "Authorization: Bearer YOUR_API_TOKEN"
Or add to your project's .mcp.json:
{
"mcpServers": {
"shorturl": {
"type": "streamable-http",
"url": "https://shorturl.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to Cline's MCP settings (.cline/mcp_settings.json):
{
"mcpServers": {
"shorturl": {
"type": "streamable-http",
"url": "https://shorturl.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to your MCP configuration:
{
"mcpServers": {
"shorturl": {
"type": "streamable-http",
"url": "https://shorturl.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to Roo Code MCP settings:
{
"mcpServers": {
"shorturl": {
"type": "streamable-http",
"url": "https://shorturl.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to .continue/config.yaml:
mcpServers:
- name: shorturl
type: streamable-http
url: https://shorturl.mcp.acedata.cloud/mcp
headers:
Authorization: "Bearer YOUR_API_TOKEN"
Add to Zed's settings (~/.config/zed/settings.json):
{
"language_models": {
"mcp_servers": {
"shorturl": {
"url": "https://shorturl.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
}
# Health check (no auth required)
curl https://shorturl.mcp.acedata.cloud/health
# MCP initialize
curl -X POST https://shorturl.mcp.acedata.cloud/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
If you prefer to run the server on your own machine:
# Install from PyPI
pip install mcp-shorturl
# or
uvx mcp-shorturl
# Set your API token
export ACEDATACLOUD_API_TOKEN="your_token_here"
# Run (stdio mode for Claude Desktop / local clients)
mcp-shorturl
# Run (HTTP mode for remote access)
mcp-shorturl --transport http --port 8000
{
"mcpServers": {
"shorturl": {
"command": "uvx",
"args": ["mcp-shorturl"],
"env": {
"ACEDATACLOUD_API_TOKEN": "your_token_here"
}
}
}
}
docker pull ghcr.io/acedatacloud/mcp-shorturl:latest
docker run -p 8000:8000 ghcr.io/acedatacloud/mcp-shorturl:latest
Clients connect with their own Bearer token — the server extracts the token from each request's Authorization header.
| Tool | Description |
|---|---|
shorturl_create |
Shorten a single URL |
shorturl_batch_create |
Shorten multiple URLs at once (max 10) |
| Tool | Description |
|---|---|
shorturl_get_usage_guide |
Get comprehensive usage guide |
shorturl_get_api_info |
Get API details and error codes |
User: Shorten this URL: https://platform.acedata.cloud/documents/a2303356-6672-4eb8-9778-75f55c998fe9
Claude: I'll shorten that URL for you.
[Calls shorturl_create with url="https://platform.acedata.cloud/documents/a2303356-6672-4eb8-9778-75f55c998fe9"]
Result: https://surl.id/1uHCs01xa5
User: Shorten these URLs for my social media posts:
- https://example.com/blog/very-long-article-title-about-ai
- https://example.com/products/new-release-2024
Claude: I'll shorten both URLs at once.
[Calls shorturl_batch_create with urls=[...]]
User: I need clean short links for these reference URLs in my doc.
Claude: I'll create short links for all your references.
[Calls shorturl_batch_create with the list of URLs]
{
"success": true,
"data": {
"url": "https://surl.id/1uHCs01xa5"
}
}
{
"success": false,
"error": {
"code": "api_error",
"message": "fetch failed"
},
"trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
| Variable | Description | Default |
|---|---|---|
ACEDATACLOUD_API_TOKEN |
API token from AceDataCloud | Required |
ACEDATACLOUD_API_BASE_URL |
API base URL | https://api.acedata.cloud |
ACEDATACLOUD_OAUTH_CLIENT_ID |
OAuth client ID (hosted mode) | — |
ACEDATACLOUD_PLATFORM_BASE_URL |
Platform base URL | https://platform.acedata.cloud |
SHORTURL_REQUEST_TIMEOUT |
Request timeout in seconds | 30 |
LOG_LEVEL |
Logging level | INFO |
mcp-shorturl --help
Options:
--version Show version
--transport Transport mode: stdio (default) or http
--port Port for HTTP transport (default: 8000)
# Clone repository
git clone https://github.com/AceDataCloud/ShortURLMCP.git
cd ShortURLMCP
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # or `.venv\Scripts\activate` on Windows
# Install with dev dependencies
pip install -e ".[dev,test]"
# Run unit tests
pytest
# Run with coverage
pytest --cov=core --cov=tools
# Run integration tests (requires API token)
pytest tests/test_integration.py -m integration
# Format code
ruff format .
# Lint code
ruff check .
# Type check
mypy core tools
# Install build dependencies
pip install -e ".[release]"
# Build package
python -m build
# Upload to PyPI
twine upload dist/*
ShortURLMCP/
├── core/ # Core modules
│ ├── __init__.py
│ ├── client.py # HTTP client for ShortURL API
│ ├── config.py # Configuration management
│ ├── exceptions.py # Custom exceptions
│ └── server.py # MCP server initialization
├── tools/ # MCP tool definitions
│ ├── __init__.py
│ ├── shorturl_tools.py # URL shortening tools
│ └── info_tools.py # Information tools
├── prompts/ # MCP prompt templates
│ └── __init__.py
├── tests/ # Test suite
│ ├── conftest.py
│ ├── test_client.py
│ ├── test_config.py
│ └── test_integration.py
├── deploy/ # Deployment configs
│ ├── run.sh
│ └── production/
│ ├── deployment.yaml
│ ├── ingress.yaml
│ └── service.yaml
├── .env.example # Environment template
├── .gitignore
├── .ruff.toml # Ruff linter configuration
├── CHANGELOG.md
├── Dockerfile # Docker image for HTTP mode
├── docker-compose.yaml # Docker Compose config
├── LICENSE
├── main.py # Entry point
├── pyproject.toml # Project configuration
└── README.md
This server wraps the AceDataCloud Short URL API:
POST /shorturl{ "content": "https://long-url.example.com/..." }{ "success": true, "data": { "url": "https://surl.id/..." } }Full API documentation: AceDataCloud Platform
MIT License - see LICENSE for details.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"shorturlmcp": {
"command": "npx",
"args": []
}
}
}