# How to connect Smokeball to Claude

```json
{
  "title": "How to connect Smokeball to Claude",
  "toolkit": "Smokeball",
  "toolkit_slug": "smokeball",
  "framework": "Claude Cowork",
  "framework_slug": "claude-cowork",
  "url": "https://composio.dev/toolkits/smokeball/framework/claude-cowork",
  "markdown_url": "https://composio.dev/toolkits/smokeball/framework/claude-cowork.md",
  "updated_at": "2026-11-04T05:32:30.109Z"
}
```

## Introduction

Claude is Anthropic's AI assistant, available on the web, in the desktop app, and on mobile. Cowork is its agent for knowledge work, and it runs on all of those surfaces too. Connected to your apps, Claude can work with your files and services to accomplish complex tasks on your behalf.
This guide walks you through the easiest and most secure way to connect your Smokeball account to Claude via Composio Connect, enabling it to list open matters assigned to me, find contacts for a specific matter, create tasks for overdue Smokeball matters, and more such actions on your behalf without compromising your account security.
Setup is the same on Claude Web, Desktop, and Cowork, and you only need to do it once. The connector is tied to your account, so it's available in all three.

## Also integrate Smokeball with

- [ChatGPT](https://composio.dev/toolkits/smokeball/framework/chatgpt)
- [Hermes](https://composio.dev/toolkits/smokeball/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/smokeball/framework/atomic-agent)

## Connect Smokeball to Claude Cowork

### Connecting Smokeball to Claude Web, Desktop, and Cowork
Two ways to add the Composio connector. Pick whichever you prefer.
### 1. Add with one click
Click the button. Claude opens with the Composio connector filled in. Click Add, then go to step 2.
[Add to Claude](https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Composio&connectorUrl=https%3A%2F%2Fconnect.composio.dev%2Fmcp)
### Add manually
In Claude Desktop, click Customize in the left sidebar, then select Connectors and click the + icon at the top.
Click Add custom connector and paste in the Composio MCP server URL:

```bash
https://connect.composio.dev/mcp
```

## What is the Smokeball MCP server, and what's possible with it?

The Smokeball MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Smokeball account. It provides structured and secure access to legal practice management actions for matters, contacts, tasks, documents, billing, and firm records, so your agent can create and organize matters, manage contacts and legal work, add files and notes, and record fees, expenses, and transactions on your behalf.
- Matter and contact management: Have your agent create matters and contacts, add tags, set up matter folders and layouts, and manage contact relationships and matter roles.
- Tasks, events, and reminders: Let the agent create tasks and subtasks, schedule calendar events, add event reminders, and link existing documents to tasks.
- Files, memos, and document previews: Direct your agent to add files to matters, create matter memos, and request PDF previews for current file versions.
- Billing and financial records: Instruct your agent to record matter fees and expenses, create bank transactions, and submit bank account requisitions.
- Firm administration: Have your agent create firms, staff members, activity codes, notifications, and webhook subscriptions for Smokeball workflows.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `SMOKEBALL_ADD_CONTACT_TAGS` | Add Contact Tags | Adds one or more tags to an existing contact by contact id; tags that already exist on the contact are not duplicated by the documented behaviour. Returns a link to the contact; read it back with GET_CONTACT to see the full tag list. |
| `SMOKEBALL_ADD_MATTER_FILE` | Add Matter File | Register a new matter file and return a sensitive presigned PUT URL valid for 1 hour that authorizes its content upload. Do not expose or log the URL. This toolkit does not upload bytes: PUT them with an empty Content-Type header, then allow the storage callback to complete. Confirm the file using the returned fileId with GET_MATTER_FILE; it returns 404 before confirmation. fileName is split on its last '.', normalized to XML-safe characters, and must retain a valid character. A 202 response means accepted, not completed. |
| `SMOKEBALL_ADD_MATTER_FILES_BATCH` | Add Matter Files Batch | Register a migration batch of matter files and return one sensitive presigned PUT URL, valid for 1 hour, per item in request order. Each URL authorizes content upload; do not expose or log it. The call is not atomic: validation proceeds in order, so a 400 for item n leaves earlier upload requests in place. There is no documented array cap or Location header. This toolkit does not upload bytes; PUT each file with an empty Content-Type header or it never exists. A 202 response means accepted, not completed. The provider's root array is returned under data. |
| `SMOKEBALL_ADD_MATTER_LAYOUT` | Add Matter Layout | Adds a layout item using a restricted documented subset. Layout key/value pairs are supported, but the provider's untyped LayoutValue.state field is intentionally unavailable. A 202 result means accepted; read back the layout to confirm completion. |
| `SMOKEBALL_ADD_MATTER_LAYOUT_CONTACT` | Add Matter Layout Contact | Adds a new contact on a specified layout. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_ADD_MATTER_ROLE` | Add Matter Role | Appends a new role in the specified matter. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_ADD_MATTER_ROLE_RELATIONSHIP` | Add Matter Role Relationship | Appends a new relationship with an existing role in the specified matter. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_ADD_MATTER_TAGS` | Add Matter Tags | Adds one or more tags to an existing matter by matter id. Returns a link to the matter; read it back with GET_MATTER to see the full tag list. |
| `SMOKEBALL_CREATE_ACTIVITY_CODE` | Create Activity Code | Creates an activity code. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_CREATE_AUTHORIZATION_GROUP` | Create Authorization Group | Creates an authorization group. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_CREATE_AUTHORIZATION_POLICY` | Create Authorization Policy | Creates an authorization policy. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_CREATE_BANK_ACCOUNT_REQUISITION` | Create Bank Account Requisition | Submit an irreversible financial requisition against a trust account. If approvals are enabled, firm owners create it without approval and other users require approval; if approvals are disabled, creation automatically approves it. A 202 response means only that the request was accepted, not that processing completed; inspect the returned requisition status and balances to determine whether it is Pending or Approved. |
| `SMOKEBALL_CREATE_BANK_ACCOUNT_TRANSACTION` | Create Bank Account Transaction | Submit an irreversible financial Deposit transaction against the specified bank account and matter, with a dollar amount limited to 2 decimal places and an effective date. Deposit is the only documented transaction type. A 202 response means only that creation was accepted, not that the transaction completed; follow the returned link to confirm the resulting transaction. |
| `SMOKEBALL_CREATE_CONTACT` | Create Contact | Creates a contact. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_CREATE_CONTACT_RELATION` | Create Contact Relation | Creates a relation for a specified contact. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_CREATE_EVENT` | Create Event | Creates a calendar event. Send startTime and endTime as local wall-clock time without an offset (YYYY-MM-DDThh:mm:ss) together with the IANA timeZone; an offset or Z is not applied. A 202 result means accepted; read back the event to confirm completion. |
| `SMOKEBALL_CREATE_EVENT_REMINDER` | Create Event Reminder | Creates a new reminder for an event. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_CREATE_FILE_PREVIEW` | Create File Preview | Get or request a PDF preview of the current file version. The 202 response means accepted, not necessarily completed: if the preview already exists, downloadUrl is immediately populated with a sensitive presigned URL valid for 1 day; otherwise downloadUrl and expiry are null while asynchronous conversion runs. Do not expose or log a populated URL. Poll GET_FILE_VERSION_PREVIEW with documentVersionId until it returns 200. A new file version has a separate preview. |
| `SMOKEBALL_CREATE_FIRM` | Create Firm | Creates a firm for the current authenticated client and registers an existing user as a staff member and firm owner. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_CREATE_MATTER` | Create Matter | Creates a new matter or Lead. Lead creation requires isLead=true, a Lead-specific matterTypeId, and a Grow or Prosper account. clientRole and otherSideRole are optional, cannot be identical, and otherwise default from the selected matter type. A 202 result means accepted; confirm completion with GET_MATTER on the returned id. |
| `SMOKEBALL_CREATE_MATTER_EXPENSE` | Create Matter Expense | Creates an expense for the specified matter. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_CREATE_MATTER_FEE` | Create Matter Fee | Creates a fee for the specified matter. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_CREATE_MATTER_FOLDER` | Create Matter Folder | Creates a new folder under the specified matter. When `parentFolderId` is null or omitted the folder is created under the matter root. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_CREATE_MATTER_MEMO` | Create Matter Memo | Creates a memo on the specified matter. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_CREATE_NOTIFICATION` | Create Notification | Send a notification to the specified staff member, including its displayed message and optional toast message, icons, color, and Smokeball action URI. This is an externally visible, irreversible send. A 202 response means only that the request was accepted, not that delivery completed; use the returned link to read the resource and confirm completion. |
| `SMOKEBALL_CREATE_STAFF_MEMBER` | Create Staff Member | Creates a staff member in the firm associated with the authenticated client. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_CREATE_SUBTASK` | Create Subtask | Creates a subtask for a specified task. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_CREATE_TASK` | Create Task | Creates a task. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_CREATE_TASK_DOCUMENT` | Create Task Document | Links an existing document to the specified task; it does not create a new document. A 202 result means accepted; read back the task's documents to confirm completion. |
| `SMOKEBALL_CREATE_USER` | Create User | Create a persistent user login using Default or Auth0. Invitation emails the user a way to set their password; Permanent and Temporary require the caller to deliver the password, and Temporary forces a change at first sign-in. bypassMfa lets the user sign in without two-factor authentication, while mfaEnrollmentGraceDays allows an Auth0 user to sign in without MFA enrollment for 1-90 days. Creating a login for an invited person registers them without accepting their invitation. This externally visible account and any MFA bypass are treated as irreversible effects. |
| `SMOKEBALL_CREATE_WEBHOOK_SUBSCRIPTION` | Create Webhook Subscription | Create a persistent webhook subscription that sends every selected event type to the external eventNotificationUrl until the subscription is changed or deleted. The key is used to create the signature header on webhook notification requests and must be shared with the callback receiver. This enables ongoing external data egress and is treated as irreversible; verify the destination URL, event types, and signing key before use. |
| `SMOKEBALL_DELETE_ACTIVITY_CODE` | Delete Activity Code | Deletes an activity code. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_DELETE_AUTHORIZATION_GROUP` | Delete Authorization Group | Delete an authorization group. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_DELETE_CONTACT` | Delete Contact | Deletes a specified contact. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_DELETE_CONTACT_RELATION` | Delete Contact Relation | Deletes a relation for a specified contact. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_DELETE_EVENT` | Delete Event | Deletes a specified event. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_DELETE_EVENT_REMINDER` | Delete Event Reminder | Deletes a specified event reminder. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_DELETE_MATTER` | Delete Matter | Deletes a specified matter. A 202 result means accepted; GET_MATTER answers 404 once the matter no longer exists. |
| `SMOKEBALL_DELETE_MATTER_EXPENSE` | Delete Matter Expense | Deletes an expense. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_DELETE_MATTER_FEE` | Delete Matter Fee | Deletes a fee. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_DELETE_MATTER_FILE` | Delete Matter File | Deletes a specified matter file. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_DELETE_MATTER_FOLDER` | Delete Matter Folder | Deletes a folder belonging to the specified matter. An unknown folder id returns 400 rather than 404, because the folder may have been created but not yet processed. The change is processed asynchronously; the returned Link continues to resolve the folder with `isDeleted: true` once applied. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_DELETE_MATTER_MEMO` | Delete Matter Memo | Deletes a specified memo. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_DELETE_STAFF_MEMBER` | Delete Staff Member | Sets the staff member from the firm associated with the authenticated client as a former staff member. The staff member is set as a former staff member and if they are a user, becomes a former user. User access is also disabled. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_DELETE_SUBTASK` | Delete Subtask | Deletes a specified subtask of a specified task. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_DELETE_TASK` | Delete Task | Deletes a specified task. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_DELETE_TASK_DOCUMENT` | Delete Task Document | Unlinks the specified document from the task without deleting the underlying document. A 202 result means accepted; read back the task's documents to confirm completion. |
| `SMOKEBALL_DELETE_WEBHOOK_SUBSCRIPTION` | Delete Webhook Subscription | Deletes and unsubscribes from the specified webhook subscription. |
| `SMOKEBALL_GET_ACTIVITY_CODE` | Get Activity Code | Retrieves one activity code by id: code, description, type, whether it is billable, rate type and rate, quantity and tax flags. Use LIST_ACTIVITY_CODES to find the id. |
| `SMOKEBALL_GET_AUTHORIZATION_GROUP` | Get Authorization Group | Retrieves one authorization group by id: its name, the ids of the principals it contains, and whether it is deleted. Use LIST_AUTHORIZATION_GROUPS to find the id. |
| `SMOKEBALL_GET_AUTHORIZATION_POLICY` | Get Authorization Policy | Retrieves one authorization policy by its reference: the principal and resource it binds and its rules. The reference is the one returned when the policy was created (CREATE_AUTHORIZATION_POLICY); Smokeball documents no list endpoint for policies. |
| `SMOKEBALL_GET_BANK_ACCOUNT` | Get Bank Account | Retrieves one bank account by id: type, status, linked matter, account name and number, bank and branch details. Use LIST_BANK_ACCOUNTS to find the id; balances are not part of this record. |
| `SMOKEBALL_GET_BANK_ACCOUNT_TRANSACTION` | Get Bank Account Transaction | Retrieves one transaction by bank account id and transaction id, including its type, amount, dates, references, associated matter and payor links, and reversal status. |
| `SMOKEBALL_GET_CONTACT` | Get Contact | Retrieves one contact by id. Exactly one of person, company, trust or groupOfPeople is populated according to the contact kind, plus tags, isDeleted and lastUpdated. Use LIST_CONTACTS to find the id. |
| `SMOKEBALL_GET_CONTACT_RELATION` | Get Contact Relation | Retrieves a relation for a specified contact if associated with the authenticated client. |
| `SMOKEBALL_GET_CONTACTS_BATCH` | Get Contacts Batch | Return contacts matching up to 500 supplied IDs in request order; nonexistent and other-account IDs are silently omitted. Contact records are detailed, so requesting hundreds at once can produce a very large response and consume substantial model context or tokens; use smaller batches when full 500-contact retrieval is unnecessary. |
| `SMOKEBALL_GET_EVENT` | Get Event | Retrieves one calendar event by id: subject, description, location, type, start and end times in the event timeZone, allDay flag, attendees and the linked matter. Use LIST_EVENTS to find the id. |
| `SMOKEBALL_GET_FILE_DOWNLOAD_URL` | Get File Download Url | Return a sensitive presigned GET URL and metadata for downloading the current or specified version of a matter file. The URL authorizes access to the file until it expires after 1 hour; do not expose or log it. This call does not fetch file bytes. |
| `SMOKEBALL_GET_FILE_PREVIEW` | Get File Preview | Return a sensitive presigned URL to the PDF preview of the file's current version. The URL authorizes preview access for 1 day; do not expose or log it. This endpoint never creates a preview. Use CREATE_FILE_PREVIEW to request conversion; while conversion is pending, this endpoint returns 404 rather than a URL. |
| `SMOKEBALL_GET_FILE_VERSION_PREVIEW` | Get File Version Preview | Return a sensitive presigned URL to the PDF preview of a specific document version. The URL authorizes preview access for 1 day; do not expose or log it. If CREATE_FILE_PREVIEW requested an asynchronous conversion that is still pending, this endpoint returns 404; poll it until it returns 200. |
| `SMOKEBALL_GET_FIRM` | Get Firm | Retrieves the details of the firm associated with the authenticated client. |
| `SMOKEBALL_GET_LAYOUT_DESIGN` | Get Layout Design | Retrieves one layout design by id: its name, description and the list of fields a layout matter item of this design carries. Use LIST_LAYOUT_DESIGNS to find the id. |
| `SMOKEBALL_GET_MATTER` | Get Matter | Retrieves one matter by id with its documented fields, including any item, role, layout, and tag details Smokeball returns for it. Use LIST_MATTERS to find the id. Smokeball does not document whether those nested details need the items/read, roles/read, or layouts/read scopes in addition to matters/read. |
| `SMOKEBALL_GET_MATTER_ARCHIVE` | Get Matter Archive | Retrieves the archive record of a matter: whether it is archived, the archived date and location, box number, comments and destroy date. Answers 404 when the matter has no archive record. |
| `SMOKEBALL_GET_MATTER_BILLING_CONFIGURATION` | Get Matter Billing Configuration | Retrieves the billing configuration for the specified matter. |
| `SMOKEBALL_GET_MATTER_EXPENSE` | Get Matter Expense | Retrieves one expense on a matter by matter id and expense id: staff, amounts, tax, origin and the invoice it belongs to, if any. Use LIST_MATTER_EXPENSES to find the id. |
| `SMOKEBALL_GET_MATTER_FEE` | Get Matter Fee | Retrieves one fee on a matter by matter id and fee id: staff, duration or quantity, rate, amounts, tax and the invoice it belongs to, if any. Use LIST_MATTER_FEES to find the id. |
| `SMOKEBALL_GET_MATTER_FILE` | Get Matter File | Retrieves metadata for a file belonging to the specified matter, including its download-details link. It does not return file bytes. |
| `SMOKEBALL_GET_MATTER_FOLDER_PATH` | Get Matter Folder Path | Returns the full folder hierarchy (path) as a collection ordered from the root folder down to the supplied folder. The root folder is not included in the response. |
| `SMOKEBALL_GET_MATTER_INVOICE` | Get Matter Invoice | Retrieves one invoice on a matter by matter id and invoice id: number, title, status, dates and totals. Use LIST_MATTER_INVOICES to find the id; GET_MATTER_INVOICE_DOWNLOAD_URL returns the PDF link. |
| `SMOKEBALL_GET_MATTER_INVOICE_DOWNLOAD_URL` | Get Matter Invoice Download Url | Return a sensitive download URL, its expiry timestamp, version, and status for the specified invoice. The URL authorizes access to invoice contents until the returned expiry; Smokeball does not document a fixed lifetime. Do not expose or log it. This call returns download details and does not fetch the invoice bytes. |
| `SMOKEBALL_GET_MATTER_ITEM` | Get Matter Item | Retrieves one item on a matter by matter id and item id: name, index, visibility and its subItems tree. Use LIST_MATTER_ITEMS to find the id. |
| `SMOKEBALL_GET_MATTER_LAYOUT` | Get Matter Layout | Retrieves one layout item on a matter by item id, including its name, description, hierarchy and order, layout design link, values, and events. |
| `SMOKEBALL_GET_MATTER_MEMO` | Get Matter Memo | Retrieves one memo on a matter by matter id and memo id: title, rich text and plain text, author and dates, and whether it is deleted. Use LIST_MATTER_MEMOS to find the id. |
| `SMOKEBALL_GET_MATTER_ROLE` | Get Matter Role | Retrieves one role on a matter by matter id and role id: role name, the contact filling it, representatives, relationships and whether it is the client or other side. Use LIST_MATTER_ROLES to find the id. |
| `SMOKEBALL_GET_MATTER_ROLE_RELATIONSHIP` | Get Matter Role Relationship | Retrieves one relationship on a matter role by relationship id, including its name, associated contact link, and representative links. |
| `SMOKEBALL_GET_MATTER_STAGE_INFO` | Get Matter Stage Info | Retrieves a matter's current stage information, including its stage set, current stage, version id, and last-updated timestamp. |
| `SMOKEBALL_GET_MATTER_TYPE` | Get Matter Type | Retrieves one matter type by id: name, category, type, location, representative options and the items it defines. Use LIST_MATTER_TYPES to find the id; CREATE_MATTER needs a matterTypeId from here. |
| `SMOKEBALL_GET_NOTIFICATION` | Get Notification | Retrieves one notification by id: message, icon, creator and date, and whether it has been read or seen. Smokeball documents no list endpoint for notifications; the id comes from the notification link or a webhook event. |
| `SMOKEBALL_GET_PROTECTED_BANK_ACCOUNT_BALANCE` | Get Protected Bank Account Balance | Retrieves one protected-funds record by bank account id and protection id, including its amount, reason, dates, current protection state, and associated matter or contact. |
| `SMOKEBALL_GET_REFERRAL_TYPE` | Get Referral Type | Retrieves one referral type by id: its name and whether it is deleted. Use LIST_REFERRAL_TYPES to find the id. |
| `SMOKEBALL_GET_STAFF_MEMBER` | Get Staff Member | Retrieves a staff member (based on staff id parameter provided) in the firm associated with the authenticated client. |
| `SMOKEBALL_GET_STAGE_SET` | Get Stage Set | Returns the stage set identified by `stage_set_id`, including its configured matter stages. |
| `SMOKEBALL_GET_STAGE_SET_STAGE` | Get Stage Set Stage | Retrieves one stage of a stage set by stage-set id and stage id: name, lastUpdated and whether it is deleted. Use GET_STAGE_SET (or LIST_STAGE_SETS) to find the stage ids of a set. |
| `SMOKEBALL_GET_SUBTASK` | Get Subtask | Retrieves the subtask identified by `subtask_id` within the specified `task_id`. |
| `SMOKEBALL_GET_TASK` | Get Task | Retrieves one task by id: subject, note, due date, assignees, sub-tasks, the linked matter and who created, completed or last updated it. Use LIST_TASKS to find the id. |
| `SMOKEBALL_GET_TASK_DOCUMENT` | Get Task Document | Retrieves one document attached to a task by task id and document id, including its document type, deletion state, associated task, and document link. |
| `SMOKEBALL_GET_USER` | Get User | Retrieves the Smokeball user identified by `user_id`. |
| `SMOKEBALL_GET_WEBHOOK_SUBSCRIPTION` | Get Webhook Subscription | Returns the webhook subscription identified by `webhook_subscription_id`, including its callback and subscribed events. |
| `SMOKEBALL_LIST_ACTIVITY_CODES` | List Activity Codes | Returns a list of activity codes. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_LIST_AUTHORIZATION_GROUPS` | List Authorization Groups | Return the authorization groups for the firm associated with the authenticated client. The provider returns paged metadata and links, but documents no continuation request parameters for this endpoint; if the response indicates more results, this action cannot request another page and the list may be incomplete. |
| `SMOKEBALL_LIST_BANK_ACCOUNT_MATTER_BALANCES` | List Bank Account Matter Balances | Returns a list of bank account matter balances. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_LIST_BANK_ACCOUNTS` | List Bank Accounts | Returns bank accounts available to the authenticated firm, optionally filtered by account type or matter identifier. |
| `SMOKEBALL_LIST_CONTACT_RELATIONS` | List Contact Relations | Return relations for a contact associated with the authenticated client. The provider returns a paged collection and navigation links, but documents no continuation request parameters for this endpoint; if the response indicates more results, this action cannot request another page and the list may be incomplete. |
| `SMOKEBALL_LIST_CONTACTS` | List Contacts | Returns a list of contacts. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_LIST_CONTACT_TAGS` | List Contact Tags | Lists the tags currently on one contact, by contact id, as a plain string collection under value. Use ADD_CONTACT_TAGS or REMOVE_CONTACT_TAG to change them. |
| `SMOKEBALL_LIST_EVENT_REMINDERS` | List Event Reminders | Returns the collection of reminders for an event The native root response is returned under data as an explicit Composio normalization. |
| `SMOKEBALL_LIST_EVENTS` | List Events | Returns a list of events. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_LIST_FILE_HISTORY` | List File History | Returns the full list of history entries for the specified file. The result is not paged. |
| `SMOKEBALL_LIST_FIRM_MATTER_STAGE_MAPPINGS` | List Firm Matter Stage Mappings | Returns a list of stage to matter mappings in the firm. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_LIST_FOLDER_HISTORY` | List Folder History | Returns a list of history entries for the specified folder. The response is not paged. An unknown folder id returns 200 with an empty collection rather than 404. |
| `SMOKEBALL_LIST_LAYOUT_DESIGNS` | List Layout Designs | Returns a list of layout designs. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_LIST_MATTER_EXPENSES` | List Matter Expenses | Returns a list of expenses for the specified matter. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_LIST_MATTER_FEES` | List Matter Fees | Returns a list of fees for the specified matter. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_LIST_MATTER_FILES` | List Matter Files | Returns a paged list of non-deleted files associated with a matter. In standard mode (no search or cursor), sort and paging apply; results default to oldest-created first. In search mode, results come from the document search index and sort, paging, and cursor all apply. In cursor-only mode (cursor without search), files modified since the cursor are returned and sort options are ignored. Returns one page; pass next_page_cursor back as page_cursor to read the next one (the provider's own cursor parameter is separate). Limit defaults to the maximum page size. |
| `SMOKEBALL_LIST_MATTER_FOLDER_CONTENTS` | List Matter Folder Contents | Returns non-deleted folders and files directly under a matter's root document folder, or directly under folder_id when supplied, with folders before files. Paging spans the combined list; pass next_cursor back as cursor for the next page. A deleted requested folder still returns 200 with isDeleted=true and an empty listing, so an empty result alone does not distinguish a deleted folder from an active empty folder; inspect isDeleted. |
| `SMOKEBALL_LIST_MATTER_INVOICES` | List Matter Invoices | Returns a list of invoices for the specified matter. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_LIST_MATTER_ITEMS` | List Matter Items | Returns the versioned item collection for a matter. Each item includes its name, zero-based index, visibility, and nested sub-items. |
| `SMOKEBALL_LIST_MATTER_LAYOUT_CONTACTS` | List Matter Layout Contacts | Returns a list of contacts on a specified layout. The native root response is returned under data as an explicit Composio normalization. |
| `SMOKEBALL_LIST_MATTER_LAYOUTS` | List Matter Layouts | Returns a collection of layout items on a specified matter. |
| `SMOKEBALL_LIST_MATTER_MEMOS` | List Matter Memos | Returns a list of memos on the specified matter. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_LIST_MATTER_ROLE_RELATIONSHIPS` | List Matter Role Relationships | Returns associated relationships for a specified matter and role group. |
| `SMOKEBALL_LIST_MATTER_ROLES` | List Matter Roles | Returns associated roles for a specified matter. |
| `SMOKEBALL_LIST_MATTERS` | List Matters | Returns one page of matters; pass next_cursor back as cursor to read the next one. Supports documented filtering and sorting; the scope-sensitive Fields enrichment parameter is intentionally unavailable. |
| `SMOKEBALL_LIST_MATTER_TAGS` | List Matter Tags | Returns the tags assigned to the matter identified by `matter_id`. |
| `SMOKEBALL_LIST_MATTER_TYPE_CATEGORIES` | List Matter Type Categories | Returns a list of all the possible matter type categories. |
| `SMOKEBALL_LIST_MATTER_TYPES` | List Matter Types | Returns a paginated list of matter types based on search criteria. Deleted matter types are not included. Note: If no `Location` is provided, all matter types from all locations will be returned. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_LIST_REFERRAL_TYPES` | List Referral Types | Returns referral types, including custom referral types. |
| `SMOKEBALL_LIST_STAFF` | List Staff | Retrieves a paginated list of staff members in the firm associated with the authenticated client. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_LIST_STAGE_SETS` | List Stage Sets | Returns a list of stage sets for the firm. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_LIST_SUBTASKS` | List Subtasks | Returns a list of subtasks for a specified task if associated with the authenticated client. |
| `SMOKEBALL_LIST_TASK_DOCUMENTS` | List Task Documents | Returns a list of document links for the specified task, if associated with the authenticated client. |
| `SMOKEBALL_LIST_TASKS` | List Tasks | Returns a list of tasks. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_LIST_WEBHOOK_EVENT_TYPES` | List Webhook Event Types | Lists the event type names a webhook subscription can subscribe to, as a plain string collection under value. Use one or more of them in CREATE_WEBHOOK_SUBSCRIPTION. |
| `SMOKEBALL_LIST_WEBHOOK_SUBSCRIPTIONS` | List Webhook Subscriptions | Returns existing webhook subscriptions. Returns one page; pass next_cursor back as cursor to read the next one. |
| `SMOKEBALL_MERGE_MATTER_LAYOUT` | Merge Matter Layout | Merges layout data using a restricted documented subset. Layout key/value pairs are supported, but the provider's untyped LayoutValue.state field is intentionally unavailable. A 202 result means accepted; read back the layout to confirm completion. |
| `SMOKEBALL_PATCH_MATTER` | Patch Matter | Patches a matter or Lead, including lead-to-matter conversion and matter-type changes. The recursive items property is intentionally unavailable. Documented field-combination restrictions still apply. A 202 result means accepted; confirm completion with GET_MATTER. |
| `SMOKEBALL_PATCH_MATTER_ARCHIVE` | Patch Matter Archive | Updates the specified matter archive. The documented ArchiveDto requires isArchived in every request. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_PATCH_MATTER_BILLING_CONFIGURATION` | Patch Matter Billing Configuration | Changes only the supplied billing configuration fields for the specified matter. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_PATCH_MATTER_EXPENSE` | Patch Matter Expense | Changes only the supplied expense fields for the specified matter. A 202 result means accepted; read back the resource to confirm completion. The documented queue accepts IDs without an existing-resource check; acceptance does not prove eventual completion. |
| `SMOKEBALL_PATCH_MATTER_FEE` | Patch Matter Fee | Patches a fee for the specified matter. The documented FeeDto requires feeDate and subject in every request. A 202 result means accepted; read back the resource to confirm completion. The documented queue accepts IDs without an existing-resource check; acceptance does not prove eventual completion. |
| `SMOKEBALL_PATCH_MATTER_FILE` | Patch Matter File | Partially updates a file's metadata on the specified matter; only supplied fields change, but the documented schema still requires fileName. The response always includes a presigned PUT URL valid for 1 hour for an optional new version; this toolkit cannot upload bytes to it. Treat that URL as a sensitive temporary bearer capability and do not expose it in messages or logs. Only the documented object body is supported, not a JSON Patch array. A 202 result means accepted; read back the file to confirm completion. |
| `SMOKEBALL_PATCH_MATTER_FOLDER` | Patch Matter Folder | Partially updates a folder belonging to the specified matter. Only the fields supplied in the request are applied. A deleted folder can be restored by setting `isDeleted` to `false`. Only the folder itself is restored; subfolders and files that were deleted remain deleted. Other fields supplied in the same request are applied after the restore. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_PROTECT_BANK_ACCOUNT_FUNDS` | Protect Bank Account Funds | Protects funds in a trust bank account. Only trust accounts are supported. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_REMOVE_CONTACT_TAG` | Remove Contact Tag | Removes one tag from a contact. The documented bulk form is unavailable because its route simultaneously marks tagId as required and optional. A 202 result means accepted; read back the contact to confirm completion. |
| `SMOKEBALL_REMOVE_MATTER_LAYOUT` | Remove Matter Layout | Removes a layout matter item from a matter. A 202 result means accepted; read back the resource to confirm completion. Parent deletion can affect sub-items, and deleted layouts cannot be recovered via the API. |
| `SMOKEBALL_REMOVE_MATTER_LAYOUT_CONTACT` | Remove Matter Layout Contact | Removes a contact from a specified layout, deleting the associated role or relationship from the matter. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_REMOVE_MATTER_ROLE` | Remove Matter Role | Removes a specified role from a matter. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_REMOVE_MATTER_ROLE_RELATIONSHIP` | Remove Matter Role Relationship | Removes a relationship from a role in a matter. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_REMOVE_MATTER_TAG` | Remove Matter Tag | Removes the tag from the matter without deleting from the account. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_SEARCH_FILES` | Search Files | Search files across the account using a required full-text query and documented filters; return the documented result array. Return one page; use offset and limit to continue. The native root response is returned under data as an explicit Composio normalization. |
| `SMOKEBALL_UNPROTECT_BANK_ACCOUNT_FUNDS` | Unprotect Bank Account Funds | Unprotects funds in a trust bank account. Only trust accounts are supported. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_ACTIVITY_CODE` | Update Activity Code | Updates an activity code. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_AUTHORIZATION_GROUP` | Update Authorization Group | Updates a specified authorization group. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_AUTHORIZATION_POLICY` | Update Authorization Policy | Updates a specified authorization policy. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_CONTACT` | Update Contact | Updates a specified contact. Restore a deleted contact by setting isDeleted=false. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_CONTACT_RELATION` | Update Contact Relation | Updates a relation for a specified contact. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_EVENT` | Update Event | Updates an event. Send startTime and endTime as local wall-clock time without an offset (YYYY-MM-DDThh:mm:ss) together with the IANA timeZone; an offset or Z is not applied. A 202 result means accepted; read back the event to confirm completion. |
| `SMOKEBALL_UPDATE_EVENT_REMINDER` | Update Event Reminder | Updates an existing reminder for an event. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_FIRM` | Update Firm | Updates firm details for the current authenticated client. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_MATTER` | Update Matter | Updates a specified matter. clientIds and otherSideIds cannot be modified, and a Matter cannot be converted back to a Lead. A 202 result means accepted; confirm completion with GET_MATTER. |
| `SMOKEBALL_UPDATE_MATTER_ARCHIVE` | Update Matter Archive | Replaces the specified matter archive by applying the full editable archive representation. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_MATTER_BILLING_CONFIGURATION` | Update Matter Billing Configuration | Replaces the specified matter's billing configuration by applying its full editable representation. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_MATTER_EXPENSE` | Update Matter Expense | Replaces the expense by applying its full editable representation for the specified matter. A 202 result means accepted; read back the resource to confirm completion. The documented queue accepts IDs without an existing-resource check; acceptance does not prove eventual completion. |
| `SMOKEBALL_UPDATE_MATTER_FEE` | Update Matter Fee | Replaces the fee by applying its full editable representation for the specified matter. A 202 result means accepted; read back the resource to confirm completion. The documented queue accepts IDs without an existing-resource check; acceptance does not prove eventual completion. |
| `SMOKEBALL_UPDATE_MATTER_FILE` | Update Matter File | Replace all editable file fields using PUT; use PATCH_MATTER_FILE for a partial edit. Omitting folderId or setting it to null moves the file to the root folder. Every call records a new upload request and returns a sensitive presigned PUT URL valid for 1 hour, which authorizes uploading an optional new version. Do not expose or log this URL. This toolkit does not upload bytes: PUT them to uploadUrl with an empty Content-Type header outside this toolkit. The 202 response means accepted, not that an upload or update completed. |
| `SMOKEBALL_UPDATE_MATTER_FOLDER` | Update Matter Folder | Replaces the editable fields of a folder belonging to the specified matter. All fields are applied, not only the ones that changed: `name` is required, and omitting `parentFolderId` (or setting it to null) moves the folder to the matter root. Use PATCH to change individual fields. The destination folder must be on the same matter (400 otherwise); a destination that does not exist is not rejected. A 202 result means accepted; read back the resource to confirm completion. Null or omitted parentFolderId moves the folder to the matter root. |
| `SMOKEBALL_UPDATE_MATTER_MEMO` | Update Matter Memo | Updates a specified memo. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_MATTER_ROLE` | Update Matter Role | Updates a specified role on a matter. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_MATTER_ROLE_RELATIONSHIP` | Update Matter Role Relationship | Updates a specified relationship on a matter. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_STAFF_MEMBER` | Update Staff Member | Updates a staff member in the firm associated with the authenticated client. Setting former=true also deregisters the staff member from the firm. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_SUBTASK` | Update Subtask | Updates a specified subtask of a specified task. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_TASK` | Update Task | Updates a specified task. A 202 result means accepted; read back the resource to confirm completion. |
| `SMOKEBALL_UPDATE_WEBHOOK_SUBSCRIPTION` | Update Webhook Subscription | Update a persistent webhook subscription's name, event types, external eventNotificationUrl, and signing key. Future selected events are sent to that callback URL until the subscription is changed or deleted; the key creates the signature header on notification requests. This changes ongoing external data egress and is treated as irreversible; verify the destination URL, event types, and key before use. |

## Supported Triggers

None listed.

## Troubleshooting

### 1. Why does Claude not use the Composio connector for Smokeball?

The connector can show as connected, but Claude must use it in each Smokeball conversation.
- Click + at the lower left of the chat, or type /.
- Hover Connectors.
- Turn on Composio.
- Ask Claude to connect to Smokeball again.

### 2. Why does Claude show an MCP server error before Smokeball connects?

Claude can show Couldn't reach the MCP server or Authorization with the MCP server failed when you add the connector for Smokeball.
- Check that the connector URL is https://connect.composio.dev/mcp.
- Connectors run from Anthropic's cloud, so your device network is usually not the problem.
- Add the connector again from Customize > Connectors, then ask Claude to connect Smokeball.
- If it fails again, send the error and the ofid_ reference id to support@composio.dev.

### 3. Why does the Smokeball authorization link not work?

The Composio connector is one server. Your Smokeball account connects separately when Claude asks for it.
- If the browser does not open, or the link expires, ask Claude to retry the Smokeball connection.
- Composio creates a fresh Smokeball authorization link.
- Open that link in your browser and finish the Smokeball sign-in.

### 4. Why do Smokeball actions fail after they worked before?

The Smokeball connection can expire or lose permission.
- Ask Claude to inspect the Smokeball connection.
- If the connection is unhealthy, disconnect it when Claude prompts you.
- Reconnect the Smokeball account and retry the action.
- If Claude shows a permission prompt, approve it before Claude changes data in Smokeball.
- If the action still fails with a permission error, check that the connected account has that permission in Smokeball itself.

### 5. How do I switch to a different Smokeball account?

Claude can manage the Smokeball connection for you.
- Ask Claude to disconnect or delete the current Smokeball account.
- Ask Claude to connect Smokeball again.
- Open the new Composio authorization link for Smokeball.
- Sign in with the other Smokeball account in the browser.
- After the account connects, ask Claude to retry the Smokeball task.

### 6. Why is my Smokeball connection missing in Claude Desktop or on a Team plan?

The connector belongs to your Claude account, so your Smokeball connection works in Claude Web, Desktop, and Cowork.
- In Claude Desktop, open Customize > Connectors.
- Next to Composio, click ⋮ and click Clear cache.
- If Smokeball tools still do not appear, click ⋮, disconnect, remove the connector, and add it again.
- On Team or Enterprise, an Owner or Primary Owner must enable the connector before you can connect Smokeball.

## Creating MCP Server - Stand-alone vs Composio SDK

The Smokeball MCP server connects Claude Web, Desktop, and Cowork to your Smokeball account through Composio. Once connected, Claude can use the available Smokeball tools and triggers to complete tasks on your behalf.

## Complete Code

None listed.

## How to build Smokeball MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/smokeball/framework/chatgpt)
- [Hermes](https://composio.dev/toolkits/smokeball/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/smokeball/framework/atomic-agent)

## Related Toolkits

- [Google Sheets](https://composio.dev/toolkits/googlesheets) - Google Sheets is a cloud-based spreadsheet tool for real-time collaboration and data analysis. It lets teams work together from anywhere, updating information instantly.
- [Notion](https://composio.dev/toolkits/notion) - Notion is a collaborative workspace for notes, docs, wikis, and tasks. It streamlines team knowledge, project tracking, and workflow customization in one place.
- [Airtable](https://composio.dev/toolkits/airtable) - Airtable combines the flexibility of spreadsheets with the power of a database for easy project and data management. Teams use Airtable to organize, track, and collaborate with custom views and automations.
- [Asana](https://composio.dev/toolkits/asana) - Asana is a collaborative work management platform for teams to organize and track projects. It streamlines teamwork, boosts productivity, and keeps everyone aligned on goals.
- [Google Tasks](https://composio.dev/toolkits/googletasks) - Google Tasks is a to-do list and task management tool integrated into Gmail and Google Calendar. It helps you organize, track, and complete tasks across your Google ecosystem.
- [Linear](https://composio.dev/toolkits/linear) - Linear is a modern issue tracking and project planning tool for fast-moving teams. It helps streamline workflows, organize projects, and boost productivity.
- [Jira](https://composio.dev/toolkits/jira) - Jira is Atlassian’s platform for bug tracking, issue tracking, and agile project management. It helps teams organize work, prioritize tasks, and deliver projects efficiently.
- [Clickup](https://composio.dev/toolkits/clickup) - ClickUp is an all-in-one productivity platform for managing tasks, docs, goals, and team collaboration. It streamlines project workflows so teams can work smarter and stay organized in one place.
- [Monday](https://composio.dev/toolkits/monday) - Monday.com is a customizable work management platform for project planning and collaboration. It helps teams organize tasks, automate workflows, and track progress in real time.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Agiled](https://composio.dev/toolkits/agiled) - Agiled is an all-in-one business management platform for CRM, projects, and finance. It helps you streamline workflows, consolidate client data, and manage business processes in one place.
- [Aha!](https://composio.dev/toolkits/aha) - Aha! is a product management platform for setting strategy, prioritizing ideas, and planning roadmaps. It helps product teams align goals with development work and make better decisions.
- [AirOps MCP](https://composio.dev/toolkits/airops_mcp) - AirOps MCP is AirOps' managed content platform exposing brand context, knowledge bases, and workflows. Use it to give agents brand-aware content, automate content workflows, and track Brand Kit edits.
- [Amazing Marvin](https://composio.dev/toolkits/amazing_marvin) - Amazing Marvin is a personal productivity app for tasks, projects, habits, planning, time tracking, and rewards. It helps you build a flexible workflow that matches how you actually work.
- [Ambiguous MCP](https://composio.dev/toolkits/ambiguous_mcp) - Ambiguous MCP is a provider-hosted workspace service for documents, spreadsheets, tasks, CRM, calendar, mail, chat, and administration. It provides one workspace-scoped connection for managing these resources through natural language.
- [AnyDB](https://composio.dev/toolkits/any_db) - AnyDB is a flexible collaborative database platform for organizing records, files, and automated workflows. It helps teams centralize data, collaborate on records, and automate routine tasks.
- [ApptiveGrid](https://composio.dev/toolkits/apptivegrid) - ApptiveGrid is a collaborative no-code database and app platform for spaces, grids, forms, and structured records. It helps teams organize operational data, collect inputs, and build lightweight business apps without custom backend work.
- [Ascora](https://composio.dev/toolkits/ascora) - Ascora is a cloud-based field service management platform for service businesses. It streamlines scheduling, invoicing, and customer operations in one place.
- [Atlassian MCP](https://composio.dev/toolkits/atlassian_mcp) - Atlassian Rovo MCP connects agents to Jira, Jira Service Management, Confluence, Bitbucket, Compass, and Teamwork Graph workflows. It lets teams surface and act on Atlassian data while respecting existing user permissions.
- [Basecamp](https://composio.dev/toolkits/basecamp) - Basecamp is a project management and team collaboration tool by 37signals. It helps teams organize tasks, share files, and communicate efficiently in one place.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Smokeball MCP?

With a standalone Smokeball MCP server, the agents and LLMs can only access a fixed set of Smokeball tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Smokeball and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Claude Cowork?

Yes, you can. Claude Cowork fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Smokeball tools.

### Can I manage the permissions and scopes for Smokeball while using Tool Router?

Yes, absolutely. You can configure which Smokeball scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Smokeball data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
