How to integrate Smokeball MCP with Hermes

Connect Hermes to Smokeball MCP. List open matters assigned to me, find contacts for a specific matter, and more using natural language, with authentication handled for you.

Smokeball logoSmokeball
Oauth2

Smokeball is legal practice management software for firms to manage matters, contacts, documents, tasks, and billing. It brings core firm records and workflows into one organized workspace.

164 Tools

Introduction

Hermes is a 24/7 autonomous agent that lives on your computer or server — it remembers what it learns and evolves as your usage grows.

This guide explains the easiest and most robust way to connect your Smokeball account to Hermes. You can do this through either Composio Connect CLI or Composio Connect MCP. For personal use we recommend the CLI, but you won't go wrong with MCP either.

Also integrate Smokeball with

What is Composio Connect?

Composio Connect is a consumer offering that lets anyone plug 1,500+ applications directly into their agent harness — including Hermes. It can:

  • Search and load tools from relevant toolkits on-demand, reducing context usage.
  • Chain multiple tools to accomplish complex workflows via a remote workbench, without excessive back-and-forth with the LLM.
  • Manage app authentication end-to-end with zero manual overhead.

Integrating Smokeball with Hermes

Using Composio Connect CLI

1. Install the Composio CLI

Run the install script directly, or paste https://composio.dev/hermes into your Hermes chat box to have it installed for you.

bash
curl -fsSL https://composio.dev/install | bash
Hermes authenticating with Composio

2. Authenticate

Once the CLI is installed, ask Hermes to authenticate with Composio.

3. Connect to Smokeball

Ask your agent to connect to Smokeball, or simply request any Smokeball-related task. Hermes will prompt you to authenticate and authorize access.

4. Done. You're all set with a new Smokeball connection.


Using Composio Connect MCP

1. Get your MCP URL and API Key

Go to dashboard.composio.dev and copy your Connect MCP URL and API key.

Copy MCP URL and API key from Composio dashboard

2. Open the Hermes config file

bash
nano ~/.hermes/config.yaml

3. Add the Composio Connect MCP server

bash
mcp_servers:
  composio:
    url: "https://connect.composio.dev/mcp"
    headers:
      x-consumer-api-key: "YOUR_COMPOSIO_API_KEY"
    connect_timeout: 60
    timeout: 180

Save with Ctrl + O, Enter, then exit with Ctrl + X.

4. Restart your Hermes agent

Once restarted, ask your agent to connect to Smokeball or request any Smokeball-related task. It will prompt you to authenticate and authorize access.

5. Done!

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.

Way Forward

With Smokeball connected, Hermes can now act on your behalf whenever it detects a relevant task or you ask it to.

From here, you can extend Hermes further:

  • Connect more apps: Calendar, Slack, Notion, Linear, and hundreds of others are available through the same Composio Connect setup. Each new integration compounds what Hermes can do for you.
  • Build workflows across tools: Once multiple apps are connected, Hermes can chain actions together — turn an email into a calendar invite, a Slack message into a Linear ticket, or a meeting note into a follow-up draft.
  • Let it learn your patterns: The more you use Hermes, the better it gets at anticipating how you'd handle recurring tasks. Give it feedback on drafts and decisions, and it will adapt.

If you run into trouble or want to share what you've built, join the community or check out the Docs for deeper configuration options.

TOOLS

Supported Tools

Every Smokeball action and event your agent gets out of the box.

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.

Add Matter File

Register a new matter file and return a sensitive presigned PUT URL valid for 1 hour that authorizes its content upload.

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.

Add Matter Layout

Adds a layout item using a restricted documented subset.

Add Matter Layout Contact

Adds a new contact on a specified layout.

Add Matter Role

Appends a new role in the specified matter.

Add Matter Role Relationship

Appends a new relationship with an existing role in the specified matter.

Add Matter Tags

Adds one or more tags to an existing matter by matter id.

Create Activity Code

Creates an activity code.

Create Authorization Group

Creates an authorization group.

Create Authorization Policy

Creates an authorization policy.

Create Bank Account Requisition

Submit an irreversible financial requisition against a trust account.

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.

Create Contact

Creates a contact.

Create Contact Relation

Creates a relation for a specified contact.

Create Event

Creates a calendar event.

Create Event Reminder

Creates a new reminder for an event.

Create File Preview

Get or request a PDF preview of the current file version.

Create Firm

Creates a firm for the current authenticated client and registers an existing user as a staff member and firm owner.

Create Matter

Creates a new matter or Lead.

Create Matter Expense

Creates an expense for the specified matter.

Create Matter Fee

Creates a fee for the specified matter.

Create Matter Folder

Creates a new folder under the specified matter.

Create Matter Memo

Creates a memo on the specified matter.

Create Notification

Send a notification to the specified staff member, including its displayed message and optional toast message, icons, color, and Smokeball action URI.

