MiniURL
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
OAuth 2.1 short-link tools for AI agents with scoped tokens, approvals, audit logs, and revocation.
| Author | io.github.addychang |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 511 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"MiniURL": {
"url": "https://workers.miniurl.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (23)
create_guest_tokenCreate a short-lived MiniURL guest bearer token. Legacy MCP sessions retain it; stateless clients must pass the returned gt_ token explicitly on later requests. shorten_url can provision one automatically.
Hints: read-only no · destructive no · idempotent no · open-world no
clear_authenticationClear authentication retained by a legacy MCP session. Stateless clients clear authentication by omitting the Authorization header on later requests.
Hints: read-only no · destructive no · idempotent yes · open-world no
shorten_urlCreate a MiniURL short link for a supplied HTTP or HTTPS destination. Use when the user asks to shorten a URL or generate a MiniURL link. This is an additive external write; do not fetch or open the destination. If no authentication is supplied, MiniURL automatically starts a guest flow. Reuse idempotency_key when retrying the same logical request.
Parameters:
url(required) — string — The HTTP or HTTPS destination URL to shorten.alias— string — Optional custom alias. Call check_alias before creating it. Requires a registered account; miniurl.com aliases must be at least 4 characters.domain— string — Optional domain. Requires a registered account with an active custom domain.dry_run— boolean — Validate the destination and show the planned link without creating it. Agent tokens only.password— string — Optional password. Requires Pro.expiration— string — Optional ISO 8601 expiration datetime. Requires Pro.activated_at— string — Optional ISO 8601 activation datetime. Requires Pro.idempotency_key— string — Optional idempotency key. Reusing it with the same payload safely replays the original result.
Hints: read-only no · destructive no · idempotent no · open-world yes
send_registration_codeSend a 6-digit registration code to the user email, using the current guest session.
Parameters:
email(required) — string — The user email address.
Hints: read-only no · destructive no · idempotent no · open-world no
verify_registration_codeVerify the emailed code, create the account, claim guest links, and continue with OAuth 2.1 + PKCE. Long-lived API keys are never returned over MCP.
Parameters:
email(required) — string — The user email address.code(required) — string — The 6-digit verification code.
Hints: read-only no · destructive no · idempotent no · open-world no
get_account_statusread-onlyInspect the current guest/free/pro account status, remaining quota, and feature availability.
Hints: read-only yes · destructive no · idempotent yes · open-world no
start_pro_upgradedestructiveCreate a shortened checkout link for upgrading the current registered account to Pro.
Parameters:
interval— string — Billing interval. Defaults to monthly.approval_id— string — Approval id returned by a previous USER_APPROVAL_REQUIRED response.approval_token— string — Legacy compatibility field; normally omit it and retry with approval_id after approval.idempotency_key— string
Hints: read-only no · destructive yes · idempotent no · open-world no
list_domainsread-onlyList the account’s domains, including miniurl.com, active custom domains and pending setups with their ids and DNS records.
Hints: read-only yes · destructive no · idempotent yes · open-world no
add_domaindestructiveRequest a custom domain to be connected to MiniURL. Agent domain changes require human approval by default.
Parameters:
domain(required) — string — An apex domain such as example.com or subdomain such as links.example.com. New domains use A + ownership TXT records and automatic HTTPS on the server.approval_id— stringapproval_token— string — Legacy compatibility field; normally omit it.
Hints: read-only no · destructive yes · idempotent no · open-world no
delete_domaindestructiveDelete a custom domain and its linked URLs after a dry-run confirmation. Agent domain changes require human approval by default.
Parameters:
domain_id(required) — integerconfirm— boolean — Set true only after reviewing the dry-run impact response.approval_id— stringapproval_token— string — Legacy compatibility field; normally omit it.
Hints: read-only no · destructive yes · idempotent no · open-world no
verify_domainRefresh custom-domain DNS and SSL verification status. Agent domain changes require human approval by default.
Parameters:
domain_id(required) — integerapproval_id— stringapproval_token— string — Legacy compatibility field; normally omit it.migrate_to_server— boolean — Start migration of a legacy Cloudflare hostname to direct server DNS. Existing links remain available while A/TXT records and server HTTPS are being configured.
Hints: read-only no · destructive no · idempotent no · open-world no
list_linksread-onlyList short links for the current registered account.
Parameters:
limit— integer — Optional page size. Defaults to 20.cursor— string — Opaque cursor returned as next_cursor. Prefer cursor pagination for stable traversal.domain— string — Optional domain filter.offset— integer — Optional zero-based offset for pagination. Defaults to 0.search— string — Optional search term for alias or destination URL.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_linkread-onlyGet a single short link by alias for the current registered account.
Parameters:
alias(required) — string — The link alias to fetch.domain— string — The link domain. Defaults to miniurl.com.
Hints: read-only yes · destructive no · idempotent yes · open-world no
update_linkUpdate a registered short link. Some fields require Pro.
Parameters:
alias(required) — string — The link alias to update.url— string — New HTTP or HTTPS destination URL. Requires Pro.domain— string — The link domain. Defaults to miniurl.com.dry_run— boolean — Validate and preview the update without changing the link. Agent tokens only.password— string — Set or replace the password. Requires Pro.expiration— string — Set a new ISO 8601 expiration datetime. Requires Pro.activated_at— string — Set a new ISO 8601 activation datetime. Requires Pro.clear_password— boolean — Remove the current password.idempotency_key— stringclear_expiration— boolean — Clear the current expiration.clear_activated_at— boolean — Clear the current scheduled activation datetime.
Hints: read-only no · destructive no · idempotent no · open-world no
delete_linkdestructiveDelete a registered short link permanently.
Parameters:
alias(required) — string — The alias to delete.domain— string — The link domain. Defaults to miniurl.com.dry_run— boolean — Preview the deletion and affected link scope without writing. Human approval is still required for the real delete.approval_id— string — Approval id returned by a previous USER_APPROVAL_REQUIRED response.approval_token— string — Legacy compatibility field; normally omit it and retry with approval_id after approval.idempotency_key— string
Hints: read-only no · destructive yes · idempotent no · open-world no
bulk_create_linksCreate multiple short links in one request. Free accounts can create up to 10 at a time, Pro up to 50.
Parameters:
links(required) — arrayidempotency_key— string
Hints: read-only no · destructive no · idempotent no · open-world no
get_link_statsread-onlyGet link analytics. Free accounts receive a basic total plus an upgrade hint; Pro accounts receive full breakdowns.
Parameters:
alias(required) — string — The alias to inspect.domain— string — Optional domain to scope the alias lookup. Defaults to miniurl.com.period— string — Analytics time range. Defaults to 7D.
Hints: read-only yes · destructive no · idempotent yes · open-world no
check_aliasread-onlyCheck whether a custom alias is available on a given domain before creating a link.
Parameters:
alias(required) — string — The alias to check.domain— string — The domain to check on. Defaults to miniurl.com.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
list_tagsread-onlyList all tags for the current registered account. Tags help organise links into campaigns or categories.
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_tagCreate a new tag for organising links. Maximum 20 tags per account.
Parameters:
name(required) — string — Tag name, 1-30 characters.color— string — Tag colour hex code. Defaults to #6b7280 (grey).
Hints: read-only no · destructive no · idempotent no · open-world no
delete_tagdestructiveDelete a tag and remove it from all associated links.
Parameters:
tag_id(required) — integer — The tag ID to delete.approval_id— string — Approval id returned by a previous USER_APPROVAL_REQUIRED response.approval_token— string — Legacy compatibility field; normally omit it and retry with approval_id after approval.
Hints: read-only no · destructive yes · idempotent no · open-world no
tag_linkAdd a tag to a short link for campaign or category organisation.
Parameters:
alias(required) — string — The link alias to tag.tag_id(required) — integer — The tag ID to assign.domain— string — The link domain. Defaults to miniurl.com.
Hints: read-only no · destructive no · idempotent no · open-world no
untag_linkRemove a tag from a short link.
Parameters:
alias(required) — string — The link alias.tag_id(required) — integer — The tag ID to remove.domain— string — The link domain. Defaults to miniurl.com.
Hints: read-only no · destructive no · idempotent no · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.