mcp-shlink
A Model Context Protocol (MCP) server for Shlink link shortening service. This server exposes Shlink's URL shortening, management, and tagging capabilities as MCP tools for AI assistants.
Features
- Create shortened URLs with custom slugs, tags, and expiration
- List all shortened URLs with pagination info
- Get details of specific URLs by short code
- Delete shortened URLs
- List and manage tags
- Full type safety with Pydantic models
- Built with the official MCP Python SDK
Requirements
- Python >= 3.10
- A Shlink instance with API access
Installation
pip install mcp-shlink
Configuration
Set these environment variables before running the server:
| Variable | Description | Required |
|---|---|---|
SHLINK_BASE_URL |
Your Shlink instance base URL (e.g., https://shlink.example.com) |
Yes |
SHLINK_API_KEY |
Your Shlink API key | Yes |
Generate an API key in Shlink:
shlink api-key:generate --name=my_api_key
Usage
Running as a standalone MCP server
SHLINK_BASE_URL=https://shlink.example.com SHLINK_API_KEY=your-key python -m mcp_shlink.server
Installing into Claude Desktop
uv run mcp install src/mcp_shlink/server.py --name "shlink"
Running with MCP Inspector
SHLINK_BASE_URL=https://shlink.example.com SHLINK_API_KEY=your-key uv run mcp dev src/mcp_shlink/server.py
Available Tools
| Tool | Description |
|---|---|
create_short_url |
Create a new shortened URL |
list_short_urls |
List all shortened URLs |
get_short_url |
Get details of a URL by short code |
delete_short_url |
Delete a shortened URL |
list_tags |
List all tags |
Development
# Clone the repository
git clone https://github.com/magnus919/mcp-shlink
cd mcp-shlink
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest
# Lint and format
ruff check .
ruff format .
# Type check
mypy src/
# Full verification
ruff check . && ruff format . --check && mypy src/ && pytest
Project Structure
src/mcp_shlink/
├── server.py # FastMCP server entry point
├── client.py # Shlink API client
├── tools.py # MCP tool definitions
└── models.py # Pydantic models for API requests/responses
tests/
├── test_tools.py # Unit tests for MCP tools
└── test_client.py # Unit tests for Shlink client
License
Apache 2.0. See LICENSE.
Metadata
Release files for mcp-shlink 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcp_shlink-0.1.6.tar.gz | 7.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_shlink-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.5 kB
Release files / mcp_shlink-0.1.6.tar.gz
| Download URL | mcp_shlink-0.1.6.tar.gz |
|---|---|
| Size | 7.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2c204beb20c36f66bb03d4133199c45cb21f3a94be078fda064469591d6a8e4a
|
|
BLAKE2b-256 checksum How to use checksums |
475fcf45ca68b7d8c789e80e5f9c87c507cc0d61d5d23bda97d1d551d0fbafcd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 20, 2026.
Transparency logRelease files / mcp_shlink-0.1.6-py3-none-any.whl
| Download URL | mcp_shlink-0.1.6-py3-none-any.whl |
|---|---|
| Size | 7.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2be68eca88993fc2da5060cbe8351f80ad4b28777f3b01b7e5bf19d852e223dd
|
|
BLAKE2b-256 checksum How to use checksums |
b2600335a4dcd7dce6525e113632baa8ca8578db7cde0eed9dfd6c54a92c9efc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 20, 2026.
Transparency log