Skip to main content
Glama

Attach a connected integration's tools

attach_integration_tools

Add the tools of a CONNECTED integration (Gmail, Outlook, Google Drive, Microsoft 365, T2 WhatsApp, Msegat …) to an agent under their real, account-specific names. For a Blueprint-born agent pass the integration group_id (its tool list and workflow steps are used); otherwise a reference and optionally tools (base names) and, for a workflow, nodes. Idempotent. Refusal codes: integration_not_connected, integration_connect_your_own, integration_not_owner, integration_mismatch, integration_tools_unknown, integration_tools_unavailable, integration_group_unknown, integration_no_target, integration_not_personal. personal_mode (personal accounts only): 'running_user' makes the tools act as each running person's own connected account; 'fixed' keeps this one account.

Input Schema

NameRequiredDescriptionDefault
nodesNoWorkflow only: the agent steps that get the tools (default: the group's steps).
toolsNoBase tool names to attach (default: the group's list, else every tool of the integration).
agent_idYesTarget agent's id (from list_agents / create_agent / get_catalog view=agents).
group_idNoBlueprint integration group id (e.g. 'mailbox'), from get_blueprint / the checklist.
referenceNoIntegration reference (e.g. 'gmail', 'outlook', 't2'); also picks one option of a group.
personal_modeNoPersonal accounts only: 'running_user' = each person's own connected account, 'fixed' = always this account. Omit to keep the current mode.
integration_idNoA specific connected account; default the first connected one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / personal_mode
      Added value: +{
      +  "description": "Personal accounts only: 'running_user' = each person's own connected account, 'fixed' = always this account. Omit to keep the current mode.",
      +  "enum": [
      +    "running_user",
      +    "fixed"
      +  ],
      +  "type": "string"
      +}
  2. Added

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only say it is a non-read-only, non-destructive write. The description adds genuinely new behavior: idempotency, a full enumeration of nine refusal codes with their semantics, and the runtime effect of personal_mode on whose credentials the attached tools use. That is well beyond what annotations convey.

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, then the branching rule, then the behavioral notes. Dense but nearly every clause carries information. Minor redundancy: the personal_mode explanation largely duplicates the schema's own description of that enum.

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?

No output schema exists, so the description carries the return-value burden; it covers failure modes thoroughly via refusal codes and states idempotency, but does not say what a successful call returns or what happens to previously attached tools on re-run. Adequate for a 7-parameter mutation tool, with a small remaining gap.

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 per-parameter baseline is 3. The description goes further by explaining cross-parameter routing (group_id vs reference vs tools/nodes) and restates the personal_mode effect, adding combination logic the flat schema cannot express.

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+resource combination ('Add the tools of a CONNECTED integration ... to an agent'), names concrete integration examples, and specifies the naming behavior ('under their real, account-specific names'). This clearly separates it from the generic attach_ai_tool and the other attach_* siblings (MCP server, API endpoint, file, sub-agent).

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?

It gives explicit branching guidance: pass group_id for a Blueprint-born agent, otherwise pass a reference plus optional tools/nodes. The 'CONNECTED' qualifier and the integration_not_connected refusal code signal the precondition. It stops short of naming a specific alternative tool to use when the integration is not yet connected.

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