opn-mcp
About
Shorten links, read click analytics, and manage opn.onl short links (hosted or self-hosted) from your AI assistant.
Details
- Author
- ysalitrynskyi
- Categories
- Productivity, Other
Jump to
Setup
Install opn-mcp in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/ysalitrynskyi/opn-mcp
Follow the installation instructions in the repository README, then restart your MCP client.
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.




