b59.link MCP
An official MCP server for b59.link that allows AI agents to create short links, generate trackable QR codes, set up page-view trackers, and retrieve statistics. It supports authentication via API key or email OTP to manage owned resources.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://b59.link/api/mcpWhat you can do with it
- Shorten long URLs into trackable short links
- Generate QR codes for URLs or other text data
- Create page-view trackers for websites
- Retrieve statistics and stats URLs for tracked items
Source and maintenance
Protocol and capabilities
- Server
- b59.link 1.4.0
- MCP protocol
- 2025-06-18
- Tools
- 9 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
9 advertised
auth — Sign in to b59.link
Sign in to b59.link to own what you create (and for 300 requests/minute on the REST API). Pass api_key to get a session key straight away. Or pass email to have a 6-digit code emailed, then call again with email and otp to get a session key (new emails are signed up and also get their api_key). Send the session key as the HTTP header 'Authorization: Bearer <session_key>'.
{
"type": "object",
"properties": {
"otp": {
"type": "string",
"description": "The 6-digit code from the email."
},
"email": {
"type": "string",
"description": "Email to send a one-time code to."
},
"api_key": {
"type": "string",
"description": "The account's 256-character API key."
}
}
}{
"title": "Sign in to b59.link",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}shorten_url — Shorten a URL
Shorten a long URL and get a memorable b59.link short URL. Optionally specify a custom slug. Returns the short URL and a stats URL.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The URL to shorten."
},
"slug": {
"type": "string",
"description": "Optional custom slug (letters, digits, hyphens, underscores, max 100 chars). A random slug is used if omitted."
}
}
}{
"title": "Shorten a URL",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}generate_qr — Make a tracked QR code
Generate a trackable QR code for a URL. Creates a b59.link short URL at the same time so scans are counted. Returns the short URL, a stats URL, and the QR code as a base64-encoded PNG.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The URL to generate a QR code for."
}
}
}{
"title": "Make a tracked QR code",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}create_tracker — Create a page-view tracker
Create a free page-view tracker for a website. Returns the tag image URL and ready-to-paste snippets for the site's pages, plus the stats URL where views, visitors, pages and referrers are shown. When signed in, the tracker belongs to the account; otherwise keep the manage_token to claim it later.
{
"type": "object",
"required": [
"site_url"
],
"properties": {
"name": {
"type": "string",
"description": "Optional display name for the tracker."
},
"site_url": {
"type": "string",
"description": "The site's address, e.g. example.com. Views are only counted on this domain and its subdomains."
}
}
}{
"title": "Create a page-view tracker",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}get_stats_url — Find a stats page
Get the stats page URL for anything b59.link tracks: a slug or short URL, the destination URL of a short link or QR code, a tracker id or tag URL, or any page URL / domain that has a tracker tag. Stats themselves are viewed on b59.link; this returns where.
{
"type": "object",
"required": [
"identifier"
],
"properties": {
"identifier": {
"type": "string",
"description": "Slug, short URL, page URL, domain, tracker id or tag URL."
}
}
}{
"title": "Find a stats page",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}lookup_url — Look up an existing short link
Check whether a URL already has a b59.link short URL. Handles variations: http/https, www prefix, trailing slash. Returns the existing short URL and QR code if found.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The URL to look up."
}
}
}{
"title": "Look up an existing short link",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}make_qr_image — Make a QR code image
Make a QR code image for any text (URL, Wi-Fi string, phone, email, plain text) without creating a short link. Supports colors, size and SVG. Returns the image plus a permanent image URL that can be embedded with <img src>. Use generate_qr instead when scans should be counted.
{
"type": "object",
"required": [
"data"
],
"properties": {
"bg": {
"type": "string",
"description": "Background hex color, e.g. ffffff."
},
"fg": {
"type": "string",
"description": "Foreground hex color, e.g. 000000."
},
"data": {
"type": "string",
"description": "Text to encode (max 1500 chars)."
},
"size": {
"type": "integer",
"description": "Width/height in pixels, 64-1200 (default 300)."
},
"format": {
"enum": [
"png",
"svg"
],
"type": "string",
"description": "Image format (default png)."
}
}
}{
"title": "Make a QR code image",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}watch_printed_links — Watch printed links
Watch up to 25 printed links (QR codes on menus, short links on flyers, posters, packaging, cards). Checks each one now and then once a day, and records the whole redirect chain. A link is flagged when it dies (fails twice, 6 hours apart), lands somewhere new, lands on a QR or short-link vendor's 'deactivated' page or a parked domain, changes how it redirects, or its certificate expires within 14 days. Returns the first results, page_url (a result page to hand to the person; shareable) and manage_url (private: edit, re-check, delete). No key needed.
{
"type": "object",
"required": [
"links"
],
"properties": {
"email": {
"type": "string",
"description": "Optional address for alerts; nothing is sent to it until it is confirmed with a code on the result page."
},
"links": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The printed link, e.g. https://example.com/menu."
},
"label": {
"type": "string",
"description": "Where it is printed, e.g. 'menu table card'."
}
}
},
"maxItems": 25,
"minItems": 1
}
}
}{
"title": "Watch printed links",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}get_watch_report — Get a printed-link watch report
Get the state of every link in a printed-link watch: working, dead, moved, deactivated page, redirect changed or certificate expiring, what changed since the first check, the latest redirect chain and the last 30 days.
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The watch's slug or its page_url (b59.link/w/<slug>)."
}
}
}{
"title": "Get a printed-link watch report",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 497 ms
- 95th percentile latency
- 497 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 497 ms · metadata changed · 9 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http b59-link-mcp https://b59.link/api/mcpCodex
codex mcp add b59-link-mcp --url https://b59.link/api/mcpCursor
{
"mcpServers": {
"b59-link-mcp": {
"url": "https://b59.link/api/mcp"
}
}
}Cline
{
"mcpServers": {
"b59-link-mcp": {
"type": "streamableHttp",
"url": "https://b59.link/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"b59-link-mcp": {
"type": "http",
"url": "https://b59.link/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http b59-link-mcp https://b59.link/api/mcpClaude Desktop
{
"mcpServers": {
"b59-link-mcp": {
"url": "https://b59.link/api/mcp"
}
}
}Windsurf
{
"mcpServers": {
"b59-link-mcp": {
"serverUrl": "https://b59.link/api/mcp"
}
}
}Let your agent find its tools
Find servers like b59.link MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run b59.link MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.