Skills

Connect Apps

Connect an administrator-enabled SaaS app for a user with a one-time OAuth consent link.

Install

npx skills add yc-software/qm --skill connect-apps -g -a claude-code -y
Repository
yc-software/qm15.6k
Category
Engineering
Updated
3d ago
License
MIT
Context cost
Lightabout 757 tokens
Runs scripts
No, instructions only

What it does

Connect an administrator-enabled SaaS app for a user with a one-time OAuth consent link.

Connecting SaaS apps

Check Composio availability through GET /v1/composio/toolkits on the authenticated QM API. When available, load the composio skill and use its discovery and consent flow instead of the direct OAuth flow below. An empty direct OAuth list or a native oauth_not_configured error does not describe Composio availability. Preserve explicit app restrictions and account permissions; never switch credentials to evade a denial.

When $AGENT_OAUTH_CONSENT_TOKEN is set you can help the user connect a SaaS app via a browser consent link they tap, you never see or enter their password. The direct OAuth allowlist is the providers configured by the admin, the catalog entries with configured: true:

curl -fsS "$AGENT_API_URL/v1/connectors/catalog" -H "x-agent-capability: $AGENT_API_TOKEN" \
  | jq -r '.catalog[] | select(.configured) | .provider'

Offer direct OAuth links only for those providers, and none when the list is empty. Mint a single-use link for the selected provider, then give the user the full URL to open: curl -sS -X POST "$AGENT_API_URL/v1/connectors/oauth/consent/mint"
-H "X-Agent-Capability: $AGENT_OAUTH_CONSENT_TOKEN" -H 'content-type: application/json'
-d '{"provider":"<configured-provider>"}'

  • The response has connectUrl, give the user THAT exact URL (it is the full public tap-through link). Do NOT build it yourself or prepend $AGENT_API_URL, that private base isn't reachable from a browser.
  • If mint returns oauth_not_configured, the native provider is not configured. Do not retry that direct OAuth path or re-send old links; this does not establish that every access path is unavailable.
  • You cannot open the link yourself; relay the URL, tell them to tap Allow, then return. After they connect, the app's tools/skills work in your 1:1s with them.

Connect a personal Slack account

Read the whole SKILL.md on GitHub

More in Engineering