Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Opn

БесплатноНе проверен

MCP server for opn.onl, the open-source self-hostable URL shortener. Shorten links, read click analytics, generate branded QR codes, and manage links — against

GitHubEmbed

Описание

MCP server for opn.onl, the open-source self-hostable URL shortener. Shorten links, read click analytics, generate branded QR codes, and manage links — against the hosted service or your own instance.

README

opn-mcp MCP server

An MCP server for opn.onl — the open-source, self-hostable URL shortener. It lets AI assistants (Claude Desktop, Cursor, etc.) shorten links, read analytics, generate QR codes, and manage links in natural language.

Works against the hosted service or your own self-hosted instance.

Setup

1. Get an API key

On your opn.onl instance, go to Settings → API Keys, create a key, and copy it (it starts with opn_ and is shown once).

2. Add the server to your MCP client

Claude Desktop — edit claude_desktop_config.json (~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows):

{
  "mcpServers": {
    "opn": {
      "command": "npx",
      "args": ["-y", "opn-mcp"],
      "env": {
        "OPN_API_KEY": "opn_your_key_here"
      }
    }
  }
}

Restart your client. That's it — it talks to the hosted API (https://l.opn.onl) by default.

Prefer to run from source? Swap the args for the GitHub build — same config: "args": ["-y", "github:ysalitrynskyi/opn-mcp"] (it builds on install).

Self-hosted instance

Point OPN_BASE_URL at your own instance's API host:

{
  "mcpServers": {
    "opn": {
      "command": "npx",
      "args": ["-y", "opn-mcp"],
      "env": {
        "OPN_API_KEY": "opn_your_key_here",
        "OPN_BASE_URL": "https://l.your-domain.com"
      }
    }
  }
}

Configuration

Env var Required Default Description
OPN_API_KEY Your API key (opn_…), from Settings → API Keys
OPN_BASE_URL https://l.opn.onl API base URL — set this for a self-hosted instance

Tools

Links

Tool Description
shorten_url Create a short link — optional alias, title, notes, scheduling (starts_at/expires_at), max_clicks, password, burn-after-reading, folder and tags
shorten_urls_bulk Shorten many URLs at once, optionally into a folder
list_links List your links (limit, offset, search, folder or tag filter)
update_link Update destination, title, notes, scheduling, click limit, folder or protections; clear fields with remove_* flags
delete_link Delete a link
clone_link Duplicate a link under a fresh short code
toggle_link_pin Pin or unpin a link
check_alias_available Check whether a custom alias is free before using it

Analytics

Tool Description
get_link_stats Per-link analytics (clicks, unique visitors, geo, cities, devices, browsers, OS, referrers); optional days window
get_dashboard_stats Account-wide analytics across all your links

QR & URL helpers

Tool Description
get_qr_code Get a link's QR image — optional brand colour, centre logo, PNG/SVG
check_url_health Check a destination URL is reachable before shortening
build_utm_url Append UTM campaign parameters to a URL
preview_url_metadata Fetch Open Graph metadata (title, description, image) for a URL

Tags & folders

Tool Description
list_tags / create_tag List or create tags
add_tags_to_link / remove_tags_from_link Attach or detach tags on a link
list_folders / create_folder List or create folders
move_links_to_folder Move links into a folder

Example prompts

  • "Shorten https://example.com/very/long/url and call it launch-2026"
  • "Shorten these five URLs into a new folder called Q3 Campaign"
  • "How many clicks did link 42 get in the last 30 days, and from which countries?"
  • "Give me a branded SVG QR code for link 42"
  • "Tag my last 10 links as 'newsletter' and show my dashboard stats"
  • "Build a UTM link for https://example.com — source newsletter, medium email"

Development

npm install
npm run build      # tsc → dist/
npm test           # vitest
OPN_API_KEY=opn_… npm run dev   # run from source (stdio)

Releasing

All three registries are owned by ysalitrynskyi (npm user, GitHub user, and the io.github.ysalitrynskyi MCP-registry namespace), so publishing must be done while signed in as that account.

  1. Bump the version in three places and keep them identical: package.json, server.json (top-level and the packages[0].version), and SERVER_VERSION in src/server.ts.
  2. Land it: commit to main and push. CI (.github/workflows/ci.yml) runs build + test — it does not publish.
  3. Publish to npm (as npm user ysalitrynskyi):
    npm login
    npm publish        # prepublishOnly runs the build
    
  4. Publish to the MCP registry (as GitHub user ysalitrynskyi):
    mcp-publisher validate      # optional, offline check
    mcp-publisher login github  # interactive browser OAuth
    mcp-publisher publish
    

Smithery (smithery.yaml) and Glama (glama.json) track the npm/registry release automatically — no separate step.

License

MIT © ysalitrynskyi. Part of the opn.onl project.

from github.com/ysalitrynskyi/opn-mcp

Установить Opn в Claude Desktop, Claude Code, Cursor

Рекомендуется · одна команда, все IDE
unyly install opn-mcp

Ставит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.

Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh

Или настроить вручную

Выполни в терминале:

claude mcp add opn-mcp -- npx -y opn-mcp

FAQ

Opn MCP бесплатный?

Да, Opn MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Opn?

Нет, Opn работает без API-ключей и переменных окружения.

Opn — hosted или self-hosted?

Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.

Как установить Opn в Claude Desktop, Claude Code или Cursor?

Открой Opn на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Opn with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development