connect-apps
GitHub指导Agent通过OAuth流程连接SaaS应用,支持Composio及Slack个人账户关联。包含API调用、链接生成及身份合并逻辑,确保用户隐私与权限合规。
Trigger Scenarios
Install
npx skills add yc-software/qm --skill connect-apps -g -y
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


