Agent Skills › yc-software/qm › connect-apps

connect-apps

GitHub

指导Agent通过OAuth流程连接SaaS应用,支持Composio及Slack个人账户关联。包含API调用、链接生成及身份合并逻辑,确保用户隐私与权限合规。

skills-seed/connect-apps/SKILL.md yc-software/qm

Trigger Scenarios

用户请求连接第三方SaaS应用 用户需要授权OAuth访问 用户要求绑定Slack账户

Install

npx skills add yc-software/qm --skill connect-apps -g -y
More Options

Non-standard path

npx skills add https://github.com/yc-software/qm/tree/main/skills-seed/connect-apps -g -y

Use without installing

npx skills use yc-software/qm@connect-apps

指定 Agent (Claude Code)

npx skills add yc-software/qm --skill connect-apps -a claude-code -g -y

安装 repo 全部 skill

npx skills add yc-software/qm --all -g -y

预览 repo 内 skill

npx skills add yc-software/qm --list

SKILL.md

Frontmatter
{
    "name": "connect-apps",
    "description": "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 live Connected apps block is the direct OAuth allowlist: offer direct OAuth links only for providers configured by the admin, and offer no direct OAuth links when that 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":""}'

  • 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

When someone asks to connect Slack or use their existing web connectors from Slack, offer the personal Slack linking widget in web chat, or direct them to QM web Settings (/?view=settings) and Link your Slack account from Slack. They must sign in with their existing web account before connecting. This authorizes personal Slack access and links their verified Slack identity to that QM account. Workspace bot installation is separate. Do not create a generic Composio Slack link or infer identity from matching emails.

In web chat, offer personal Slack account linking with ::link-slack-account{} as a standalone paragraph, outside code fences and quotations. Use it when someone wants Slack search, actions on their behalf, or access to their existing web connectors from Slack. This shows the personal linking card and its verified connection status, without the general app picker. Company bot installation must be completed first; use ::add-to-slack{} for that separate administrator step. In Slack, send them to QM web Settings while signed into their existing web account; web widget directives do not render in Slack.

Version History

  • b6abeaf Current 2026-09-27 12:30

    优化Composio凭据后端存储;新增个人Slack账户与现有Web身份的主实体关联功能,解决多身份碎片化问题。

  • ca47f5c 2026-09-22 01:40

    新增优先检查 Composio 凭据的逻辑;修正 oauth_not_configured 错误的处理说明,强调不重试直接 OAuth 路径。

  • 7f2c916 2026-08-02 21:46

Same Skill Collection

.claude/skills/dev-instance/SKILL.md
.claude/skills/update-qm/SKILL.md
.claude/skills/upstream-pr/SKILL.md
.codex/skills/deploy-qm/SKILL.md
.codex/skills/dev-instance/SKILL.md
.codex/skills/update-qm/SKILL.md
.codex/skills/upstream-pr/SKILL.md
cli/templates/deployment/SKILL.md
plugins/onboarding/skills/onboarding/SKILL.md
skills-seed/admin/SKILL.md
skills-seed/browse/SKILL.md
skills-seed/cloud-cli/SKILL.md
skills-seed/composio/SKILL.md
skills-seed/define-loop/SKILL.md
skills-seed/dropbox/SKILL.md
skills-seed/email-draft-in-voice/SKILL.md
skills-seed/email-voice-profile/SKILL.md
skills-seed/github-gitlab/SKILL.md
skills-seed/google-drive-sheets/SKILL.md
skills-seed/google-workspace/SKILL.md
skills-seed/interactive-login/SKILL.md
skills-seed/linear/SKILL.md
skills-seed/memory/SKILL.md
skills-seed/miniapp/SKILL.md
skills-seed/morning-digest/SKILL.md
skills-seed/popular-web-designs/SKILL.md
skills-seed/publish/SKILL.md
skills-seed/send/SKILL.md
skills-seed/slack-drafts/SKILL.md
skills-seed/taste-skill/SKILL.md
skills-seed/use-shared-credential/SKILL.md

Metadata

Files
0
Version
b6abeaf
Hash
d94fde49
Indexed
2026-08-02 21:46

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-27 21:18
浙ICP备14020137号-1