Skip to main content
Glama
arttus

umami-mcp-server

by arttus

Create an Umami login

umami_create_user

Create a new login account for internal team members on a self-hosted Umami instance. Specify username, password, and role; requires admin access.

Instructions

Create a new login account on this self-hosted Umami instance. This is for internal team members who need their own login, not for issuing client-facing accounts.

Admin access required. Not available on Umami Cloud.

Args:

  • username (string, required): Login username.

  • password (string, required): Login password. The user can change it after logging in.

  • role ('admin' | 'user' | 'view-only'): Instance-wide role (default: 'user'). 'admin' can manage all users and websites; 'user' can manage their own websites; 'view-only' can only view.

  • id (string, optional): Force a specific UUID for the user.

Returns: { "id": string, "username": string, "role": string }

Examples:

  • "Create a login for the new ops hire" -> username="jordan", password="", role="user"

Error handling:

  • Fails with a 400 if the username is already taken.

  • Fails with 403 if the calling account is not an Umami admin.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoForce a specific UUID for the user.
roleNoInstance-wide role.user
passwordYesLogin password, at least 8 characters.
usernameYesLogin username.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only cover read-only/idempotent/destructive hints, so the description carries the behavioral burden and succeeds. It discloses error conditions (400 for duplicate username, 403 for non-admin), permission requirements, platform availability, and a post-creation behavior (user can change password after logging in). It also explains role privileges ('admin' can manage all users and websites, etc.) in detail. No contradiction with annotations.

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

Conciseness4/5

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

The description is long but every section earns its place: purpose, audience, constraints, args, returns, example, and error handling. It is front-loaded with the core purpose. Minor redundancy exists where arg descriptions echo the schema verbatim (username, id), but the role explanation, return shape, and error handling justify the length.

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

Completeness5/5

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

For a privileged mutation tool with no output schema, the description is unusually complete: it covers return shape (compensating for the missing output schema), permission prerequisites, error handling, all parameter semantics, and a usage example. There is nothing an agent needs to know to invoke this correctly that is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description nonetheless adds value beyond the schema: it expands role semantics from a bare 'Instance-wide role' into concrete permissions for each role, notes that the password is changeable after login, and provides an example mapping natural language to parameter values. This is meaningful additive semantic content.

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

Purpose5/5

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

States a specific verb and resource: 'Create a new login account on this self-hosted Umami instance.' It distinguishes itself from sibling tools by clarifying 'not for issuing client-facing accounts,' which separates it from umami_onboard_client and umami_create_team. An agent can tell exactly what this tool does and what it is not for.

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

Usage Guidelines4/5

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

Explicitly states the target audience ('internal team members who need their own login') and gives a clear exclusion ('not for issuing client-facing accounts'). It also provides preconditions ('Admin access required') and a platform limitation ('Not available on Umami Cloud'). It does not name the alternative tool explicitly (e.g., 'use umami_onboard_client instead'), which keeps it a 4 rather than a 5.

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