Aramb Toolkits — the single toolkit surface
aramb_mcp.toolkits_* is the one place you reach any third-party integration
(Gmail, Slack, Google Sheets/Drive, GitHub, …). It does discovery,
execution, connection management, and the trigger catalog. There is
no separate CLI — if you remember composio execute ..., that is gone; the
equivalent is aramb_mcp.toolkits_execute.
Availability — not every persona gets every tool. The agent-builder
(Architect) persona is advertised list_toolkits only: connect, execute
(and the connection-state reads) are deliberately withheld, because a connection
brokered during authoring is scoped to the builder's own project — which never
executes — so the user would authorize an account the agent can never see. There
the builder declares required_toolkits and the user connects each account
on the agent's Tools page in the console. Everything else here stays valid for
ordinary runtime agents. If a tool documented here is not in your tool list, that
is why — say so plainly and point the user at the Tools page rather than
improvising a link.
How to call
Reach these tools with mcporter:
# structured args → use --json (reliable for nested `arguments`)
npx mcporter call aramb_mcp.toolkits_execute --json '{"tool":"GMAIL_SEND_EMAIL","arguments":{"recipient_email":"a@b.com","subject":"Hi","body":"..."}}'
# a single simple arg → key="value" is fine too
npx mcporter call aramb_mcp.toolkits_search query="send an email" toolkit="gmail"
Rules:
- Prefer
--json '{...}' whenever a call has an arguments object or more
than one field — it is unambiguous. key="value" is fine for a single simple
string arg.
- Toolkit slugs are UPPERCASE as the catalog reports them (
GMAIL,
GITHUB, GOOGLESHEETS, GOOGLEDRIVE, SLACK, …). Ground every slug in
list_toolkits / search — never invent one.
execute response envelope is {tool, success, result} — the tool's
own output is under result (NOT data). Read result.
mcporter call does not support --output — don't pass it.
The core loop: discover → inspect → execute
search — find a TOOL SLUG by task. This searches the catalog of
tools, NOT your account's data. (To search data — e.g. find a spreadsheet —
you execute a toolkit tool like GOOGLESHEETS_SEARCH_SPREADSHEETS.)npx mcporter call aramb_mcp.toolkits_search --json '{"query":"create a github issue","limit":6}'
Returns {slug,name,description,toolkit,is_deprecated} rows. Avoid
is_deprecated:true slugs.
get_schema — read one tool's input arguments before calling it:npx mcporter call aramb_mcp.toolkits_get_schema --json '{"tool":"GITHUB_CREATE_AN_ISSUE"}'
execute — run it:npx mcporter call aramb_mcp.toolkits_execute --json '{"tool":"GITHUB_CREATE_AN_ISSUE","arguments":{"owner":"acme","repo":"app","title":"Bug"}}'
Connections
list_connections — the connected accounts in scope (each with
account_ref, alias, toolkit, status). Optional toolkit filter. Use
it to pick an account_ref/alias when a toolkit has several accounts.npx mcporter call aramb_mcp.toolkits_list_connections toolkit="GITHUB"
check_connection — the cheap yes/no pre-flight for one toolkit; returns
{connected, connected_account_id, account_ref, status}.npx mcporter call aramb_mcp.toolkits_check_connection toolkit="GMAIL"
connect — start an OAuth connection; returns a redirect_url the user
opens in a browser. Optional alias for a non-default/second account.npx mcporter call aramb_mcp.toolkits_connect toolkit="gmail"
# → { redirect_url: "https://...", ... } — share it, then poll check_connection until ACTIVE
The flow for "can I reach the user's ?": check_connection → if
connected:false, connect and share the redirect_url; if connected,
search/get_schema/execute the action. Check before you decline — the
connection may already exist.
Catalog & triggers
GitHub — token, then native git/gh
GitHub is not executed as a normal tool. execute the single synthetic
action GITHUB_GET_GIT_CREDENTIAL to mint a short-lived token, then use native
git / gh for everything (clone, pull, resolve conflicts, push, PRs, issues,
releases) — that is far more capable than REST tool calls. Other GITHUB_*
tools are not served here.
# 1. confirm connected
npx mcporter call aramb_mcp.toolkits_check_connection toolkit="GITHUB"
# 2. mint a token (result under `result`: {username:"x-access-token", token, account_ref, ...})
npx mcporter call aramb_mcp.toolkits_execute --json '{"tool":"GITHUB_GET_GIT_CREDENTIAL"}'
# 3. use native CLI
export GH_TOKEN="gho_…"
git clone https://x-access-token:$GH_TOKEN@github.com/acme/repo.git
gh pr create --title "..." --body "..."
- Multiple github accounts: pass
connected_account_id (a ca_… ref or
alias from list_connections toolkit="GITHUB") inside the execute arguments,
e.g. {"tool":"GITHUB_GET_GIT_CREDENTIAL","arguments":{"account_ref":"ca_…"}}.
- Not connected:
connect toolkit="github" → share the redirect_url.
- On
401 from git/gh (~8h token life), re-run the mint — cheap.
Rules
aramb_mcp.toolkits_* is the whole toolkit surface — discovery, execution,
connections, trigger catalog, github credential. There is no composio CLI.
toolkit= is the arg (never toolkit_slug); get_trigger takes slug=.
- Ground every slug in
list_toolkits / search — uppercase, verbatim.
search finds tools, not data. Data lookups are toolkit tools you
execute (e.g. *_SEARCH_*).
- Read
result from the execute envelope {tool, success, result}.
- GitHub =
execute GITHUB_GET_GIT_CREDENTIAL + native git/gh.
- Persisting an event trigger on a workflow is
aramb_mcp.triggers_* (the
configure-trigger skill) — this skill only reads the trigger catalog.
- Check before you decline. Run
check_connection before saying you can't
reach a service.
1---2name: aramb-toolkits3description: The SINGLE surface for third-party toolkits (Composio integrations) — discover, inspect, and EXECUTE tools, manage connections, read the event- trigger catalog, and mint github credentials. All via `aramb_mcp.toolkits_*`. Discover a tool (search → get_schema) then run it (execute). Check/list/connect accounts. For GitHub: execute GITHUB_GET_GIT_CREDENTIAL for a token, then use native git/gh. This skill fully replaces the retired `composio-cli` — there is no `composio` CLI; everything is an `aramb_mcp.toolkits_*` MCP call.4---56# Aramb Toolkits — the single toolkit surface78`aramb_mcp.toolkits_*` is the one place you reach any third-party integration9(Gmail, Slack, Google Sheets/Drive, GitHub, …). It does **discovery**,10**execution**, **connection management**, and the **trigger catalog**. There is11no separate CLI — if you remember `composio execute ...`, that is gone; the12equivalent is `aramb_mcp.toolkits_execute`.1314**Availability — not every persona gets every tool.** The agent-builder15(Architect) persona is advertised `list_toolkits` only: `connect`, `execute`16(and the connection-state reads) are deliberately withheld, because a connection17brokered during authoring is scoped to the builder's own project — which never18executes — so the user would authorize an account the agent can never see. There19the builder declares `required_toolkits` and the **user** connects each account20on the agent's Tools page in the console. Everything else here stays valid for21ordinary runtime agents. If a tool documented here is not in your tool list, that22is why — say so plainly and point the user at the Tools page rather than23improvising a link.2425## How to call2627Reach these tools with `mcporter`:2829```bash30# structured args → use --json (reliable for nested `arguments`)31npx mcporter call aramb_mcp.toolkits_execute --json '{"tool":"GMAIL_SEND_EMAIL","arguments":{"recipient_email":"a@b.com","subject":"Hi","body":"..."}}'3233# a single simple arg → key="value" is fine too34npx mcporter call aramb_mcp.toolkits_search query="send an email" toolkit="gmail"35```3637Rules:38- **Prefer `--json '{...}'`** whenever a call has an `arguments` object or more39 than one field — it is unambiguous. `key="value"` is fine for a single simple40 string arg.41- Toolkit slugs are **UPPERCASE** as the catalog reports them (`GMAIL`,42 `GITHUB`, `GOOGLESHEETS`, `GOOGLEDRIVE`, `SLACK`, …). Ground every slug in43 `list_toolkits` / `search` — never invent one.44- **`execute` response envelope is `{tool, success, result}`** — the tool's45 own output is under **`result`** (NOT `data`). Read `result`.46- **`mcporter call` does not support `--output`** — don't pass it.4748## The core loop: discover → inspect → execute49501. **`search`** — find a TOOL SLUG by task. *This searches the catalog of51 tools, NOT your account's data.* (To search data — e.g. find a spreadsheet —52 you `execute` a toolkit tool like `GOOGLESHEETS_SEARCH_SPREADSHEETS`.)53 ```bash54 npx mcporter call aramb_mcp.toolkits_search --json '{"query":"create a github issue","limit":6}'55 ```56 Returns `{slug,name,description,toolkit,is_deprecated}` rows. **Avoid57 `is_deprecated:true` slugs.**582. **`get_schema`** — read one tool's input arguments before calling it:59 ```bash60 npx mcporter call aramb_mcp.toolkits_get_schema --json '{"tool":"GITHUB_CREATE_AN_ISSUE"}'61 ```623. **`execute`** — run it:63 ```bash64 npx mcporter call aramb_mcp.toolkits_execute --json '{"tool":"GITHUB_CREATE_AN_ISSUE","arguments":{"owner":"acme","repo":"app","title":"Bug"}}'65 ```66 - **Account selection is optional.** Omit `connected_account_id` and the67 single in-scope account for the toolkit is auto-resolved. If several68 accounts of that toolkit are connected, the call is rejected as ambiguous —69 pass `connected_account_id` to pick one. The value may be an **account_ref**70 (`ca_…`) **or an alias** (e.g. `"work-gmail"`) from `list_connections`:71 ```bash72 npx mcporter call aramb_mcp.toolkits_execute --json '{"tool":"GMAIL_SEND_EMAIL","connected_account_id":"work-gmail","arguments":{...}}'73 ```7475## Connections7677- **`list_connections`** — the connected accounts in scope (each with78 `account_ref`, `alias`, `toolkit`, `status`). Optional `toolkit` filter. Use79 it to pick an `account_ref`/alias when a toolkit has several accounts.80 ```bash81 npx mcporter call aramb_mcp.toolkits_list_connections toolkit="GITHUB"82 ```83- **`check_connection`** — the cheap yes/no pre-flight for one toolkit; returns84 `{connected, connected_account_id, account_ref, status}`.85 ```bash86 npx mcporter call aramb_mcp.toolkits_check_connection toolkit="GMAIL"87 ```88- **`connect`** — start an OAuth connection; returns a `redirect_url` the user89 opens in a browser. Optional `alias` for a non-default/second account.90 ```bash91 npx mcporter call aramb_mcp.toolkits_connect toolkit="gmail"92 # → { redirect_url: "https://...", ... } — share it, then poll check_connection until ACTIVE93 ```9495**The flow for "can I reach the user's <service>?":** `check_connection` → if96`connected:false`, `connect` and share the `redirect_url`; if connected,97`search`/`get_schema`/`execute` the action. Check before you decline — the98connection may already exist.99100## Catalog & triggers101102- **`list_toolkits`** — the available integrations (source of truth for toolkit103 slugs). Optional `search` text filter.104- **`list_triggers` / `get_trigger`** — the event-trigger catalog for a toolkit105 (used by `configure-trigger` / `create-workflow` to ground a trigger slug and106 read its `config_schema` / `payload_schema` before persisting a107 `toolkit_event` trigger via `aramb_mcp.triggers_*`).108 ```bash109 npx mcporter call aramb_mcp.toolkits_list_triggers toolkit="GITHUB"110 npx mcporter call aramb_mcp.toolkits_get_trigger --json '{"slug":"GITHUB_NEW_ISSUE"}'111 ```112113## GitHub — token, then native git/gh114115GitHub is **not executed as a normal tool**. `execute` the single synthetic116action `GITHUB_GET_GIT_CREDENTIAL` to mint a short-lived token, then use native117`git` / `gh` for everything (clone, pull, resolve conflicts, push, PRs, issues,118releases) — that is far more capable than REST tool calls. Other `GITHUB_*`119tools are not served here.120121```bash122# 1. confirm connected123npx mcporter call aramb_mcp.toolkits_check_connection toolkit="GITHUB"124# 2. mint a token (result under `result`: {username:"x-access-token", token, account_ref, ...})125npx mcporter call aramb_mcp.toolkits_execute --json '{"tool":"GITHUB_GET_GIT_CREDENTIAL"}'126# 3. use native CLI127export GH_TOKEN="gho_…"128git clone https://x-access-token:$GH_TOKEN@github.com/acme/repo.git129gh pr create --title "..." --body "..."130```131132- **Multiple github accounts:** pass `connected_account_id` (a `ca_…` ref or133 alias from `list_connections toolkit="GITHUB"`) inside the execute arguments,134 e.g. `{"tool":"GITHUB_GET_GIT_CREDENTIAL","arguments":{"account_ref":"ca_…"}}`.135- **Not connected:** `connect toolkit="github"` → share the `redirect_url`.136- On `401` from git/gh (~8h token life), re-run the mint — cheap.137138## Rules139140- **`aramb_mcp.toolkits_*` is the whole toolkit surface** — discovery, execution,141 connections, trigger catalog, github credential. There is no `composio` CLI.142- **`toolkit=` is the arg** (never `toolkit_slug`); `get_trigger` takes `slug=`.143- **Ground every slug** in `list_toolkits` / `search` — uppercase, verbatim.144- **`search` finds tools, not data.** Data lookups are toolkit tools you145 `execute` (e.g. `*_SEARCH_*`).146- **Read `result`** from the execute envelope `{tool, success, result}`.147- **GitHub** = `execute GITHUB_GET_GIT_CREDENTIAL` + native `git`/`gh`.148- **Persisting** an event trigger on a workflow is `aramb_mcp.triggers_*` (the149 `configure-trigger` skill) — this skill only reads the trigger catalog.150- **Check before you decline.** Run `check_connection` before saying you can't151 reach a service.