Skip to main content
Glama
devyhan
by devyhan

Begin browser sign-in

auth_begin_login
Read-onlyIdempotent

Start Redmine OAuth2 sign-in in the system browser, then prompt the user to finish and call auth_login_status. Keep credentials and codes out of chat.

Instructions

Starts a Redmine OAuth2 sign-in in the system browser and returns immediately. Ask the user to finish there, then call auth_login_status. Never ask for credentials, an API key, or an authorization code in the conversation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
scopesNoExtra Redmine permission scopes to consent to, e.g. ["admin"]. Omit to sign in with the scopes this configuration needs. Re-running with only missing scopes prompts only for what was added.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare the safety profile (readOnlyHint, idempotentHint, destructiveHint), which the description does not simply repeat. Instead it adds non-blocking semantics ('returns immediately'), the out-of-band user interaction model in the system browser, and a security guardrail against collecting secrets in-conversation — all behavior an agent could not infer from the structured fields.

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?

Three sentences, front-loaded with the action and the immediate-return fact, then the follow-up routing, then the guardrail. No filler and no repetition of the title.

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

Completeness4/5

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

For a no-argument flow-initiation tool with no output schema, the description covers what the agent must do before, during, and after the call. It does slightly under-specify what the tool returns (e.g. a URL, a pending state, or an error when no browser is available), which matters more given there is no output schema.

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?

There is a single optional parameter ('scopes') with 100% schema description coverage, including an example and the incremental-consent behavior on re-run. The description adds nothing about it, so the schema carries the load; baseline 3 applies.

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 ('Starts a Redmine OAuth2 sign-in in the system browser') plus the key behavioral fact that it returns immediately. It is unmistakably distinct from the sibling auth_login_status, which it names as the follow-up step.

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?

Gives explicit sequencing guidance: 'Ask the user to finish there, then call auth_login_status,' and a hard negative constraint ('Never ask for credentials, an API key, or an authorization code'). It does not state the when-not case (e.g. that the agent should not call this at all if a session is already valid), so it falls just short of full alternatives coverage.

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