io.github.lonniev/tollbooth-shortlinks
Ephemeral, human-friendly short URLs for Tollbooth MCP services
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
claude mcp add --transport http tollbooth-shortlinks 'https://tollbooth-shortlinks.fastmcp.app/mcp'
{
"mcpServers": {
"tollbooth-shortlinks": {
"type": "http",
"url": "https://tollbooth-shortlinks.fastmcp.app/mcp"
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
Tollbooth Shortlinks
Don't Pester Your Customer™ (DPYC™) — Ephemeral, human-friendly short URLs for the Tollbooth ecosystem.
The metaphors in this project are drawn with admiration from The Phantom Tollbooth by Norton Juster, illustrated by Jules Feiffer (1961). Milo, Tock, the Tollbooth, Dictionopolis, and Digitopolis are creations of Mr. Juster's extraordinary imagination. We just built the payment infrastructure.
Why This Exists
OAuth Authorization URLs are long, ugly, and hostile to copy-paste:
https://api.schwab.com/v1/oauth/authorize?client_id=abc123&redirect_uri=https%3A%2F%2F
fastmcp.cloud%2Foauth%2Fcallback%3Fserver_id%3D...&scope=...&response_type=code&state=...
Traditional link shorteners have become opinionated. They inject interstitial pages, track clicks, require accounts, gate features behind paywalls, or silently expire links on their own schedule. When an MCP server needs to hand a patron a one-time URL for an OAuth dance, none of that belongs in the path.
Tollbooth Shortlinks is a community utility with no monetization. It turns
any URL into a memorable four-word phrase like brave-otter-finds-gold, stores
the mapping in Neon Postgres, and expires it after 24 hours. A companion
Val Town HTTP handler does the 302 redirect with zero interstitial.
How It Works
MCP Server / Patron Shortlinks MCP Neon Val Town
| | | |
|-- create_shortlink(url) ---->|-- INSERT ------>| |
|<-- short_url ----------------| | |
| | | |
|-- GET /brave-otter-finds-gold ----------------------------> |
| | |<-- lookup ---|
|<-- 302 redirect ----------------------------------------------|
| | | |
| (24h later) | expired rows are deleted |
Tools
| Tool | Description |
|---|---|
create_shortlink | Store a URL, get back a memorable slug (or supply your own) |
resolve_shortlink | Look up where a slug points without redirecting |
delete_shortlink | Remove a shortlink before it expires |
shortlink_status | Health check showing active link count and TTL |
All tools are free -- no credits, no npub, no Tollbooth ledger required.
Install
pip install -e ".[dev]"
Run Locally
export NEON_SHORTLINKS_URL="<your Neon connection string>"
# optional: the redirect host put in front of each slug (default https://tollbooth.val.run)
export SHORTLINK_REDIRECT_BASE="https://tollbooth.val.run"
python -c "from server import mcp; mcp.run()"
The Val Town handler in val/redirect.js reads the same NEON_SHORTLINKS_URL.
Deploy to Horizon
The fastmcp.json at the repo root is ready for fastmcp deploy.
DPYC Identity
Tollbooth Shortlinks is registered as an Advocate in the DPYC Social Contract.
Peer MCP servers discover its URL by asking the Oracle, and create_shortlink
returns the full short_url, so a peer never needs the redirect host:
from tollbooth.oracle_client import default_oracle_client
svc = await default_oracle_client().resolve_service(name="tollbooth-shortlinks")
shortlinks_url = (svc or {}).get("url", "")
Operators built on tollbooth-dpyc get this for free: tollbooth.shortlinks.create_shortlink(url)
does the lookup and the call, best-effort.
Related Repos
The Tollbooth DPYC™ ecosystem:
| Repo | Role |
|---|---|
| tollbooth-dpyc | The wheel -- operator-side credit ledger, BTCPay client, tool gating, constraint engine |
| tollbooth-authority | The institution -- fee collection, Schnorr signing, purchase certification |
| dpyc-oracle | The oracle -- Social Contract governance, membership, ban elections |
| dpyc-community | The registry -- governance data, operator catalog, community rules |
| tollbooth-sample | Reference operator -- weather API with full Tollbooth wiring |
| cypher-mcp | Monetized graph answers -- named Cypher over Neo4j/AuraDB |
| schwab-mcp | Charles Schwab brokerage MCP -- quotes, positions, orders and transaction history (read-only) |
| excalibur-mcp | eXcalibur -- formatted posting to X (Twitter) |
| thebrain-mcp | Personal Brain MCP -- thought graphs, knowledge management |
| taxsort-mcp | Tax sorting and classification MCP |
| optionality-mcp | Options analytics MCP |
| goodearth-mcp | Good Earth -- region-scoped farm climate analytics |
| beesknees-mcp | The Bee's Knees -- a monetized multiplayer race to the queen |
| roastify-mcp | Roastify coffee catalog and packaging artwork |
| ChartRemotely-mcp | ChartRemotely -- drives a desktop chart through a paired agent |
| tollbooth-web | Shared browser SDK for operator front ends |
| tollbooth-shortlinks (this repo) | Community utility -- ephemeral short URLs for OAuth flows |
| tollbooth-oauth2-collector | OAuth2 callback collector -- browser-based token exchange |
| tollbooth-pricing-studio | iOS app -- operator dashboard and pricing model editor |
License
Apache-2.0. See LICENSE for details.
Frequently asked questions
What is io.github.lonniev/tollbooth-shortlinks?
Ephemeral, human-friendly short URLs for Tollbooth MCP services
How do I install io.github.lonniev/tollbooth-shortlinks?
It runs as a remote server. In Claude Code: claude mcp add --transport http tollbooth-shortlinks 'https://tollbooth-shortlinks.fastmcp.app/mcp'. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.lonniev/tollbooth-shortlinks need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is io.github.lonniev/tollbooth-shortlinks open source?
Yes. Its code is on GitHub under the Apache-2.0 license.
Who maintains io.github.lonniev/tollbooth-shortlinks?
It is published by lonniev. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.