Skip to main content
Glama

Create an API key

immich_create_api_key

Create a new Immich API key scoped to specified permissions, enabling limited access for integrations and automation.

Instructions

Create an API key

Creates a new API key. It will be limited to the permissions specified.

Immich operation: POST /api-keys · tag: API keys

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoname (request body)
permissionsYespermissions (request body)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, idempotent=false, destructive=false, and openWorld=true, so the agent knows this is a non-idempotent write. The description usefully adds that the resulting key is limited to the supplied permissions, but omits key behavioral facts such as whether the secret is returned only once, permission escalation limits, or what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The 'Create an API key' heading and 'Creates a new API key' sentence duplicate each other and the tool name, wasting the front-loaded position. The trailing 'Immich operation: POST /api-keys · tag: API keys' line is metadata rather than agent-facing guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining what the creation returns, yet it never says the API key secret is produced and must be captured. It covers the permission-scoping behavior but leaves the return value and auth requirements undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already names and constrains both parameters (including the full permission enum), making the baseline 3 appropriate. The description repeats the permissions constraint without adding format, defaults, or guidance on the 'name' parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title 'Create an API key' and the body's first line 'Creates a new API key' are near-tautological given the tool name immich_create_api_key. It does add that the key is scoped to specified permissions, but it never distinguishes itself from siblings like immich_rotate_api_key, immich_update_api_key, or immich_get_api_key.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of prerequisites (e.g. that the caller must already be authenticated or hold apiKey.create), and no routing against the rotate/update/get siblings. The agent is left to infer everything about when this is the right tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools