Skip to main content
Glama

Start OAuth

start_oauth
Destructive

Start, poll, or finish FreedomOS-native vendor sign-in (X, Slack, Meta, Xero) after the operator approved the Connect card. action=start mints once and returns authorize_url only when open=true — open that URL once. If already pending, start reuses the mint and does not return a URL (do not open another tab). Poll action=status until connected; status never returns authorize_url. action=claim stays for hosts that already hold the bounce code. Do not use for Composio/rented connectors.

Routing: After decide_command_center_item approve on an oauth_account Connect card, call this — do not wait for a browser Sign in on getfreedomos.com.

[sensitive-tier — company managers (executive/gm) run this without a card. Other members ask once; a from-now-on approval makes future calls seamless. Connecting a connector still needs the OAuth/connect card (request≠grant). Call it on the first clear ask — do not re-ask in chat.]

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeNoBounce authorization code. Required for claim only — Desk reclaim does not need the host to pass it. Xero org pick can pass tenant_id without a new code.
actionYesstart mints a one-time vendor authorize_url (open only when open=true); a second start while pending reuses and does not remint; status polls until Desk reclaims and never re-hands the URL; claim finishes when a host already holds the bounce code.
card_idNoConnect card UUID (from request_connector / get_command_center_item). Required for start.
providerNoNative door id (x_twitter, x_ads, slack, meta, threads, xero). Optional on start when the card names it; required on claim.
companyIdYesFreedomOS company id to act within (you must be a member). Required for company-scoped tools.
tenant_idNoXero organisation id. Optional on start (preferred org) and claim. Required to finish when claim returns needs_org_selection — pass tenant_id without a new code. Never binds an org already used by another company.
oauth_claim_stateNoReturned by action=start. Required for claim when a host already holds the bounce code.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=false likeness, but the description adds critical side-effect detail: 'action=start mints once and returns authorize_url only when open=true,' 'status never returns authorize_url,' and 'do not open another tab.' It also discloses the sensitive-tier permission policy and that approval for future calls is seamless.

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 description is dense but every sentence earns its place: purpose, operation modes, routing, permission policy, and anti-patterns. It front-loads the core verb+resource and then layers the mode-specific behavioral rules without repetition.

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 complex multi-mode OAuth tool with seven parameters and no output schema, the description is comprehensive. It covers the full lifecycle (start → poll → claim), routing after the approval step, the one-time URL constraint, the forbidden Composio path, and the sensitive-tier access policy. The no-output-schema gap is mitigated by explicitly stating when authorize_url is returned and when it is not.

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%, putting the baseline at 3. The description adds meaningful behavior beyond the schema: it explains the tri-state action semantics (start/status/claim), the one-time mint and reuse behavior, and the 'needs_org_selection' tenant_id edge case. The provider list and optional/required rule are also reinforced in prose.

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 first sentence names a specific verb and resource: 'Start, poll, or finish FreedomOS-native vendor sign-in (X, Slack, Meta, Xero)' after the operator approved the Connect card. It also distinguishes this tool from the class of OAuth connectors with 'Do not use for Composio/rented connectors.' No ambiguity about what the tool does.

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?

Explicitly states when to call it: 'After decide_command_center_item approve on an oauth_account Connect card, call this — do not wait for a browser Sign in on getfreedomos.com.' It also gives clear when-not guidance ('Do not use for Composio/rented connectors') and pauses re-asks ("do not re-ask in chat").

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources