Agent skill

composio-apps

Connected app tool recipes for Dench Integrations (Gmail, Slack, GitHub, Notion, Google Calendar, Linear, Stripe)

Stars 1,503
Forks 102

Install this agent skill to your Project

npx add-skill https://github.com/DenchHQ/DenchClaw/tree/main/skills/composio-apps

SKILL.md

Dench Integrations connected apps

Use the Dench Integrations tools only. In DenchClaw, always search first with composio_search_tools, inspect the returned full schemas plus plan/pitfall guidance, then execute the chosen tool via composio_call_tool. composio_resolve_tool still exists as a compatibility wrapper when you want a single best-match result, but ranked search is the default path. Some sessions may still expose direct tool names like GMAIL_FETCH_EMAILS, but do not rely on that as the default path.

Do not use:

  • gog
  • shell CLIs for Gmail / Calendar / Drive / Slack / GitHub / Notion / Linear
  • curl
  • raw gateway HTTP calls
  • direct provider REST calls

If the user mentions Dench Integrations, the connected-app layer, rube, map, MCP, or says an app is already connected, this is the only allowed integration path. If the integration wrapper tools are unavailable in the current session, stop and report repair guidance instead of bypassing them.

Do not rely on workspace cache files like composio-tool-index.json, composio-tool-catalog.json, or composio-mcp-status.json as runtime truth. composio_search_tools is the source of truth because it returns official integration search results, full input_schema, connection/account status, recommended_plan_steps, known_pitfalls, and a reusable search_session_id when available.

General rules

  • Tool names are uppercase with underscores (e.g. GMAIL_FETCH_EMAILS).
  • Execute searched or resolved tools through composio_call_tool with the returned app, tool_name, search_context_token, optional search_session_id, optional selected account, and the final arguments object.
  • Do not invent or alter dispatcher_input; copy it from composio_search_tools or composio_resolve_tool and only add the final arguments.
  • Pass JSON-shaped arguments as the tool schema requires: arrays are arrays, not comma-separated strings.
  • Read the returned input_schema before filling arguments. Use exact field names and types from that schema.
  • Treat the live schema as authoritative over any recipe table below. Pay attention to required, property type, nested objects/arrays, enums, defaults, and pagination fields.
  • If a call fails on argument shape, fix the types and retry once before escalating.
  • If composio_search_tools or composio_resolve_tool says account selection is required, ask the user which connected account to use before calling composio_call_tool.
  • Do not pass account unless the search flow actually returned or required it for the chosen live result.
  • If the returned search result includes pagination fields such as starting_after, next_cursor, page, or page_token, keep paginating until complete when the user asked for the full dataset.
  • Never fall back to gog, curl, or raw gateway HTTP for a connected app task unless the user explicitly asks for that non-integration path.

Gmail

Intent Tool Defaults / notes
List / read recent mail GMAIL_FETCH_EMAILS label_ids: ["INBOX"], max_results: 10
Read one message GMAIL_FETCH_MESSAGE_BY_MESSAGE_ID message_id from list results
Send mail GMAIL_SEND_EMAIL to, subject, body (use schema field names)

Gotcha: label_ids must be an array like ["INBOX"], never a single string.

Slack

Intent Tool Defaults / notes
Send a message SLACK_SEND_MESSAGE channel, text
List channels / DMs SLACK_LIST_CONVERSATIONS Use schema filters if needed

Gotcha: channel is usually a channel ID (often starts with C), not the display name.

GitHub

Intent Tool Defaults / notes
List repos for user GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER Pagination per schema
Find / search pull requests GITHUB_FIND_PULL_REQUESTS Best first path for "recent PRs" or broad PR search
List pull requests in a repo GITHUB_LIST_PULL_REQUESTS Requires owner and repo
Get one pull request GITHUB_GET_A_PULL_REQUEST owner, repo, pull_number
Repo metadata GITHUB_GET_A_REPOSITORY owner, repo
Create issue GITHUB_CREATE_AN_ISSUE owner, repo, title, body

Notion

Intent Tool Defaults / notes
Search NOTION_SEARCH Query string per schema
Read page NOTION_GET_PAGE Page ID
Create page NOTION_CREATE_PAGE Parent object per schema

Google Calendar

Intent Tool Defaults / notes
List calendars GOOGLE_CALENDAR_CALENDAR_LIST Optional params per schema
Upcoming events GOOGLE_CALENDAR_EVENTS_LIST Prefer a clear time window when possible
List events GOOGLE_CALENDAR_EVENTS_LIST calendar_id, time range (time_min / time_max as RFC3339)
Find event GOOGLE_CALENDAR_EVENTS_LIST Use search text / date window fields supported by the schema
Create event GOOGLE_CALENDAR_CREATE_EVENT Calendar id + event payload per schema

Gotcha: Datetimes should be RFC3339 strings.

Linear

Intent Tool Defaults / notes
List issues LINEAR_LIST_ISSUES Filters per schema
Get issue LINEAR_GET_ISSUE Issue id
Create issue LINEAR_CREATE_ISSUE Team id, title, description per schema

Stripe

Intent Tool Defaults / notes
List subscriptions STRIPE_LIST_SUBSCRIPTIONS Use schema filters when needed; good starting point for ARR / trials / billing analysis
Search subscriptions STRIPE_SEARCH_SUBSCRIPTIONS Prefer when the user mentions a customer or subscription-specific filter
List customers STRIPE_LIST_CUSTOMERS Use for customer lookup and account drill-down
List invoices STRIPE_LIST_INVOICES Useful for billing status and revenue workflows
List charges STRIPE_LIST_CHARGES Good for payment activity and charge inspection
Retrieve balance STRIPE_RETRIEVE_BALANCE Good for current Stripe balance snapshots

Subagent handoff

When delegating, include: which app, the exact tool name, and the argument object you intend (copy shapes from the live tool schema, composio_search_tools, or composio_resolve_tool).

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results