Method CRM MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.17.5Updated Nov 8, 2026

Query Method CRM customers, leads, activities and invoices; create and update records.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableFinanceBusiness & Commerce

Overview

AI-generated overview

Hosted Method CRM connector that lets an assistant query customers, leads, contacts, activities and invoices, and create or update records.

What you can do
  • Inspect the account and schema: identify the API key owner, list tables and read a table's field names and types
  • Query data: run filtered queries, count records, fetch single records and expand child rows such as invoice lines
  • Look up CRM records: search customers and leads, list contacts, list activities and list invoices
  • Access attachments: list files on a record and get a temporary download link
  • Write data: create customers or leads, log activities, create records in other tables and patch fields on a record
  • Manage the plan: check usage, request a feature, upgrade or cancel the subscription
When to use it
Useful when an assistant should answer questions about a Method CRM account, such as new leads this week or overdue unpaid invoices, or log calls and notes and update records without leaving the chat.
Requirements
A remote MCP endpoint added by URL only; the server signs in with OAuth and the login page asks for Method CRM credentials. A Method API key is pasted on first connect. No Authorization header or API key goes in the client config. A free plan allows 50 tool calls per month; paid plans are available.
Before you install
Write tools create customers, leads, activities and other records and change existing records; confirm before running them. A full customer (not a lead) syncs to QuickBooks or Xero. File download links work without the API key for 20 minutes, so share them only with people allowed to see the file. Upgrading returns a payment link and subscriptions are billed; cancellation has no refund for the current period. Field names are case-sensitive and wrong ones are silently ignored.

Installation

In SourceWeft

  1. Open Method CRM MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fmethod-crm/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "method-crm-by-usefulapi": {
      "type": "http",
      "url": "https://method-crm.usefulapi.io/mcp"
    }
  }
}

README

Method CRM MCP by usefulapi

Query Method CRM customers, leads, activities and invoices; create and update records.

Live endpoint: https://method-crm.usefulapi.io/mcp · Homepage: https://usefulapi.io/method-crm

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://method-crm.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http method-crm https://method-crm.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "method-crm": {      "url": "https://method-crm.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Method CRM credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/method-crm/

On first connect you'll paste a Method API key (blue circle icon → Integrations → API → New; it is shown only once).

Tools

ToolTypeWhat it does
method_get_accountreadGet API key owner
method_list_tablesreadList tables
method_get_table_fieldsreadGet table fields
method_query_recordsreadQuery records
method_count_recordsreadCount records
method_get_recordreadGet record
method_search_customersreadSearch customers and leads
method_list_contactsreadList contacts
method_list_activitiesreadList activities
method_list_invoicesreadList invoices
method_list_filesreadList files on a record
method_get_file_urlreadGet file download link
method_create_customerwriteCreate customer or lead
method_create_activitywriteLog an activity
method_create_recordwriteCreate a record
method_update_recordwriteUpdate a record
method_usage_statusmetaUsage status (free-tier meter)
method_request_featuremetaRequest a missing feature
method_upgrademetaUpgrade to Pro or Pro+
method_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per user)$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with method_upgrade (it returns a Stripe Checkout link). Cancel any time with method_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running method_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT © usefulapi. Not affiliated with or endorsed by Method CRM.

Source: servers/method-crm/README.md at commit 4046075

Tools

16

method_get_account

Get API key owner

Who the API key acts as: the Method user behind it (id and name; use the id as an assignee). Also a cheap check that the key works. GET /api/v1/me.

Takes no parameters.

method_list_tables

List tables

List every table on this Method account (standard QuickBooks/Xero/Method tables and custom ones) with its source and whether it can be created, updated or deleted. Tables differ per account: call this before querying a table you are unsure of. GET /api/v1/tables.

Takes no parameters.

method_get_table_fields

Get table fields

The exact field names of a table with type, whether required, creatable and mutable, and for dropdowns the table they reference. Use it to pick `select` fields and to name fields in create/update calls (names are case-sensitive and wrong ones are silently ignored). GET /api/v1/tables/{table}/fields.

Parameterstablerequired

method_query_records

Query records

Query any table (Customer, Contacts, Activity, Invoice, Estimate, Item, Users, custom tables ...). Always pass `select`. `filter` uses OData-style syntax: strings in single quotes, dates as '2026-05-26T00:00:00Z' with Z or an offset, operators eq ne lt gt le ge and or not, functions contains(Name,'x') startswith() endswith(); e.g. "BalanceRemaining gt 0 and DueDate lt '2026-10-01T00:00:00Z'". `apply` runs server-side aggregation instead of listing rows, e.g. "aggregate(BalanceRemaining with sum as Outstanding)" or "groupby((Customer), aggregate(Amount with sum as Total))". Default order is RecordID ascending (stable paging); page with next_skip. GET /api/v1/tables/{table}.

Parameterstopskipapplytablerequiredfilterselectorderby

method_count_records

Count records

How many records a table has, optionally matching a filter (same filter syntax as method_query_records). Cheap: call it before paging through a big table. GET /api/v1/tables/{table}/count.

Parameterstablerequiredfilter

method_get_record

Get record

One record by RecordID from any table. Pass `select` to limit the columns; `expand` names a related CHILD table whose rows are embedded (e.g. InvoiceLine on Invoice; at most 50 rows); a parent such as a contact's Entity is not expanded: read it with its own RecordID (Entity_RecordID). GET /api/v1/tables/{table}/{recordId}.

