Skip to content
Agentmart
Submit a tool

esyURL

Short links and trackable QR codes: editable after printing, device routing, scan stats.

Connector by esyurl · GitHub account verified by the MCP Registry

IndexedMITRemote (HTTP)
Write a review

Install

Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install connector/esyurl-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Remote endpoint

  • https://esyurl.fyi/mcp Remote (HTTP)

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Short links and trackable QR codes: editable after printing, device routing, scan stats.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
9 read · 8 write · 4 delete
Secrets
1 (API keys, tokens or passwords)
Install scripts
Nothing to install (hosted)
Runs as
Hosted (remote endpoint)

Tools by what they do 21

From the running server's own tool list (tools/list) on Oct 25, 2026.

Read 9 · Look things up without changing anything.

  • get_group
  • get_group_visits
  • get_short_link
  • get_short_link_visits
  • list_groups
  • list_short_links
  • preview_link_page
  • render_qr_code
  • test_redirect_rules

Write 8 · Create, change, send or run things.

  • add_links_to_group
  • create_group
  • create_short_link
  • get_custom_domain
  • set_custom_domain
  • set_domain_home_page
  • update_group
  • update_short_link

Delete 4 · Delete, drop, revoke or wipe things.

  • delete_group
  • delete_short_link
  • remove_custom_domain
  • remove_link_from_group

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • Authorization

Network hosts it talks to 1

  • esyurl.fyi · found in remote endpoint, install command

Files it touches

  • Any path the agent passes to its tools

Tools (21)

As the server listed them on Oct 25, 2026. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_links_to_groupAdd links to group

    Add up to 25 links to a group in one call. Idempotent: links already in the group are reported in alreadyMembers rather than failing. Fails with not_found if any linkId is unknown (nothing is added).

  • create_groupCreate group

    Create a group to organise short links (e.g. a campaign or a venue). Groups are many-to-many: a link can be in up to 20 groups. Add links with add_links_to_group, or pass groupIds when creating/updating a link.

  • create_short_linkCreate short link

    Create a short link that redirects to targetUrl, or shows a link page (pass page instead of targetUrl). Returns the link, including linkId (use it with the other tools) and shortUrl (share this). Give a slug for a memorable URL, otherwise a random 8-character one is generated. Slugs are unique across all tenants and cannot be changed later (409 if taken; route names like "api", "admin", "health" are reserved).

  • delete_groupDelete groupcan change or delete data

    Delete a group. Its links are NOT deleted; they just stop being members.

  • delete_short_linkDelete short linkcan change or delete data

    Permanently delete a short link and remove it from its groups. Its short URL and any printed QR codes stop working (404) and the slug becomes free for anyone. Prefer update_short_link status "paused" if the link may come back.

  • get_custom_domainGet custom domain

    Get this tenant's custom (alias) domain and advance its setup as far as DNS allows. Use it to check progress after creating a DNS record. Lifecycle: pending_validation (create the certificate_validation record, and the optional ownership_verification TXT if listed) → provisioning (automatic, seconds) → pending_dns (create the routing CNAME from the domain to `target`) → active. Nothing advances on its own: call get_custom_domain after each DNS change to move it along. The response always carries `dnsRecords` (exact name/type/value to create, with `done` once seen) and `instructions` saying wha…

  • get_groupGet groupread-only

    Fetch one group. To see its links use list_short_links with group = groupId.

  • get_group_visitsGet group visitsread-only

    Combined visit analytics for a group's current member links: totals {visits, qr, direct, bot} and a zero-filled per-day breakdown (UTC). Links removed from the group no longer count.

  • get_short_linkGet short linkread-only

    Fetch one short link by linkId, including its groupIds and lifetime visitCount.

  • get_short_link_visitsGet short link visitsread-only

    Visit analytics for one link: totals over the window ({visits, qr, direct, bot}; visits = qr + direct, bots such as link-preview crawlers are counted separately and excluded from visits), a zero-filled per-day breakdown (UTC, oldest first), and the most recent individual visits (newest first, with source, referrerHost, userAgent, country when known, and ruleId when a redirect rule decided it; kept 90 days). byRule splits the window's visits by rule (fallback = went to the link's targetUrl); daily entries carry byRule on days a rule matched. For link pages, byItem counts button clicks per item …

  • list_groupsList groupsread-only

    List your groups (with linkCount), ordered by groupId. Page with cursor = nextCursor.

  • list_short_linksList short linksread-only

    List your short links, newest first. Filter by tag and/or groupId. A page can hold fewer than limit items even when more exist: keep calling with cursor = nextCursor until nextCursor is absent.

  • preview_link_pagePreview link pageread-only

    Render a link's page as HTML for a simulated visit, without recording anything: the saved page, or a draft (page) to try before saving (pictures given as data URLs are drawn inline; nothing is stored or charged). Returns the visible item ids (items with "when" conditions depend on the visit) and the HTML.

  • remove_custom_domainRemove custom domaincan change or delete data

    Remove this tenant's custom domain. Short links immediately stop resolving on it (QR codes printed with it break) and new short URLs use the platform domain. The DNS records can be deleted afterwards.

  • remove_link_from_groupRemove link from group

    Take one link out of a group. The link itself is untouched.

