Skip to main content
Glama
Nextcloud MCP Server

Nextcloud MCP Server

by a-lagutov

login

Authenticate to Nextcloud using browser-based sign-in to issue and save an app password, or supply a username and app password for manual, browserless authentication.

Instructions

Sign in to Nextcloud with Login Flow v2: opens the server's login page in the default browser, the user signs in (SSO works), and an app password is issued and saved. Waits up to 2 minutes, then keeps waiting in the background and returns the login URL. Call this when other tools report that the user is not logged in. Without a browser, pass login_name and app_password (Settings → Security → App passwords).

Input Schema

NameRequiredDescriptionDefault
login_nameNoLogin name for manual mode, no browser needed
server_urlNoNextcloud URL (any page of it works). Required on the first login, then the saved one is used
app_passwordNoApp password for manual mode, no browser needed

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so well: it discloses that a browser window opens, SSO works, an app password is issued and saved, and the tool waits up to 2 minutes before continuing in the background and returning the login URL. This gives an agent a clear picture of side effects, timing, and fallback behavior.

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

Conciseness5/5

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

The definition is front-loaded with the primary behavior and then adds the fallback path and usage trigger. Every sentence provides actionable information with no filler.

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?

No output schema or annotations exist, but the description covers the key return behavior (login URL), the 2-minute wait/background continuation, and the manual credential alternative. Nothing essential for an agent to invoke this authentication tool correctly 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 all three parameters are already documented. The description still adds practical meaning by tying login_name and app_password to the no-browser mode and by telling the user where to obtain an app password (Settings → Security → App passwords); server_url behavior is left to the schema.

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?

The description opens with a specific verb and resource: 'Sign in to Nextcloud with Login Flow v2.' It clearly identifies this as an authentication tool, distinguishing it from the file-operation siblings without requiring schema inspection.

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

Usage Guidelines5/5

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

It explicitly says when to call it: 'Call this when other tools report that the user is not logged in.' It also names the no-browser alternative and tells the user to pass login_name and app_password in that case.

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