port-keeper-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT_KEEPER_SLOT | No | Fallback slot name used when no slot is bound to the working copy and no --slot flag is given. The binding wins if it disagrees. |
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
} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| current_contextA | The project and slot resolved from the working directory, with the service names. Returns no port numbers. |
| render_envA | Every environment variable of the current slot (service ports, derived values, PORT_KEEPER_PROJECT/SLOT) in a format: dotenv, export, json, mise, direnv or claude-env. Leases ports for services that have none yet. For your own use: to write .env.local run the |
| resolve_portA | Bare port number of one service. Prefer resolve_url unless the caller needs the number itself (a tcp service, a config value). |
| resolve_urlA | Full URL (e.g. http://localhost:23417) of one service in the current slot. Pass project and slot to look up another project; both are required together. |
| slot_newA | Create a slot for the current project and lease its ports. Returns the existing slot when the name is taken. Omit name for the next free number. |
| statusB | Ledger versus reality for the current slot: each service's state (leased, active, stale, hijacked) and the listening process when known. |
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 6 tools
Each tool has a clear, single responsibility: context, env rendering, port resolution, URL resolution, slot creation, and status. No two tools overlap; even resolve_port and resolve_url are distinguished by use case.
Most tools follow verb_noun (render_env, resolve_port, resolve_url, slot_new) but current_context and status are noun phrases. The snake_case style is consistent, but the grammatical pattern is mixed.
With 6 tools, the set is well-scoped for a port/slot management server. Each tool serves a distinct need without bloat.
The core lifecycle (create slot, resolve ports, render env, check status) is covered, but there is no explicit 'delete slot' or 'release ports' tool, which might be a minor gap for full lifecycle management.