Relm CRM

com.relmcrmPublished by relmcrm.comOfficial publisherv0.17.1Updated Oct 24, 2026

API-first CRM for LLMs - contacts, companies, deals and activities over a native MCP server.

Overview

AI-generated overview

Lets an assistant work with a CRM over a remote MCP endpoint: contacts, companies, deals, activities, automations and sequences.

What you can do
Provides cross-entity search, listing, reading, creating, updating and soft-deleting (with restore) of contacts, companies, deals and activities. It also manages pipelines and stages, registers custom object types and fields, runs batches of up to 100 writes, and creates automation rules, email templates, drip sequences and webhook subscriptions. Separate tools describe the live schema and report usage.
When to use it
Use it when an assistant should work directly with CRM records, such as looking up contacts, creating companies and deals, logging activities, or setting up automation rules and drip sequences. Also suited to bulk imports or migrations, checking usage quota before large writes.
Requirements
A connection to the remote endpoint plus a Relm CRM account and authorization for the workspace. Sending through automations requires your own Resend key and a verified sender.
Before you install
Tools create, update and delete CRM records, and can create automations and sequences that send email to contacts. relm_connect_channel takes a Resend API key; the webhook secret returned on creation is shown only once. Writes count against the workspace quota and may incur overage charges.

Installation

In SourceWeft

  1. Open Relm CRM 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/com.relmcrm%2Frelm/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": {
    "relm-crm": {
      "type": "http",
      "url": "https://api.relmcrm.com/mcp"
    }
  }
}

Tools

41

relm_describe_schema

Describe CRM schema

Return the live schema: every object, its fields (built-in + custom), and all enum groups with their current values (contact types, activity types, etc). ALWAYS call this before guessing a type, stage, or field - it is the source of truth for what exists.

Takes no parameters.

relm_list

List records

List records of an object with keyset pagination. Optional filters vary by object (e.g. contact: email/company_id/type; deal: pipeline/stage/company_id; activity: contact_id/deal_id/type).

Parameterslimitcursorfilterobjectrequired

relm_get

Get record

Fetch one record by id.

Parametersidrequiredobjectrequired

relm_create

Create record

Create a record. `data` is the object's fields (see relm_describe_schema). Custom fields must be registered first (relm_create_field). A contact needs at least one of: a name, an identifier (email/phone/linkedin_url), a company, or a custom field (email is unique per workspace) - don't invent a placeholder email.

Parametersdatarequiredobjectrequired

relm_update

Update record

Patch a record. Pass if_match (the record's current version) for optimistic concurrency; a 412 means re-fetch and retry.

Parametersidrequiredpatchrequiredobjectrequiredif_match

relm_delete

Delete record (recoverable)

Soft-delete a record (recoverable via relm_restore). Never hard-destroys data.

Parametersidrequiredobjectrequired

relm_restore

Restore deleted record

Restore a soft-deleted record.

Parametersidrequiredobjectrequired

relm_log_activity

Log activity

Log an activity (note/call/email/meeting/task) on a contact and/or deal. Convenience wrapper over create activity.

Parametersbodytypedeal_idcontact_id

relm_list_pipelines

List pipelines

List pipelines with their ordered stages.

Takes no parameters.

relm_create_pipeline

Create pipeline

Create a pipeline. Optionally provide stages [{key,label}] (defaults to lead/qualified/proposal/won/lost) and is_default.

Parameterskeynamestagesis_default

relm_manage_stage

Manage pipeline stages

Add, rename/retype, delete, or reorder stages in a pipeline. action=add: `key` (+optional label, ordinal, type). action=rename: `key` (existing) + any of new_key / label / type - keys are slugified and deals follow automatically (fixes a typo'd key). action=delete: `key` (a stage in use by deals cannot be deleted). action=reorder: `order` = every existing stage key exactly once, in the new order. `type` is the semantic stage type: open | won | lost - so 'is this deal won?' is a flag (stage_type on every deal), not per-pipeline string matching.

Parameterskeytypelabelorderactionrequirednew_keyordinalpipelinerequired

relm_create_type

Register object type

Register a new object type in the schema (registry). Idempotent on key; returns the full type set.

Parameterskeyrequiredlabel

relm_create_field

Register custom field

Register a new custom field on an object (contact/company/deal/activity). data_type: text|number|boolean|date|select|multiselect|currency|reference|email|url. Must be created before it can be written to a record.

Parameterskeyrequiredlabelobjectrequiredrequireddata_typeenum_group

relm_create_enum_value

Add enum value

Add a value to an enum group (e.g. group 'contact.type' value 'partner'). Idempotent; returns the full value set. Use this when relm_create rejects an unknown type with a valid_options list.

Parametersgrouprequiredlabelvaluerequired

relm_batch

Batch write records

Run up to 100 record writes in ONE call (contact/company/deal/activity) - the fast path for imports/migrations. operations: [{object, method:create|update|delete, data|patch, id?}]. Returns a per-op result array (partial success). Every op still counts against your quota (batch saves round-trips, not quota).

Parametersoperationsrequired

relm_automations_capabilities

Describe automation capabilities

Discover the automation building blocks: valid trigger_events, condition ops, action types, channels/providers, and the shapes of automations/sequences/connections. Call before building a rule or sequence.

Takes no parameters.

relm_connect_channel

Connect messaging channel

Connect a BYO messaging channel so automations can send. channel='email', provider='resend', api_key=<your Resend key>, from='Team <[email protected]>' (must be a verified Resend sender). The key is encrypted at rest.

Parametersfromnameapi_keyrequiredchannelprovider

relm_list_connections

List connected channels

List connected messaging channels (never returns the secret key).

Takes no parameters.

relm_create_automation

Create automation rule

Create a single-step rule: when <trigger_event> [if <conditions>] then <actions>. conditions=[{field,op,value}] (ANDed), actions=[{type,...}]. Example: trigger_event='deal.stage_changed', conditions=[{field:'stage',op:'eq',value:'won'}], actions=[{type:'create_activity',body:'Deal won!'}]. See relm_automations_capabilities.

Parametersnamerequiredactionsrequiredenabledconditionstrigger_eventrequired

relm_list_automations

List automation rules

List reactive rules (automations).

Takes no parameters.

relm_create_template

Create email template

Create a reusable email template. name, html (full HTML, {{field}} placeholders ok), optional subject + text (plaintext alt; auto-derived if omitted). Reference it from a rule/sequence step via {"type":"send_email","template":"<key or tmpl_id>"}.

Parameterskeyhtmlrequirednamerequiredtextsubject

relm_list_templates

List email templates

List reusable email templates.

Takes no parameters.

relm_create_sequence

Create drip sequence

Create a multi-step drip sequence. trigger={event,filter:[{field,op,value}]} auto-enrolls the matching entity's contact; exit_when=[{field,op,value}] stops it (re-checked before every send); steps=[{wait_days,subject,body}] (first step wait_days:0 sends now). enroll_existing:true also enrolls everything that currently matches. Example: 3 emails to contacts of deals entering stage 'lead', stop if the deal leaves 'lead'.

Parametersnamerequiredstepsrequiredchannelenabledtriggerexit_whenconnectionenroll_existing

relm_list_sequences

List drip sequences

List drip sequences with their steps and enrollment counts.

Takes no parameters.

relm_preview_sequence

Preview sequence (dry run)

Dry-run a sequence: how many contacts would enroll now + the send schedule. No side effects.

Parametersidrequired

relm_enroll

Enroll contact in sequence

Manually enroll a contact into a sequence (idempotent per contact+sequence). Optional source={object,id} records what drove the enrollment (e.g. a deal).

Parameterssourcecontact_idrequiredsequence_idrequired

relm_create_webhook

Create webhook subscription

Subscribe an https endpoint to CRM events. events=['*'] for all, or a subset of ['contact.created','contact.updated','deal.created','deal.updated','deal.stage_changed']. Returns a `secret` ONCE - the subscriber verifies the `Relm-Signature` header (t=<unix>,v1=<hmac-sha256 of "t.body">). Deliveries retry with backoff and dead-letter after 6 attempts.

Parametersurlrequiredeventsenableddescription

relm_list_webhooks

List webhooks

List webhook subscriptions in this workspace/mode.

Takes no parameters.

relm_delete_webhook

Delete webhook

Delete a webhook subscription by id.

Parametersidrequired

relm_get_automation

Get automation

Read one automation by id, with its trigger, conditions and actions.

Parametersidrequired

relm_get_sequence

Get sequence

Read one drip sequence by id. view=sequence (default) returns it with its steps; view=enrollments lists who is enrolled and their state.

Parametersidrequiredview

relm_get_pipeline

Get pipeline

Read one pipeline by key or pl_ id, with its ordered stages and their semantic types (open/won/lost).

Parameterspipelinerequired

relm_get_webhook

Get webhook

Read one webhook by id. view=webhook (default) returns the subscription; view=deliveries returns recent delivery attempts (status, retries, dead-letter) to debug why an endpoint isn't receiving events.

Parametersidrequiredview

relm_manage_automation

Manage automation

Change an existing automation by id. action=disable stops it firing (use this to turn off a misbehaving rule); action=enable resumes it; action=delete removes it. To read one, use relm_get_automation. To change a rule's trigger/conditions/actions, delete and recreate.

Parametersidrequiredactionrequired

relm_manage_sequence

Manage sequence

Change an existing drip sequence by id. action=disable stops further sends (use this to halt a bad sequence); action=enable resumes; action=delete removes it. To read one or list its enrollments, use relm_get_sequence.

Parametersidrequiredactionrequired

relm_manage_pipeline

Manage pipeline

Change an existing pipeline by key or pl_ id. action=rename changes its display `name` and/or its key (pass `new_key`) - deals link by internal id, so they follow a re-key automatically; action=set_default makes it the workspace default; action=delete removes it (fails if deals still use it - move them first). To read one, use relm_get_pipeline.

Parametersnameactionrequirednew_keypipelinerequired

relm_manage_webhook

Toggle webhook

Pause or resume delivery for an existing webhook by id. action=enable/disable. To read one or inspect its delivery attempts, use relm_get_webhook. To remove it, use relm_delete_webhook.

Parametersidrequiredactionrequired

relm_delete_connection

Delete channel connection

Delete a connected messaging channel by id (e.g. to remove a rotated/wrong Resend key).

Parametersidrequired

relm_get_usage

Get usage and quota

Read this workspace's current billing period: requests used, plan, monthly limit, and any metered overage. Call this to see how close you are to the quota before a big import.

Takes no parameters.

relm_set_spend_cap

Set overage spend cap

Set (or clear) the hard monthly overage spend cap in USD. overage_cap_usd: a number caps paid overage (requests 429 with spend_cap_reached past it), 0 = never any overage, null = unlimited. This is the recovery for a spend_cap_reached error.

Parametersoverage_cap_usdrequired

Version history

1
  1. v0.17.1LatestSep 16, 2026

Score

72% 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

    Publish an icon in the registry entry.

  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.