rocketmatter-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ROCKETMATTER_API_KEY | No | Your Rocketmatter API key (overrides stored credentials) | |
| ROCKETMATTER_MCP_USE_KEYRING | No | Set to '0' to disable keyring and use file-based credential storage |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_mattersA | List matters, paginated. Optional server-side filters: client_id (GUID) and matter_name — these are the only filters the /v1 API honors for matters. |
| get_matterA | Get a matter by ID (GUID). |
| create_matterA | Create a matter. fields_json: JSON object with matter fields. Required: clientId. Optional: billingMethod, dateOpened, matterOwnerId, areaOfLawId, matterName, matterFileNumber, notes, matterTypeId. |
| update_matterC | Update a matter by ID (GUID). fields_json: JSON object with fields to update. |
| delete_matterC | Delete a matter by ID (GUID). |
| list_clientsA | List clients, paginated. Optional server-side filters: name and display_name — these are the only filters the /v1 API honors for clients. |
| get_clientA | Get a client by ID (GUID). |
| create_clientC | Create a client. fields_json: JSON object. Required: name. Optional: displayName, contactSalutation, contactTitle, entityName, address1, clientAsEntity, email, secondaryEmail, cellPhoneNumber. |
| update_clientB | Update a client by ID (GUID). fields_json: JSON object with fields to update. |
| delete_clientA | Delete a client by ID (GUID). |
| list_contactsC | List contacts with pagination. |
| get_contactA | Get a contact by ID (GUID). |
| create_contactC | Create a contact. fields_json: JSON object with contact fields. |
| update_contactC | Update a contact by ID (GUID). |
| delete_contactB | Delete a contact by ID (GUID). |
| list_time_entriesA | List time entries, paginated. Optional matter_id (GUID) filter — the only server-side filter the /v1 API honors for time entries. |
| get_time_entryB | Get a time entry by ID (GUID). |
| create_time_entryB | Create a time entry. fields_json: JSON object. Required: matterId. |
| update_time_entryC | Update a time entry by ID (GUID). |
| delete_time_entryA | Delete a time entry by ID (GUID). |
| list_expensesA | List expense cards, paginated (firm-wide). The /v1 API honors no server-side filter on expenses — not even matter_id — so none is offered. |
| get_expenseB | Get an expense card by ID (GUID). |
| create_expenseC | Create an expense card. fields_json: JSON object. Required: matterId. |
| update_expenseC | Update an expense card by ID (GUID). |
| delete_expenseB | Delete an expense card by ID (GUID). |
| list_invoicesC | List invoices with pagination. |
| get_invoiceA | Get an invoice by ID (GUID). |
| generate_invoiceA | [Not in LCS /v1] Generate an invoice via the legacy two-step billable-items + challenge-token flow. That flow was /api/v2-only and fails loudly here. Use create_invoice with the /v1 invoice body instead. |
| list_billable_itemsB | [Not in LCS /v1] Preview a matter's unbilled billable items with challenge tokens (the /api/v2 billing flow). Fails loudly. |
| create_invoiceC | Create an invoice via POST /v1/invoices. fields_json: JSON object with the invoice body. The API's 400 validation names any missing required fields. |
| update_invoiceC | Update an invoice by ID (GUID). |
| delete_invoiceB | Delete an invoice by ID (GUID). |
| approve_invoiceB | [Not in LCS /v1] Approve a draft invoice for posting. Not exposed by /v1; fails loudly. |
| list_paymentsC | List invoice payments with pagination. |
| create_paymentC | Create an invoice payment and allocate to invoices/trust. |
| get_invoice_allocationsC | [Not in LCS /v1] Get invoice allocation suggestions for a payment. Not exposed by /v1; fails loudly. |
| list_transactionsA | List bank transactions for a matter or bank. The LCS /v1 transactions endpoint has no firm-wide listing — pass either a matter_id (GUID) or a bank_id. /v1 exposes no bank enumeration, so a bank_id must come from the Rocket Matter UI. |
| get_transactionA | Get a transaction by ID (GUID). |
| list_banksA | [Not in LCS /v1] List bank accounts. Bank enumeration is not exposed by the /v1 Integration API; this tool fails loudly. Get a bankId from the Rocket Matter UI for create_transaction / list_transactions. |
| list_chart_of_accountsA | [Not in LCS /v1] List the chart of accounts. Not exposed by the /v1 Integration API; this tool fails loudly. |
| create_transactionB | Create a bank transaction (deposit/withdrawal) via POST /v1/transactions. fields_json: JSON object with the transaction body (needs a bankId — see list_transactions on bank enumeration). The API's 400 validation names any missing required fields. |
| update_transactionB | Update a transaction by ID (GUID). |
| delete_transactionB | Delete a transaction by ID (GUID). |
| list_documentsA | List documents, paginated (firm-wide, read-only). The /v1 API exposes no confirmed server-side filter for documents, so none is offered. |
| get_document_default_appD | [Not in LCS /v1] /v1 documents is read-only (list only); document actions are not exposed. Fails loudly. |
| get_document_download_urlB | [Not in LCS /v1] Signed download URLs are not exposed by /v1 (read-only documents). Fails loudly. |
| get_document_upload_urlD | [Not in LCS /v1] Signed upload URLs are not exposed by /v1 (read-only documents). Fails loudly. |
| delete_documentD | [Not in LCS /v1] /v1 documents is read-only; delete is not exposed. Fails loudly. |
| list_usersA | List firm users (a.k.a. timekeepers) with pagination. Each carries email, roles, default rate, and status. |
| get_userB | Get a firm user by numeric ID. |
| list_timekeepersB | [Not in LCS /v1] Per-timekeeper billable/non-billable time summary is not in /v1; fails loudly. Use list_users for the firm's people list. |
| get_firm_summaryA | [Not in LCS /v1] Firm financial summary (balances, overdue, retainers) is not exposed by /v1; fails loudly. |
| list_text_shortcutsB | List text shortcuts/shorthands. The /v1 endpoint exists but the current OAuth app/user may not be authorized (returns a 403 until the scope is granted). |
| get_text_shortcutB | Get a text shortcut by ID (subject to the same /v1 authorization as list_text_shortcuts). |
| get_codesB | Get UTBMS codes for a matter (GUID) via GET /v1/codes?matterId=. matter_id is required. |
| get_task_codesD | [Not in LCS /v1] Task/activity split is not exposed; /v1 has only the combined get_codes(matter_id). Fails loudly. |
| get_activity_codesD | [Not in LCS /v1] Task/activity split is not exposed; /v1 has only the combined get_codes(matter_id). Fails loudly. |
| get_new_matter_defaultsC | [Not in LCS /v1] New-matter defaults lookup. Fails loudly. |
| get_new_matter_definitionC | [Not in LCS /v1] New-matter definition lookup. Fails loudly. |
| get_ebilling_defaultsB | [Not in LCS /v1] eBilling defaults lookup. Fails loudly. |
| get_matter_type_workflowC | [Not in LCS /v1] Matter-type workflow lookup. Fails loudly. |
| get_client_labelsB | [Not in LCS /v1] Client labels lookup. Fails loudly. |
| get_matter_labelsC | [Not in LCS /v1] Matter labels lookup. Fails loudly. |
| get_client_suggestionsB | [Not in LCS /v1] Client suggestions lookup. Fails loudly. Use list_clients. |
| get_new_contact_defaultsC | [Not in LCS /v1] New-contact defaults lookup. Fails loudly. |
| get_expense_lookupsC | [Not in LCS /v1] Expense lookups. Fails loudly. |
| get_new_expense_lookupsC | [Not in LCS /v1] New-expense lookups. Fails loudly. |
| get_invoice_lookupsC | [Not in LCS /v1] Invoice lookups. Fails loudly. |
| get_new_invoice_lookupsD | [Not in LCS /v1] New-invoice lookups. Fails loudly. |
| get_invoice_payment_lookupsC | [Not in LCS /v1] Invoice-payment lookups. Fails loudly. |
| get_time_entry_lookupsC | [Not in LCS /v1] Time-entry lookups. Fails loudly. |
| get_time_grid_lookupsD | [Not in LCS /v1] Time-grid lookups. Fails loudly. |
| get_transaction_lookupsB | [Not in LCS /v1] Transaction lookups. Fails loudly. |
| get_hard_cost_expense_lookupsC | [Not in LCS /v1] Hard-cost-expense lookups. Fails loudly. |
| list_ap_billsC | [Not in LCS /v1] List AP bills. Fails loudly. |
| get_ap_billC | [Not in LCS /v1] Get an AP bill. Fails loudly. |
| create_ap_billC | [Not in LCS /v1] Create an AP bill. Fails loudly. |
| update_ap_billC | [Not in LCS /v1] Update an AP bill. Fails loudly. |
| delete_ap_billC | [Not in LCS /v1] Delete an AP bill. Fails loudly. |
| list_ap_paymentsC | [Not in LCS /v1] List AP payments. Fails loudly. |
| create_ap_paymentC | [Not in LCS /v1] Trigger an AP payment. Fails loudly. |
| get_ap_payment_statusC | [Not in LCS /v1] AP payment status. Fails loudly. |
| list_ap_vendorsC | [Not in LCS /v1] List AP vendors. Fails loudly. |
| get_ap_vendorC | [Not in LCS /v1] Get an AP vendor. Fails loudly. |
| create_ap_vendorC | [Not in LCS /v1] Create an AP vendor. Fails loudly. |
| update_ap_vendorC | [Not in LCS /v1] Update an AP vendor. Fails loudly. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| matter_billing_review | Review unbilled time and outstanding invoices for a specific matter. |
| new_matter_intake | Create a new matter for an existing client. |
| accounts_receivable_review | Review outstanding invoices and recent payments for firm AR status. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| users_resource | All firm users / timekeepers (email, roles, default rate, status). |
| clients_resource | The firm's clients (first page) — names, balances, and contact details. |
| security_notes_resource | Security posture for rocketmatter-mcp. ## Credentials - **Scoped OAuth (ProfitSolv LCS /v1 Integration API).** Set up once via `rocketmatter-mcp-setup`: it stores the integration's API key + OAuth client_id/client_secret and runs a one-time browser consent. There is NO password login, so the MCP never trips Rocket Matter's single-session limit and never logs you out of your browser. - **ROCKETMATTER_API_KEY / ROCKETMATTER_CLIENT_ID / ROCKETMATTER_CLIENT_SECRET**: resolved via the OS keyring (file fallback `~/.rocketmatter-mcp/.env`, chmod 0600). The OAuth access + refresh tokens are cached in `~/.rocketmatter-mcp/tokens.json` (chmod 0600). Data calls send `X-Api-Key` + `X-User-Token` headers; the client refreshes the access token with the long-lived refresh token on expiry or a 401 — no browser, no password. Re-run setup only if the refresh token is revoked. ## Tool classification - **Read-only (safe):** list_matters, get_matter, list_clients, get_client, list_contacts, get_contact, list_time_entries, get_time_entry, list_expenses, get_expense, list_invoices, get_invoice, list_payments, list_transactions, get_transaction, list_documents, list_users, get_user, get_codes, list_text_shortcuts, get_text_shortcut. - **Write / side-effect:** create_matter, update_matter, delete_matter, create_client, update_client, delete_client, create_contact, update_contact, delete_contact, create_time_entry, update_time_entry, delete_time_entry, create_expense, update_expense, delete_expense, create_invoice, update_invoice, delete_invoice, create_payment, create_transaction, update_transaction, delete_transaction. - **Not in LCS /v1 (fail loud — kept for keep/drop review):** get_firm_summary, list_timekeepers, list_banks, list_chart_of_accounts, generate_invoice, list_billable_items, approve_invoice, get_invoice_allocations, the document actions, get_task_codes/get_activity_codes, all 17 lookups, all Accounts Payable tools. ## Data sensitivity Matters, time entries, invoices, transactions, and client records contain billable legal and financial data. Treat all matter-linked data as attorney-client privileged. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RosenAdvertising/rocketmatter-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server