# Beacon CRM Muse connector

From musedirectory.ai, the independent directory of Meta Muse connectors. Not affiliated with Meta.

## Beacon CRM

Read, search, create and update customer records in Beacon CRM from Muse.

- Record: https://musedirectory.ai/connector/beacon-crm
- Category: Productivity
- Developer: usefulapi (https://usefulapi.io/beacon-crm/)
- Muse status: Extra setup. Not in Muse's Connectors list yet. Muse can still use it: its page gives you a request to paste into Muse.
- Health: Working, 994ms, checked 2026-10-29T11:15:59Z
- Endpoint: https://beacon-crm.usefulapi.io/mcp
- Auth: No account needed; Pricing: unknown
- Screening: Screened, no issues found (2026-10-29T12:56:30Z)
- Source: Found in the official MCP Registry (io.usefulapi/beacon-crm) https://registry.modelcontextprotocol.io/v0/servers?search=io.usefulapi%2Fbeacon-crm

Connect to Beacon CRM to list, filter, create, update and delete records of any type (people, organizations, payments, custom types). Run exports from existing templates. Requires a Beacon account and no authentication setup.

Example request: "Find all customers in my Beacon CRM who signed up last month and export their contact details."

How to connect: Not in Muse's Connectors list yet, but Muse can still use it. Paste this into Muse: "Use Beacon CRM to help me. It is a free service with an MCP server at https://beacon-crm.usefulapi.io/mcp. It does not need an API key. Ask me before you share anything with it." Muse asks before it shares anything with the app's site. Meta does not review apps used this way, so only use ones you trust. We tested this in the Muse app on September 24, 2026: Muse used an app's link directly this way and returned a live answer.

Tools:
- beaconcrm_list_record_types: List the record types of this Beacon account (people, organisations, payments, custom types, ...) with their fields (keys, types, options). Call this first: the keys are what the other tools take as `entity` and as field names. GET /entity_types.
- beaconcrm_list_users: List the users of the Beacon account (id, role, name, email). Use the inner user.id for 'link to a user' fields. GET /users.
- beaconcrm_list_records: List records of one type (for example person, organization, payment), one page at a time. Use beaconcrm_filter_records to search by field values. GET /entities/{entity}.
- beaconcrm_get_record: One record by type and id, with all its fields. GET /entity/{entity}/{id}.
- beaconcrm_filter_records: Search records of one type with Beacon filter conditions (read-only; it uses POST because the filter is a body). Each condition is {"field", "operator", "value"}. Operators by field type: text == != starts_with ends_with contains not_contains null not_null; select (value is an ar
- beaconcrm_create_record: WRITE: create ONE new record of the given type in the live Beacon database. Not idempotent: calling it twice creates two records (use beaconcrm_upsert_record to avoid duplicates). Beacon workflows may run as a result. Invalid field values are rejected with the rule that failed. P
- beaconcrm_update_record: WRITE: change fields of ONE existing record. Only the fields you pass are changed; a select or reference field passed as an empty array [] is CLEARED, removing its existing values. The previous values are not kept by this tool. Beacon workflows may run as a result. PATCH /entity/
- beaconcrm_upsert_record: WRITE: create a record, or update the existing one whose key field matches. `primary_field_key` names the field used to find the match (for example "emails" for a person, or "external_id"); `fields` must contain a value for it. If a record matches it is UPDATED with the given fie
- beaconcrm_delete_record: WRITE, DESTRUCTIVE: delete ONE record. Beacon keeps deleted records as 'archived' (listable with archived=true), but this server has no restore tool, so treat the deletion as irreversible. Related data that depends on the record may be affected. It is sent once and never retried.
- beaconcrm_trigger_export: WRITE: start an export job from an existing export template (created in Beacon). Returns the new export's id with status in_progress; then poll beaconcrm_list_exports with that id until progress is 100 and it carries a download url. Each call starts another job. POST /entity_expo
- beaconcrm_list_exports: List recent export jobs with status, progress (100 = complete) and, when complete, a signed download url. Pass entity_export_id to check one job started by beaconcrm_trigger_export. GET /entity_exports.

Screening checks:
- MCP handshake: pass (Answered in 11ms)
- Domain against threat feeds (Cloudflare security DNS): pass (beacon-crm.usefulapi.io, usefulapi.io not flagged)
- Published packages against the OSV malicious-package database: n/a (No npm or PyPI package published)
- Hidden instructions or invisible characters in tool text: pass (11 tools read, nothing found)
- Inputs asking for passwords, card numbers or seed phrases: pass (None found)
- Domain and redirects: pass (No redirects off the domain)
- AI review of purpose and tool behavior: pass (No concerns)
