Skip to main content
Glama
lonniev

tollbooth-shortlinks

by lonniev

Tollbooth Shortlinks

License Python

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.

Related MCP server: url-shortener-mcp

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.

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.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables creation and management of short links with custom slugs, QR repointing, and cookieless analytics from any MCP client.
    8 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables users to shorten links, bulk create URLs, generate QR codes, manage and disable links, and retrieve click analytics from MCP clients like Claude, ChatGPT, Cursor, and n8n.
    9
    MIT