Create Staff Member

Creates a staff member in the firm associated with the authenticated client.

Create Subtask

Creates a subtask for a specified task.

Create Task

Creates a task.

Create Task Document

Links an existing document to the specified task; it does not create a new document.

Create User

Create a persistent user login using Default or Auth0.

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.

Delete Activity Code

Deletes an activity code.

Delete Authorization Group

Delete an authorization group.

Delete Contact

Deletes a specified contact.

Delete Contact Relation

Deletes a relation for a specified contact.

Delete Event

Deletes a specified event.

Delete Event Reminder

Deletes a specified event reminder.

Delete Matter

Deletes a specified matter.

Delete Matter Expense

Deletes an expense.

Delete Matter Fee

Deletes a fee.

Delete Matter File

Deletes a specified matter file.

Delete Matter Folder

Deletes a folder belonging to the specified matter.

Delete Matter Memo

Deletes a specified memo.

Delete Staff Member

Sets the staff member from the firm associated with the authenticated client as a former staff member.

Delete Subtask

Deletes a specified subtask of a specified task.

Delete Task

Deletes a specified task.

Delete Task Document

Unlinks the specified document from the task without deleting the underlying document.

Delete Webhook Subscription

Deletes and unsubscribes from the specified webhook subscription.

Get Activity Code

Retrieves one activity code by id: code, description, type, whether it is billable, rate type and rate, quantity and tax flags.

Get Authorization Group

Retrieves one authorization group by id: its name, the ids of the principals it contains, and whether it is deleted.

Get Authorization Policy

Retrieves one authorization policy by its reference: the principal and resource it binds and its rules.

Get Bank Account

Retrieves one bank account by id: type, status, linked matter, account name and number, bank and branch details.

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.

Get Contact

Retrieves one contact by id.

Get Contact Relation

Retrieves a relation for a specified contact if associated with the authenticated client.

Get Contacts Batch

Return contacts matching up to 500 supplied IDs in request order; nonexistent and other-account IDs are silently omitted.

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.

Get File Download Url

Return a sensitive presigned GET URL and metadata for downloading the current or specified version of a matter file.

Get File Preview

Return a sensitive presigned URL to the PDF preview of the file's current version.

Get File Version Preview

Return a sensitive presigned URL to the PDF preview of a specific document version.

Get Firm

Retrieves the details of the firm associated with the authenticated client.

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.

Get Matter

Retrieves one matter by id with its documented fields, including any item, role, layout, and tag details Smokeball returns for it.

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.

Get Matter Billing Configuration

Retrieves the billing configuration for the specified matter.

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.

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.

Get Matter File

Retrieves metadata for a file belonging to the specified matter, including its download-details link.

Get Matter Folder Path

Returns the full folder hierarchy (path) as a collection ordered from the root folder down to the supplied folder.

Get Matter Invoice

Retrieves one invoice on a matter by matter id and invoice id: number, title, status, dates and totals.

Get Matter Invoice Download Url

Return a sensitive download URL, its expiry timestamp, version, and status for the specified invoice.

Get Matter Item

Retrieves one item on a matter by matter id and item id: name, index, visibility and its subItems tree.

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.

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.

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.

Get Matter Role Relationship

Retrieves one relationship on a matter role by relationship id, including its name, associated contact link, and representative links.

Get Matter Stage Info

Retrieves a matter's current stage information, including its stage set, current stage, version id, and last-updated timestamp.

Get Matter Type

Retrieves one matter type by id: name, category, type, location, representative options and the items it defines.

Get Notification

Retrieves one notification by id: message, icon, creator and date, and whether it has been read or seen.

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.

Get Referral Type

Retrieves one referral type by id: its name and whether it is deleted.

Get Staff Member

Retrieves a staff member (based on staff id parameter provided) in the firm associated with the authenticated client.

Get Stage Set

Returns the stage set identified by `stage_set_id`, including its configured matter stages.

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.

Get Subtask

Retrieves the subtask identified by `subtask_id` within the specified `task_id`.

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.

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.

Get User

Retrieves the Smokeball user identified by `user_id`.

Get Webhook Subscription

Returns the webhook subscription identified by `webhook_subscription_id`, including its callback and subscribed events.

List Activity Codes

Returns a list of activity codes.

List Authorization Groups

Return the authorization groups for the firm associated with the authenticated client.

List Bank Account Matter Balances

Returns a list of bank account matter balances.

List Bank Accounts

Returns bank accounts available to the authenticated firm, optionally filtered by account type or matter identifier.

List Contact Relations

Return relations for a contact associated with the authenticated client.

List Contacts

Returns a list of contacts.

List Contact Tags

Lists the tags currently on one contact, by contact id, as a plain string collection under value.

List Event Reminders