Show 6 more tools
  • render_qr_codeRender QR coderead-only

    Render a QR code as a PNG image. Pass linkId to render a short link: the image encodes {shortUrl}?s=qr so scans are counted as qr visits, and the link's qrStyle is the default look. Or pass data to render any text (URL, Wi-Fi config, vCard...) as a static QR code that is not tracked. Returns the image plus a text line naming exactly what was encoded. Styles are free: module shapes, corner markers, a logo or a halftone photo. For SVG, use GET /v1/links/{linkId}/qr?format=svg.

  • set_custom_domainSet custom domain

    Serve all of this tenant's short links on a domain it controls, e.g. "go.acme.com" → https://go.acme.com/{slug}. Once active, new short URLs and QR codes use it; links keep working on the platform domain too. One domain per tenant: setting a different one replaces (and tears down) the current one. Setting the same one again is harmless, and restarts it if it failed. Two DNS records are needed at the domain's DNS provider, returned one at a time: first a record (TXT or CNAME) that proves control (for the TLS certificate), then a CNAME pointing the domain at the platform. Lifecycle: pending_vali…

  • set_domain_home_pageSet custom domain home page

    Choose the link that the root (/) of this tenant's custom domain shows: a link page becomes the domain's home page, a redirect link sends / there. Pass linkId null to clear it (/ answers 404 again). Has no effect on the platform domain.

  • test_redirect_rulesTest redirect rulesread-only

    Dry run: which destination would a visit with these properties get from this link's rules? For a link page with no matching rule it returns page.itemIds (the buttons that visit would see) instead of targetUrl. Records no visit. Pass a real userAgent to test device routing, e.g. iPhone: "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", Android: "Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0 Mobile Safari/537.36". Returns targetUrl, matchedRule (absent when the …

  • update_groupUpdate group

    Rename a group or change its description or color. Membership doesn't change here.

  • update_short_linkUpdate short link

    Change a short link. Only the fields you pass change; tags, metadata, qrStyle and groupIds are replaced wholesale (pass the full new list; [] clears). Set targetUrl to send visitors somewhere else: the short URL and printed QR codes keep working. Set status "paused" to make the short URL answer 410, "active" to resume. The slug cannot be changed. page replaces the whole link page (a redirect becomes a page); page: null with a targetUrl turns a page back into a redirect.

Signals

Stars
0
Forks
0
Open issues
0
Last commit
Oct 7, 2026 (21 days ago)
Last release
Oct 7, 2026 (21 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.esyurl/mcp
Version
0.2.0
Auth
Bearer token
License
MIT
Website
esyurl.fyi
First seen
Oct 24, 2026
Last checked
Oct 25, 2026
Cite this page

esyURL MCP server. Agent Mart. https://agentmart.dev/connectors/esyurl-mcp (last updated 2026-10-25)