opn-mcp
About
Shorten links, read click analytics, and manage opn.onl short links (hosted or self-hosted) from your AI assistant.
Explore
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
opn-mcpCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"opn-mcp": {
"server": {
"command": "npx",
"args": [
"-y",
"opn-mcp"
],
"env": {
"OPN_API_KEY": "",
"OPN_BASE_URL": ""
}
}
}
}
}
McpServers
{
"server": {
"command": "npx",
"args": [
"-y",
"opn-mcp"
],
"env": {
"OPN_API_KEY": "",
"OPN_BASE_URL": ""
}
}
}
Transport
"stdio"
Package
"opn-mcp"
Registry
"npm"
AnMCPserver foropn.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 serviceor your own self-hosted instance.
On your opn.onl instance, go toSettings → API Keys, create a key, and copy it (it starts withopn_and is shown once).
Claude Desktop— editclaude_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 theargsfor the GitHub build — same config:"args": ["-y", "github:ysalitrynskyi/opn-mcp"](it builds on install).
PointOPN_BASE_URLat 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" } } } }
- "Shortenhttps://example.com/very/long/urland 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 forhttps://example.com— source newsletter, medium email"
npm install npm run build # tsc → dist/ npm test # vitest OPN_API_KEY=opn_… npm run dev # run from source (stdio)
All three registries are owned byysalitrynskyi(npm user, GitHub user, and theio.github.ysalitrynskyiMCP-registry namespace), so publishing must be done while signed in as that account.
- Bump the version inthreeplaces and keep them identical:package.json,server.json(top-levelandthepackages[0].version), andSERVER_VERSIONinsrc/server.ts.
- Land it: commit tomainand push. CI (.github/workflows/ci.yml) runsbuild+test— it doesnotpublish.
- Publish to npm (as npm userysalitrynskyi):
npm login npm publish # prepublishOnly runs the build
mcp-publisher validate # optional, offline check mcp-publisher login github # interactive browser OAuth mcp-publisher publish
Smithery(smithery.yaml) andGlama(glama.json) track the npm/registry release automatically — no separate step.
MIT © ysalitrynskyi. Part of theopn.onlproject.
Marketing insights and audience analysis from Audiense reports, covering demographic, cultural, influencer, and content engagement analysis.
Official Dadan MCP server for AI access to videos, transcripts, analytics, and capture leads.
Centralized management of RePricing for Amazon, eBay, and Kaufland, Lost & Found for Amazon FBA, and integrated HelpDesk.
Get clear, reliable and actionable Customer Insights with AI.
Honeydew semantic layer provides a governed, business-friendly data model that unifies metrics, dimensions, and relationships across sources, enabling consistent self-service analytics and AI-powered data access
Bring Kubit into your AI workflow - query your warehouse with natural language
An MCP server for ActivityWatch, allowing interaction with your personal time tracking data.
Provides structured access to ActivityWatch time tracking data for AI assistants.
Manage digital advertising campaigns with AI-powered insights from Adspirer.com.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



