Windsurf is built around agents. You work in the agent, it produces URLs — deploy links, share links, file paths — and you hit the routine chore of turning a long URL into a short one.
A browser tab is the wrong tool for that chore. An MCP server is the right one, and Windsurf supports it natively.
Add KooLink to Windsurf
Windsurf reads MCP servers from its config. Add this block:
{
"mcpServers": {
"koolink": {
"url": "https://mcp.kool.ink",
"type": "streamable-http"
}
}
}
Reload the MCP servers. KooLink is loaded. The agent now has a shorten_url tool.
There is no API key to mint, no account to create, no free-tier cap. It is free and unlimited.
What it looks like in practice
Inside a Windsurf agent session, wherever you are working:
Shorten the deploy URL so I can paste it in a commit message. Generate a clean slug for the README badge.
The agent calls shorten_url and hands you back a kool.ink/xyz link. You stay in the editor, in the same context where you are already working.
Why this beats a browser tab
Latency. A shorten_url call is under a second. A browser tab plus copy-paste is four round-trips and a context break.
Consistency. The same tool gives the same kool.ink/xyz shape every time, so scripts and templates can rely on the slug format.
No state. No API key to rotate, no environment variable per project. The server is the auth.
Where else it works
- Claude Desktop / Claude Code — same MCP config
- Cursor, Zed — IDE agents
- VS Code with Continue — extension
- Any MCP client that supports streamable-http transport
And in your shell, without any agent:
npx @koolink/koolink https://example.com/very/long/path
# → https://kool.ink/xyz
Windsurf + an agent-ready shortener
Most shorteners ship a REST API and ask you to bring your own key. KooLink ships a hosted MCP server — the only widely-used shortener that does. That makes it the natural fit for a Windsurf agent that wants to turn long URLs into clean, shareable links without leaving the editor.