kutt-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP port. Default 3000. | |
| KUTT_URL | Yes | Required. Origin only, http or https, with no userinfo, query, hash, or path. Example http://127.0.0.1:8101. | |
| KUTT_API_KEY | Yes | Required. Sent as X-API-KEY. Redacted in logs, errors, and tool results. | |
| KUTT_CONTACT | No | Contact token in the User-Agent. Must not contain the API key. | |
| MCP_TRANSPORT | No | Transport mode: stdio or http. --http overrides. | |
| KUTT_PER_MINUTE | No | Local request budget. Default 30. Cache hits do not spend it. | |
| KUTT_TIMEOUT_MS | No | Upstream timeout in milliseconds. Default 20000. | |
| KUTT_ALLOW_WRITES | No | Must be the literal true before a confirmed write is sent. | |
| KUTT_CACHE_TTL_SEC | No | Read cache TTL in seconds. Default 60. Writes clear the cache. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| kutt_linksA | List, create, update, delete, and read stats for Kutt short links. List query is limit, skip, all, and source-supported search. There is no native GET /links/{id}. Writes run only when confirm is true and KUTT_ALLOW_WRITES=true. Omit confirm or pass false for a preview that sends nothing. Actions: list, create, update, delete, stats. |
| kutt_domainsA | List, create, and delete custom Kutt domains. List is derived from GET /users domains. Writes run only when confirm is true and KUTT_ALLOW_WRITES=true. Omit confirm or pass false for a preview that sends nothing. Actions: list, create, delete. |
| kutt_infoA | Read Kutt health and the authenticated user profile. me never returns apikey. Actions: health, me. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
The three tools map to clearly separate resources: short links, custom domains, and server/user info, so there is little risk of choosing the wrong one. The only residual ambiguity is inside each tool, where the action parameter selects among list/create/update/delete/stats, so an agent must read the enum rather than the tool name alone.
All three tools follow a uniform kutt_<resource> convention with plural noun resources (kutt_links, kutt_domains, kutt_info). There is no mixing of casing or verb styles, and the sub-actions are consistently expressed through an action parameter instead of proliferating verb-prefixed names.
Three tools is on the thin side but is justified here because each aggregates a whole CRUD surface via an action dispatcher, keeping the surface compact rather than fragmenting into a dozen verb tools. It sits at the low end of the comfortable range, which is acceptable but leaves little granularity.
Links cover list/create/update/delete/stats and domains cover list/create/delete, plus health and authenticated profile reads, which matches the core Kutt workflow. The explicit absence of a single-link GET and the lack of domain update/verification or user-profile update are minor gaps an agent can work around.