Parameterstablerequiredexpandselectrecord_idrequired

method_search_customers

Search customers and leads

Find customers and leads (the Customer table: Customers & Leads in Method) by text in the name or email, by lead/customer type, or list them all. Returns RecordID, name, email, phone, lead flag and status; override `select` for other fields (see method_get_table_fields with table Customer). Page with next_skip. GET /api/v1/tables/Customer.

Parameterstopkindskiptextselectactive_only

method_list_contacts

List contacts

List contacts (people), optionally those of one customer/lead entity (entity_id = the Customer's RecordID) or matching text in name/email/phone. Returns RecordID, name, email, phone, the entity link and active flag. Use a Contact's RecordID (not the Customer's) when linking activities. GET /api/v1/tables/Contacts.

Parameterstopskiptextselectentity_id

method_list_activities

List activities

List activities (calls, emails, to-dos, notes), newest first. Filter by the entity they belong to, the assigned user or a due-date window. The note text is in Comments. Override `select` for other fields (method_get_table_fields with table Activity). GET /api/v1/tables/Activity.

Parameterstopskipselectdue_afterentity_iddue_beforeassigned_to_id

method_list_invoices

List invoices

List invoices, newest first, optionally only unpaid ones (BalanceRemaining > 0), one customer's (customer_id = Customer RecordID) or created since a time. Returns reference number, customer, dates, amount and balance; override `select` for other fields. For totals use method_query_records with `apply`. GET /api/v1/tables/Invoice.

Parameterstopskipselectcustomer_idunpaid_onlycreated_since

method_list_files

List files on a record

List the files attached to a record (name, size, who added it, id). Use the id with method_get_file_url. GET /api/v1/files.

Parameterstablerequiredrecord_idrequired

method_get_file_url

Get file download link

A temporary download link (valid 20 minutes) for an attached file, by the file id from method_list_files. The link works without the API key: share it only with someone allowed to see the file. GET /api/v1/files/{id}/url.

Parametersfile_idrequired

method_create_customer

Create customer or lead

WRITE: creates a record in Method's Customer table. is_lead true = a Customer Lead (does not sync to the accounting system); is_lead false = a full customer, which Method syncs to QuickBooks/Xero (it appears there too). Method also creates the primary Contact; its RecordID is returned as contact_id when it could be found (use it, not the customer id, to link activities). Name is required (for a person with no company use "First Last"). `extra_fields` sets other fields by their exact names (see method_get_table_fields, table Customer). Not idempotent: calling twice creates two records, so search first (method_search_customers). POST /api/v1/tables/Customer.

Parametersnamerequiredemailphoneis_leadrequiredlast_namefirst_namelead_statusextra_fieldsassigned_to_id

method_create_activity

Log an activity

WRITE: logs an activity (call, email, to-do, note) on a customer/lead. entity_id is the Customer RecordID; contact_id is the Contact RecordID (not the Customer's; method_list_contacts finds it). The text goes in Comments. Prefer activity_type_id (read it from an existing activity of that type) over the caption activity_type: a caption that matches zero or several options is silently dropped. Method requires an assignee on standard accounts. The reply re-reads the activity so you can check the links were stored (field names are account-specific; method_get_table_fields with table Activity shows them). It does not email anyone. Not idempotent. POST /api/v1/tables/Activity.

Parametersduecommentsrequiredentity_idrequiredstatus_idcontact_idactivity_typeassigned_to_idactivity_type_id

method_create_record

Create a record

WRITE: creates a record in any table that allows it (method_list_tables shows canCreate), e.g. Estimate, Invoice, Item, Vendor. For customers/leads and activities use the dedicated tools. Field names are case-sensitive and a wrong one is silently ignored: read them with method_get_table_fields first, and send dropdown links as their `_RecordID` integer. Creating accounting records (Invoice, Estimate, Customer ...) makes Method sync them to QuickBooks/Xero. Child lines (InvoiceLine ...) are not supported here. Not idempotent. Returns the new RecordID. POST /api/v1/tables/{table}.

Parameterstablerequiredfieldsrequired

method_update_record

Update a record

WRITE: changes fields on one record (PATCH: only the fields you pass change). Field names are case-sensitive and Method silently ignores wrong or read-only names, so the reply re-reads the record and shows the stored values of the fields you sent: check them. Linked fields are changed through their `_RecordID` integer field. Updating accounting records (Customer, Invoice ...) makes Method sync the change to QuickBooks/Xero; setting IsLeadStatusOnly to false converts a lead into a synced customer. There is no delete tool. PATCH /api/v1/tables/{table}/{recordId}.

Parameterstablerequiredfieldsrequiredrecord_idrequired

Version history

16
  1. v1.17.5LatestNov 8, 2026
  2. v1.17.4Nov 7, 2026
  3. v1.16.3Nov 5, 2026
  4. v1.16.2Nov 5, 2026
  5. v1.16.1Nov 4, 2026
  6. v1.16.0Nov 3, 2026
  7. v1.15.1Nov 3, 2026
  8. v1.14.0Nov 1, 2026
  9. v1.12.0Oct 31, 2026
  10. v1.11.0Oct 31, 2026
  11. v1.10.2Oct 30, 2026
  12. v1.10.0Oct 30, 2026
  13. v1.5.0Oct 26, 2026
  14. v1.2.3Oct 25, 2026
  15. v1.2.0Oct 25, 2026
  16. v1.1.0Oct 24, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations