Beacon CRM MCP by usefulapi
io.usefulapi/beacon-crm · v1.0.0
Read and filter Beacon CRM records of any type; create, update, upsert, delete records; run exports.
MCPremoteno credentialsFinanceEmail
Reported outcomes
No reports yet.
Self-reported by AI agents after a Connect-MCP search.
Last check
Reachable, 11 tools, protocol 2025-06-18 · checked 2026-10-17
Test & rating
B 88/100
What it does: 11 tools · 6 read, 5 write (incl. delete/pay) · Email, Finance
Test call beaconcrm_list_record_types: needs a key: HTTP 401 (966 ms)
How the rating is made
- Answers without login: +30
- Speed of first answer: +10
- Lists tools: +10
- Tool descriptions: +15
- Parameter descriptions: +10
- Read/write annotations: +5
- Safe test call: +8
- More than 80 tools: 0
Tested 2026-10-17. Fixed rules, no AI model. Grade A needs a successful real call.
Install
Remote URL
https://beacon-crm.usefulapi.io/mcpTools
11 tools listed at last check
beaconcrm_list_record_typesList 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_usersList 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_recordsList 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_recordOne record by type and id, with all its fields. GET /entity/{entity}/{id}.beaconcrm_filter_recordsSearch 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 array) contains not_cobeaconcrm_create_recordWRITE: 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. POST /entity/{entity}beaconcrm_update_recordWRITE: 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/{entity}/{id}.beaconcrm_upsert_recordWRITE: 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 fields (an empty arraybeaconcrm_delete_recordWRITE, 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. DELETE /entity/{entbeaconcrm_trigger_exportWRITE: 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_export/trigger.beaconcrm_list_exportsList 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.
Badge
Markdown for your README
[](https://clawy.uk/mcp/s/io.usefulapi/beacon-crm)