Skip to main content
Glama

Connect the directory

directory_connect

Connect the company's Microsoft Entra ID or Okta. Entra ID: tenant_id, client_id and the client secret of an app registration with User.ReadWrite.All and GroupMember.ReadWrite.All (and User.EnableDisableAccount.All), consented by the tenant's admin. Okta: org_url and an admin's API token. Called without secret, it answers with a link for the owner, who types it on a Conecto page, so it never passes through the chat (from_a_terminal does the same from a terminal); account.credential_added says when it is connected, and the link costs nothing. The connection is checked by reading one person. Suspensions then wait for the owner's approval by default. Costs $0.001 per call; nothing if it fails.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "provider": "<provider>"
    },
    "name": "directory_connect"
  }
}

Input Schema

NameRequiredDescriptionDefault
secretNoThe Entra client secret or the Okta API token. Never shown again. Leave it out to get the link instead.
org_urlNo
providerYes
client_idNo
tenant_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / secret / description
      Previous value: -"The Entra client secret or the Okta API token. Never shown again."New value: +"The Entra client secret or the Okta API token. Never shown again. Leave it out to get the link instead."
    • changedInput schema / required
      Previous value: -[
      -  "provider",
      -  "secret"
      -]New value: +[
      +  "provider"
      +]
  2. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare the basic mutation profile; the description adds substantial context beyond them: required tenant admin consent, exact Graph permission scopes, the fact the secret never traverses the chat in link mode, the account.credential_added completion signal, verification by reading one person, default approval gating on suspensions, and per-call cost with failure exemption.

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?

Front-loaded with purpose and the two provider paths before moving to side effects and cost. It is dense and slightly run-on in places, but nearly every clause carries actionable information with little 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?

For a non-idempotent mutation with five parameters, no output schema and partial schema docs, this covers prerequisites, auth scopes, cost, the async link flow and its completion event, and downstream behavior after connecting. An agent has everything needed to call it correctly.

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

Parameters5/5

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

Schema coverage is only 20% (only secret is described), so the description carries the burden and does: it maps tenant_id, client_id and the secret to Entra, org_url and an admin API token to Okta, and explains the provider choice and the omitting-the-secret behavior. That meaningfully exceeds 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?

Opens with a specific verb and resource: connecting the company's Microsoft Entra ID or Okta. This clearly separates it from the other directory_* siblings, which all operate on users or groups rather than the directory connection itself.

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 contrasts the two invocation modes: passing a secret performs the connection directly, while omitting it returns an owner link, and it names from_a_terminal as the terminal equivalent. It does not explicitly point at directory_disconnect for the reverse operation, so it stops just short of full routing guidance.

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