Returns the collection of reminders for an event The native root response is returned under data as an explicit Composio normalization.

List Events

Returns a list of events.

List File History

Returns the full list of history entries for the specified file.

List Firm Matter Stage Mappings

Returns a list of stage to matter mappings in the firm.

List Folder History

Returns a list of history entries for the specified folder.

List Layout Designs

Returns a list of layout designs.

List Matter Expenses

Returns a list of expenses for the specified matter.

List Matter Fees

Returns a list of fees for the specified matter.

List Matter Files

Returns a paged list of non-deleted files associated with a matter.

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.

List Matter Invoices

Returns a list of invoices for the specified matter.

List Matter Items

Returns the versioned item collection for a matter.

List Matter Layout Contacts

Returns a list of contacts on a specified layout.

List Matter Layouts

Returns a collection of layout items on a specified matter.

List Matter Memos

Returns a list of memos on the specified matter.

List Matter Role Relationships

Returns associated relationships for a specified matter and role group.

List Matter Roles

Returns associated roles for a specified matter.

List Matters

Returns one page of matters; pass next_cursor back as cursor to read the next one.

List Matter Tags

Returns the tags assigned to the matter identified by `matter_id`.

List Matter Type Categories

Returns a list of all the possible matter type categories.

List Matter Types

Returns a paginated list of matter types based on search criteria.

List Referral Types

Returns referral types, including custom referral types.

List Staff

Retrieves a paginated list of staff members in the firm associated with the authenticated client.

List Stage Sets

Returns a list of stage sets for the firm.

List Subtasks

Returns a list of subtasks for a specified task if associated with the authenticated client.

List Task Documents

Returns a list of document links for the specified task, if associated with the authenticated client.

List Tasks

Returns a list of tasks.

List Webhook Event Types

Lists the event type names a webhook subscription can subscribe to, as a plain string collection under value.

List Webhook Subscriptions

Returns existing webhook subscriptions.

Merge Matter Layout

Merges layout data using a restricted documented subset.

Patch Matter

Patches a matter or Lead, including lead-to-matter conversion and matter-type changes.

Patch Matter Archive

Updates the specified matter archive.

Patch Matter Billing Configuration

Changes only the supplied billing configuration fields for the specified matter.

Patch Matter Expense

Changes only the supplied expense fields for the specified matter.

Patch Matter Fee

Patches a fee for the specified matter.

Patch Matter File

Partially updates a file's metadata on the specified matter; only supplied fields change, but the documented schema still requires fileName.

Patch Matter Folder

Partially updates a folder belonging to the specified matter.

Protect Bank Account Funds

Protects funds in a trust bank account.

Remove Contact Tag

Removes one tag from a contact.

Remove Matter Layout

Removes a layout matter item from a matter.

Remove Matter Layout Contact

Removes a contact from a specified layout, deleting the associated role or relationship from the matter.

Remove Matter Role

Removes a specified role from a matter.

Remove Matter Role Relationship

Removes a relationship from a role in a matter.

Remove Matter Tag

Removes the tag from the matter without deleting from the account.

Search Files

Search files across the account using a required full-text query and documented filters; return the documented result array.

Unprotect Bank Account Funds

Unprotects funds in a trust bank account.

Update Activity Code

Updates an activity code.

Update Authorization Group

Updates a specified authorization group.

Update Authorization Policy

Updates a specified authorization policy.

Update Contact

Updates a specified contact.

Update Contact Relation

Updates a relation for a specified contact.

Update Event

Updates an event.

Update Event Reminder

Updates an existing reminder for an event.

Update Firm

Updates firm details for the current authenticated client.

Update Matter

Updates a specified matter.

Update Matter Archive

Replaces the specified matter archive by applying the full editable archive representation.

Update Matter Billing Configuration

Replaces the specified matter's billing configuration by applying its full editable representation.

Update Matter Expense

Replaces the expense by applying its full editable representation for the specified matter.

Update Matter Fee

Replaces the fee by applying its full editable representation for the specified matter.

Update Matter File

Replace all editable file fields using PUT; use PATCH_MATTER_FILE for a partial edit.

Update Matter Folder

Replaces the editable fields of a folder belonging to the specified matter.

Update Matter Memo

Updates a specified memo.

Update Matter Role

Updates a specified role on a matter.

Update Matter Role Relationship

Updates a specified relationship on a matter.

Update Staff Member

Updates a staff member in the firm associated with the authenticated client.

Update Subtask

Updates a specified subtask of a specified task.

Update Task

Updates a specified task.

Update Webhook Subscription

Update a persistent webhook subscription's name, event types, external eventNotificationUrl, and signing key.

FAQ

Frequently asked questions

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.

Yes, you can. Hermes 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.

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.

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.

Start with Smokeball.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Smokeball tool your agent needs.Free to start.

Start building