Connectors · Email & messaging
Matrix / Element (Client-Server + Synapse Admin) MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Matrix / Element (Client-Server + Synapse Admin) and the rest of your systems. It gives your agent 246 Matrix / Element (Client-Server + Synapse Admin) actions (124 reads, 76 writes and 46 that wait for a confirmation) and holds the Matrix / Element (Client-Server + Synapse Admin) credential itself, so the agent never does. It paces Matrix / Element (Client-Server + Synapse Admin)'s limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "matrix_synapse.admin_users.users_list", intent: "check which Matrix / Element (Client-Server + Synapse Admin) account is connected"}# List user accounts (v2) · read · 1 upstream call- 246actionsin one signed file
- 124readlook, never change
- 76writecreate and update
- 46wait for a yesdestructive, confirmed first
Set up
Connect Matrix / Element (Client-Server + Synapse Admin) in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Matrix / Element (Client-Server + Synapse Admin).
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
access_tokenMatrix access token, sent as `AuthorizationhostWhere your Matrix / Element (Client-Server + Synapse Admin) lives: your host
account { op: "connections.requirements", service: "matrix_synapse" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "matrix_synapse.admin_users.users_list" }# list user accounts (v2) · read · 1 upstream callcheck { action: "matrix_synapse.room_events.send_message", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Matrix / Element (Client-Server + Synapse Admin) at a glance
- Sign-in
- Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
access_token- Setup fields
host- Limits we pace to
- 10 calls a second, per connection
- API covered
- Matrix Client-Server API (matrix-spec main, v3/v1 endpoints) and Synapse Admin API v1/v2/v3, at your Matrix / Element (Client-Server + Synapse Admin) instance's API base URL, which you enter when connecting
- Built from
- Matrix / Element (Client-Server + Synapse Admin)'s documentation, read 23 October 2026GitHubelement-hq.github.io
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 121 of 124 reads, for up to 1 minute; a write clears what it affects
- Shared entities
- 3, so ask can line Matrix / Element (Client-Server + Synapse Admin) up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Matrix / Element (Client-Server + Synapse Admin).
246 actions in 39 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 124readlook, never change
- 76writecreate and update
- 46destructivewait for a confirmation
Admin users
3719 read · 7 write · 11 destructive
List user accounts (v2) · Query a user account · Create or modify a user account · Create a device for a user
Admin rooms
2214 read · 2 write · 6 destructive
Get room details · List rooms on the server · Fetch any event by id · Get the status of room deletions by room
Key backup
145 read · 5 write · 4 destructive
Create a new backup · Retrieve a key from the backup · Retrieve the keys from the backup · Retrieve the keys from the backup for a given room
Admin media
133 read · 6 write · 4 destructive
Query a media item's metadata · List recent quarantine changes · Protect a local media item from quarantine · Quarantine one media item
Admin server
127 read · 5 write · 0 destructive
Start a background update job · List scheduled tasks · Send a server notice to a user · Send a server notice to a user with a transaction id
Push
116 read · 4 write · 1 destructive
Gets the current pushers for the authenticated user · Retrieve a push rule · The actions for a push rule · Retrieve all push rulesets
Room membership
100 read · 6 write · 4 destructive
Invite a user to participate in a particular room · Kick a user from the room · Invite a user to participate in a particular room · Join the requesting user to a particular room
Room events
97 read · 1 write · 1 destructive
Get a list of events for this room · Send a message event to the given room · Get the child events for a given parent event · Get the child events for a given parent event, with a given `relType`
31 more areas · 118 actions
- Room directory 8
- Account 3pid 7
- Rooms 7
- Admin reports 6
- Keys 6
- Room state 6
- Server 6
- Third party 6
- Account 5
- Admin registration tokens 5
- Devices 5
- Server admin 5
- Session 5
- Account data 4
- Admin federation 4
- Profile 4
- Registration 4
- Media 3
- Reporting 3
- Tags 3
- Appservice 2
- Filters 2
- Presence 2
- Receipts 2
- Sync 2
- Notifications 1
- Search 1
- To device 1
- Typing 1
- User directory 1
- Voip 1
Top actions
The Matrix / Element (Client-Server + Synapse Admin) API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 14 of Matrix / Element (Client-Server + Synapse Admin)'s 14 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
matrix_synapse.admin_users.users_listList user accounts (v2) | List user accounts (v2) | read | identity.user.list474 connectors |
matrix_synapse.room_events.get_room_eventsGet a list of events for this room | Get a list of events for this room | read | comm.message.list42 connectors |
matrix_synapse.admin_users.users_getQuery a user account | Query a user account | read | identity.user.get399 connectors |
matrix_synapse.rooms.get_joined_roomsLists the user's current rooms | Lists the user's current rooms | read | comm.channel.list27 connectors |
matrix_synapse.room_events.send_messageSend a message event to the given room | Send a message event to the given room | write | comm.message.send25 connectors |
matrix_synapse.rooms.create_roomCreate a new room | Create a new room | write | comm.channel.create16 connectors |
matrix_synapse.account.whoamiGets information about the owner of an access token | Gets information about the owner of an access token | read | identity.current_user.get307 connectors |
matrix_synapse.room_state.get_members_by_roomGet the m.room.member events for the room | Get the m.room.member events for the room | read | comm.channel_member.list12 connectors |
matrix_synapse.room_membership.kickKick a user from the room | Kick a user from the room | destructive | comm.channel_member.remove10 connectors |
matrix_synapse.admin_rooms.rooms_listList rooms on the server | List rooms on the server | read | this connector |
matrix_synapse.rooms.upgrade_roomUpgrades a room to a new room version | Upgrades a room to a new room version | write | this connector |
matrix_synapse.rooms.get_mutual_roomsGet the list of rooms that the user shares with another user | Get the list of rooms that the user shares with another user | read | this connector |
Try it
Prompts to paste into Claude.
Each one names the Matrix / Element (Client-Server + Synapse Admin) actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Who has access in Matrix / Element (Client-Server + Synapse Admin)? List every user and their role.
calls
matrix_synapse.admin_users.users_list - Writewrite
Send a message event to the given room in Matrix / Element (Client-Server + Synapse Admin). Show me exactly what you will send before you save it.
calls
matrix_synapse.room_events.send_message
Governance for Matrix / Element (Client-Server + Synapse Admin)
Destructive actions wait for a yes.
46 Matrix / Element (Client-Server + Synapse Admin) actions are destructive. The first 10:
- Kick a user from the room
matrix_synapse.room_membership.kick - Ban a user in the room
matrix_synapse.room_membership.ban - Delete a room (v2, background task)
matrix_synapse.admin_rooms.rooms_delete - Strips all non-integrity-critical information out of an event
matrix_synapse.room_events.redact_event - Purge a room's history before a point
matrix_synapse.admin_rooms.purge_history - Suspend or unsuspend a user account
matrix_synapse.admin_users.users_suspend - Deactivate a user's account
matrix_synapse.account.deactivate_account - Delete a user's device
matrix_synapse.admin_users.devices_delete - Stop the requesting user participating in a particular room
matrix_synapse.room_membership.leave_room - Delete a room (v1, synchronous)
matrix_synapse.admin_rooms.rooms_delete_v1
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Kick a user from the room?
intent: the user asked me to kick a user from the room
account { op: "keys.create", name: "matrix-synapse-agent", allowed_actions: ["matrix_synapse.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "matrix_synapse.room_membership.kick", approver: "[email protected]" }, { match: "matrix_synapse.room_membership.ban", approver: "[email protected]" }, { match: "matrix_synapse.admin_rooms.rooms_delete", approver: "[email protected]" } ]}Cost
What Matrix / Element (Client-Server + Synapse Admin) costs on actionlake.
Every Matrix / Element (Client-Server + Synapse Admin) action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Matrix / Element (Client-Server + Synapse Admin) refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 246 Matrix / Element (Client-Server + Synapse Admin) actions
- 246actions pageeach page of a long list is one call
- 121reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Matrix / Element (Client-Server + Synapse Admin) action.
246 actions by area: the id your agent calls, what it does, and its effect.
Admin users37
matrix_synapse.admin_users.account_validity_renewRenew a user's account validitywritematrix_synapse.admin_users.devices_createCreate a device for a userwritematrix_synapse.admin_users.devices_deleteDelete a user's devicedestructivematrix_synapse.admin_users.devices_delete_manyDelete several of a user's devicesdestructivematrix_synapse.admin_users.devices_getShow a user's devicereadmatrix_synapse.admin_users.devices_listList a user's devicesreadmatrix_synapse.admin_users.devices_updateUpdate a user's device display namewritematrix_synapse.admin_users.username_availableCheck whether a username is availablereadmatrix_synapse.admin_users.users_account_dataGet a user's account datareadmatrix_synapse.admin_users.users_admin_getGet whether a user is a server administratorreadmatrix_synapse.admin_users.users_admin_setMake a user a server administrator or remove admindestructivematrix_synapse.admin_users.users_allow_cross_signing_replacementAllow a user to replace their master cross-signing key without user-interactive authwritematrix_synapse.admin_users.users_by_external_idFind a user by their ID in an auth providerreadmatrix_synapse.admin_users.users_by_threepidFind a user by a third-party ID (email or phone)readmatrix_synapse.admin_users.users_cumulative_joined_room_countCount rooms a user joined since a timestampreadmatrix_synapse.admin_users.users_deactivateDeactivate a user accountdestructivematrix_synapse.admin_users.users_getQuery a user accountreadmatrix_synapse.admin_users.users_joined_roomsList the rooms a user has joinedreadmatrix_synapse.admin_users.users_listList user accounts (v2)readmatrix_synapse.admin_users.users_list_v3List user accounts (v3)readmatrix_synapse.admin_users.users_login_asGet an access token to act as a userwritematrix_synapse.admin_users.users_media_deleteDelete media uploaded by a userdestructivematrix_synapse.admin_users.users_media_listList media uploaded by a userreadmatrix_synapse.admin_users.users_membershipsList a user's room membershipsreadmatrix_synapse.admin_users.users_pushersList a user's pushersreadmatrix_synapse.admin_users.users_ratelimit_deleteDelete a user's rate-limit overridedestructivematrix_synapse.admin_users.users_ratelimit_getGet a user's rate-limit overridereadmatrix_synapse.admin_users.users_ratelimit_setSet a user's rate-limit overridewritematrix_synapse.admin_users.users_redact_eventsRedact a user's events in the given roomsdestructivematrix_synapse.admin_users.users_redact_statusCheck the status of a redaction processreadmatrix_synapse.admin_users.users_reset_passwordReset a user's passworddestructivematrix_synapse.admin_users.users_sent_invite_countCount invites a user sent since a timestampreadmatrix_synapse.admin_users.users_shadow_banShadow-ban a userdestructivematrix_synapse.admin_users.users_shadow_ban_removeRemove a user's shadow bandestructivematrix_synapse.admin_users.users_suspendSuspend or unsuspend a user accountdestructivematrix_synapse.admin_users.users_upsertCreate or modify a user accountwritematrix_synapse.admin_users.users_whoisQuery a user's sessions (IPs and devices)read
Admin rooms22
matrix_synapse.admin_rooms.fetch_eventFetch any event by idreadmatrix_synapse.admin_rooms.purge_historyPurge a room's history before a pointdestructivematrix_synapse.admin_rooms.purge_history_statusGet the status of a history purgereadmatrix_synapse.admin_rooms.purge_history_up_to_eventPurge a room's history up to an eventdestructivematrix_synapse.admin_rooms.rooms_blockBlock or unblock a roomwritematrix_synapse.admin_rooms.rooms_block_statusGet a room's block statusreadmatrix_synapse.admin_rooms.rooms_deleteDelete a room (v2, background task)destructivematrix_synapse.admin_rooms.rooms_delete_statusGet the status of room deletions by roomreadmatrix_synapse.admin_rooms.rooms_delete_status_by_idGet the status of a room deletion by delete idreadmatrix_synapse.admin_rooms.rooms_delete_v1Delete a room (v1, synchronous)destructivematrix_synapse.admin_rooms.rooms_event_contextGet the events around an eventreadmatrix_synapse.admin_rooms.rooms_forward_extremitiesList a room's forward extremitiesreadmatrix_synapse.admin_rooms.rooms_forward_extremities_deleteDelete a room's extra forward extremitiesdestructivematrix_synapse.admin_rooms.rooms_getGet room detailsreadmatrix_synapse.admin_rooms.rooms_hierarchyWalk a space's room hierarchyreadmatrix_synapse.admin_rooms.rooms_join_userJoin a local user to a roomwritematrix_synapse.admin_rooms.rooms_listList rooms on the serverreadmatrix_synapse.admin_rooms.rooms_make_room_adminGrant a local user the highest power level in a roomdestructivematrix_synapse.admin_rooms.rooms_membersList a room's membersreadmatrix_synapse.admin_rooms.rooms_messagesList a room's messagesreadmatrix_synapse.admin_rooms.rooms_stateGet a room's current statereadmatrix_synapse.admin_rooms.rooms_timestamp_to_eventFind the event closest to a timestampread
Key backup14
matrix_synapse.key_backup.delete_room_key_by_session_idDelete a key from the backupdestructivematrix_synapse.key_backup.delete_room_keysDelete the keys from the backupdestructivematrix_synapse.key_backup.delete_room_keys_by_room_idDelete the keys from the backup for a given roomdestructivematrix_synapse.key_backup.delete_room_keys_versionDelete an existing key backupdestructivematrix_synapse.key_backup.get_room_key_by_session_idRetrieve a key from the backupreadmatrix_synapse.key_backup.get_room_keysRetrieve the keys from the backupreadmatrix_synapse.key_backup.get_room_keys_by_room_idRetrieve the keys from the backup for a given roomreadmatrix_synapse.key_backup.get_room_keys_versionGet information about an existing backupreadmatrix_synapse.key_backup.get_room_keys_version_currentGet information about the latest backup versionreadmatrix_synapse.key_backup.post_room_keys_versionCreate a new backupwritematrix_synapse.key_backup.put_room_key_by_session_idStore a key in the backupwritematrix_synapse.key_backup.put_room_keysStore several keys in the backupwritematrix_synapse.key_backup.put_room_keys_by_room_idStore several keys in the backup for a given roomwritematrix_synapse.key_backup.put_room_keys_versionUpdate information about an existing backupwrite
Admin media13
matrix_synapse.admin_media.media_deleteDelete a local media itemdestructivematrix_synapse.admin_media.media_delete_by_dateDelete local media older than a timestampdestructivematrix_synapse.admin_media.media_delete_by_date_legacyDelete local media older than a timestamp (legacy path)destructivematrix_synapse.admin_media.media_getQuery a media item's metadatareadmatrix_synapse.admin_media.media_protectProtect a local media item from quarantinewritematrix_synapse.admin_media.media_quarantineQuarantine one media itemwritematrix_synapse.admin_media.media_quarantine_changesList recent quarantine changesreadmatrix_synapse.admin_media.media_unprotectRemove quarantine protection from a media itemwritematrix_synapse.admin_media.media_unquarantineRemove one media item from quarantinewritematrix_synapse.admin_media.purge_media_cachePurge cached remote media older than a timestampdestructivematrix_synapse.admin_media.room_media_listList the media in a roomreadmatrix_synapse.admin_media.room_media_quarantineQuarantine all media in a roomwritematrix_synapse.admin_media.user_media_quarantineQuarantine all media a user uploadedwrite
Admin server12
matrix_synapse.admin_server.background_updates_enabled_getGet whether background updates are enabledreadmatrix_synapse.admin_server.background_updates_enabled_setPause or resume background updateswritematrix_synapse.admin_server.background_updates_start_jobStart a background update jobwritematrix_synapse.admin_server.background_updates_statusGet the status of running background updatesreadmatrix_synapse.admin_server.experimental_features_getGet the experimental features enabled for a userreadmatrix_synapse.admin_server.experimental_features_setEnable or disable experimental features for a userwritematrix_synapse.admin_server.scheduled_tasks_listList scheduled tasksreadmatrix_synapse.admin_server.server_notice_sendSend a server notice to a userwritematrix_synapse.admin_server.server_notice_send_idempotentSend a server notice to a user with a transaction idwritematrix_synapse.admin_server.server_versionGet the Synapse server versionreadmatrix_synapse.admin_server.statistics_database_roomsList the rooms using the most database spacereadmatrix_synapse.admin_server.statistics_users_mediaList users by uploaded media count and sizeread
Push11
matrix_synapse.push.delete_push_ruleDelete a push ruledestructivematrix_synapse.push.get_push_ruleRetrieve a push rulereadmatrix_synapse.push.get_push_rule_actionsThe actions for a push rulereadmatrix_synapse.push.get_push_rulesRetrieve all push rulesetsreadmatrix_synapse.push.get_push_rules_globalRetrieve all push rulesreadmatrix_synapse.push.get_pushersGets the current pushers for the authenticated userreadmatrix_synapse.push.is_push_rule_enabledGet whether a push rule is enabledreadmatrix_synapse.push.post_pusherModify a pusher for this user on the homeserverwritematrix_synapse.push.set_push_ruleAdd or change a push rulewritematrix_synapse.push.set_push_rule_actionsSet the actions for a push rulewritematrix_synapse.push.set_push_rule_enabledEnable or disable a push rulewrite
Room membership10
matrix_synapse.room_membership.banBan a user in the roomdestructivematrix_synapse.room_membership.forget_roomStop the requesting user remembering about a particular roomdestructivematrix_synapse.room_membership.invite_by_3pidInvite a user to participate in a particular roomwritematrix_synapse.room_membership.invite_userInvite a user to participate in a particular roomwritematrix_synapse.room_membership.join_roomJoin the requesting user to a particular roomwritematrix_synapse.room_membership.join_room_by_idJoin the requesting user to a particular roomwritematrix_synapse.room_membership.kickKick a user from the roomdestructivematrix_synapse.room_membership.knock_roomKnock on a room, requesting permission to joinwritematrix_synapse.room_membership.leave_roomStop the requesting user participating in a particular roomdestructivematrix_synapse.room_membership.unbanUnban a user from the roomwrite
Room events9
matrix_synapse.room_events.get_event_by_timestampGet the closest event ID to the given timestampreadmatrix_synapse.room_events.get_event_contextGet events and state around the specified eventreadmatrix_synapse.room_events.get_relating_eventsGet the child events for a given parent eventreadmatrix_synapse.room_events.get_relating_events_with_rel_typeGet the child events for a given parent event, with a given `relType`readmatrix_synapse.room_events.get_relating_events_with_rel_type_and_event_typeGet the child events for a given parent event, with a given `relType` and `eventType`readmatrix_synapse.room_events.get_room_eventsGet a list of events for this roomreadmatrix_synapse.room_events.get_thread_rootsFetches a list of the threads in a roomreadmatrix_synapse.room_events.redact_eventStrips all non-integrity-critical information out of an eventdestructivematrix_synapse.room_events.send_messageSend a message event to the given roomwrite
Room directory8
matrix_synapse.room_directory.delete_room_aliasRemove a mapping of room alias to room IDdestructivematrix_synapse.room_directory.get_local_aliasesGet a list of local aliases on a given roomreadmatrix_synapse.room_directory.get_public_roomsLists a server's published room directoryreadmatrix_synapse.room_directory.get_room_id_by_aliasGet the room ID corresponding to this room aliasreadmatrix_synapse.room_directory.get_room_visibility_on_directoryGets the visibility of a room in the directoryreadmatrix_synapse.room_directory.query_public_roomsLists a server's published room directory with an optional filterreadmatrix_synapse.room_directory.set_room_aliasCreate a new mapping from room alias to room IDwritematrix_synapse.room_directory.set_room_visibility_on_directorySets the visibility of a room in the directorywrite
Account 3pid7
matrix_synapse.account_3pid.add_3pidAdds contact information to the user's accountwritematrix_synapse.account_3pid.bind_3pidBinds a 3PID to the user's account through an Identity Servicewritematrix_synapse.account_3pid.delete_3pidDeletes a third-party identifier from the user's accountdestructivematrix_synapse.account_3pid.list_3pidsGets a list of a user's third-party identifiersreadmatrix_synapse.account_3pid.request_token_3pid_emailBegins the validation process for an email address for association with the user's accountwritematrix_synapse.account_3pid.request_token_3pid_msisdnBegins the validation process for a phone number for association with the user's accountwritematrix_synapse.account_3pid.unbind_3pidRemoves a user's third-party identifier from an identity serverdestructive
Rooms7
matrix_synapse.rooms.create_roomCreate a new roomwritematrix_synapse.rooms.get_joined_roomsLists the user's current roomsreadmatrix_synapse.rooms.get_mutual_roomsGet the list of rooms that the user shares with another userreadmatrix_synapse.rooms.get_room_summaryRetrieves a summary for a roomreadmatrix_synapse.rooms.get_space_hierarchyRetrieve a portion of a space treereadmatrix_synapse.rooms.room_initial_syncSnapshot the current state of a room and its most recent messagesreadmatrix_synapse.rooms.upgrade_roomUpgrades a room to a new room versionwrite
Admin reports6
matrix_synapse.admin_reports.event_reports_deleteDelete an event reportdestructivematrix_synapse.admin_reports.event_reports_getShow a reported eventreadmatrix_synapse.admin_reports.event_reports_listList reported eventsreadmatrix_synapse.admin_reports.user_reports_deleteDelete a user reportdestructivematrix_synapse.admin_reports.user_reports_getShow a user reportreadmatrix_synapse.admin_reports.user_reports_listList reported usersread
Keys6
matrix_synapse.keys.claim_keysClaim one-time encryption keyswritematrix_synapse.keys.get_keys_changesQuery users with recent device key updatesreadmatrix_synapse.keys.query_keysDownload device identity keysreadmatrix_synapse.keys.upload_cross_signing_keysUpload cross-signing keyswritematrix_synapse.keys.upload_cross_signing_signaturesUpload cross-signing signatureswritematrix_synapse.keys.upload_keysUpload end-to-end encryption keyswrite
Room state6
matrix_synapse.room_state.get_joined_members_by_roomGets the list of currently joined users and their profile datareadmatrix_synapse.room_state.get_members_by_roomGet the m.room.member events for the roomreadmatrix_synapse.room_state.get_one_room_eventGet a single event by event IDreadmatrix_synapse.room_state.get_room_stateGet all state events in the current state of a roomreadmatrix_synapse.room_state.get_room_state_with_keyGet the state identified by the type and keyreadmatrix_synapse.room_state.set_room_state_with_keySend a state event to the given roomwrite
Server6
matrix_synapse.server.get_auth_metadataGet the OAuth 2.0 authorisation server metadatareadmatrix_synapse.server.get_capabilitiesGets information about the server's capabilitiesreadmatrix_synapse.server.get_versionsGets the versions of the specification supported by the serverreadmatrix_synapse.server.get_wellknownGets Matrix server discovery information about the domainreadmatrix_synapse.server.get_wellknown_policyGets information about a Policy Server's configuration, if availablereadmatrix_synapse.server.get_wellknown_supportGets homeserver contacts and support detailsread
Third party6
matrix_synapse.third_party.get_protocol_metadataRetrieve metadata about a specific protocol that the homeserver supportsreadmatrix_synapse.third_party.get_protocolsRetrieve metadata about all protocols that a homeserver supportsreadmatrix_synapse.third_party.query_location_by_aliasReverse-lookup third-party locations given a Matrix room aliasreadmatrix_synapse.third_party.query_location_by_protocolRetrieve Matrix-side portals rooms leading to a third-party locationreadmatrix_synapse.third_party.query_user_by_idReverse-lookup third-party users given a Matrix User IDreadmatrix_synapse.third_party.query_user_by_protocolRetrieve the Matrix User ID of a corresponding third-party userread
Account5
matrix_synapse.account.change_passwordChanges a user's passwordwritematrix_synapse.account.deactivate_accountDeactivate a user's accountdestructivematrix_synapse.account.password_email_request_tokenRequests a validation token be sent to the given email address for the purpose of resetting a user's passwordwritematrix_synapse.account.password_msisdn_request_tokenRequests a validation token be sent to the given phone number for the purpose of resetting a user's passwordwritematrix_synapse.account.whoamiGets information about the owner of an access tokenread
Admin registration tokens5
matrix_synapse.admin_registration_tokens.registration_tokens_createCreate a registration tokenwritematrix_synapse.admin_registration_tokens.registration_tokens_deleteDelete a registration tokendestructivematrix_synapse.admin_registration_tokens.registration_tokens_getGet a registration tokenreadmatrix_synapse.admin_registration_tokens.registration_tokens_listList registration tokensreadmatrix_synapse.admin_registration_tokens.registration_tokens_updateUpdate a registration tokenwrite
Devices5
matrix_synapse.devices.delete_deviceDelete a devicedestructivematrix_synapse.devices.delete_devicesBulk deletion of devicesdestructivematrix_synapse.devices.get_deviceGet a single devicereadmatrix_synapse.devices.get_devicesList registered devices for the current userreadmatrix_synapse.devices.update_deviceCreate or update a devicewrite
Server admin5
matrix_synapse.server_admin.get_admin_lock_userGets information about the locked status of a particular userreadmatrix_synapse.server_admin.get_admin_suspend_userGets information about the suspended status of a particular userreadmatrix_synapse.server_admin.get_who_isGets information about a particular userreadmatrix_synapse.server_admin.set_admin_lock_userSet the locked status of a particular userdestructivematrix_synapse.server_admin.set_admin_suspend_userSet the suspended status of a particular userdestructive
Session5
matrix_synapse.session.generate_login_tokenOptional endpoint to generate a single-use, time-limited, `m.login.token` tokenwritematrix_synapse.session.get_login_flowsGet the supported login types to authenticate usersreadmatrix_synapse.session.logoutInvalidates a user access tokendestructivematrix_synapse.session.logout_allInvalidates all access tokens for a userdestructivematrix_synapse.session.request_open_id_tokenGet an OpenID token object to verify the requester's identitywrite
Account data4
matrix_synapse.account_data.get_account_dataGet some account data for the userreadmatrix_synapse.account_data.get_account_data_per_roomGet some account data for the user that is specific to a roomreadmatrix_synapse.account_data.set_account_dataSet some account data for the userwritematrix_synapse.account_data.set_account_data_per_roomSet some account data for the user that is specific to a roomwrite
Admin federation4
matrix_synapse.admin_federation.destinations_getGet a federation destinationreadmatrix_synapse.admin_federation.destinations_listList federation destinationsreadmatrix_synapse.admin_federation.destinations_reset_connectionReset a destination's connection timeoutwritematrix_synapse.admin_federation.destinations_roomsList the rooms shared with a destinationread
Profile4
matrix_synapse.profile.delete_profile_fieldRemove a profile field from a userdestructivematrix_synapse.profile.get_profile_fieldGet a profile field for a userreadmatrix_synapse.profile.get_user_profileGet all profile information for a userreadmatrix_synapse.profile.set_profile_fieldSet a profile field for a userwrite
Registration4
matrix_synapse.registration.check_username_availabilityChecks to see if a username is available on the serverreadmatrix_synapse.registration.registration_token_validityQuery if a given registration token is still validreadmatrix_synapse.registration.request_token_to_register_emailBegins the validation process for an email to be used during registrationwritematrix_synapse.registration.request_token_to_register_msisdnRequests a validation token be sent to the given phone number for the purpose of registering an accountwrite
Media3
matrix_synapse.media.create_contentCreate a new `mxc://` URI without uploading the contentwritematrix_synapse.media.get_config_authedGet the configuration for the content repositoryreadmatrix_synapse.media.get_url_preview_authedGet information about a URL for a clientread
Reporting3
matrix_synapse.reporting.report_eventReport an event in a joined room as inappropriatewritematrix_synapse.reporting.report_roomReport a room as inappropriatewritematrix_synapse.reporting.report_userReport a user as inappropriatewrite
Tags3
matrix_synapse.tags.delete_room_tagRemove a tag from the roomdestructivematrix_synapse.tags.get_room_tagsList the tags for a roomreadmatrix_synapse.tags.set_room_tagAdd a tag to a roomwrite
Appservice2
matrix_synapse.appservice.ping_appserviceAsk the homeserver to ping the application service to ensure the connection workswritematrix_synapse.appservice.update_appservice_room_directory_visibilityUpdates a room's visibility in the application service's published room directorywrite
Filters2
matrix_synapse.filters.define_filterUpload a new filterwritematrix_synapse.filters.get_filterDownload a filterread
Presence2
matrix_synapse.presence.get_presenceGet this user's presence statereadmatrix_synapse.presence.set_presenceUpdate this user's presence statewrite
Receipts2
matrix_synapse.receipts.post_receiptSend a receipt for the given event IDwritematrix_synapse.receipts.set_read_markerSet the position of the read marker for a roomwrite
Sync2
matrix_synapse.sync.peek_eventsListen on the event stream of a particular roomreadmatrix_synapse.sync.syncSynchronise the client's state and receive new messagesread
Notifications1
matrix_synapse.notifications.get_notificationsGets a list of events that the user has been notified aboutread
Search1
matrix_synapse.search.searchPerform a server-side searchread
To device1
matrix_synapse.to_device.send_to_deviceSend an event to a given set of deviceswrite
Typing1
matrix_synapse.typing.set_typingInforms the server that the user has started or stopped typingwrite
User directory1
matrix_synapse.user_directory.search_user_directorySearches the user directoryread
Voip1
matrix_synapse.voip.get_turn_serverObtain TURN server credentialsread
Questions
The Matrix / Element (Client-Server + Synapse Admin) MCP server, answered.
Is there a Matrix / Element (Client-Server + Synapse Admin) MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 246 Matrix / Element (Client-Server + Synapse Admin) actions across admin users, admin rooms, key backup and admin media, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Matrix / Element (Client-Server + Synapse Admin).
What do I need to connect Matrix / Element (Client-Server + Synapse Admin)?
Matrix access token, sent as `Authorization. Plus your host. The free call account { op: "connections.requirements", service: "matrix_synapse" } lists exactly what to paste.
Can an AI agent delete or change things in Matrix / Element (Client-Server + Synapse Admin)?
Only if its key allows it, and only with an explicit confirmation. 46 Matrix / Element (Client-Server + Synapse Admin) actions are destructive, including kick a user from the room, ban a user in the room and delete a room (v2, background task). Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Matrix / Element (Client-Server + Synapse Admin) API limit?
actionlake paces every call to the limits in the Matrix / Element (Client-Server + Synapse Admin) service file: 10 calls a second per connection. Repeated reads are answered from cache (121 Matrix / Element (Client-Server + Synapse Admin) actions can be), which never reaches Matrix / Element (Client-Server + Synapse Admin).
What does a Matrix / Element (Client-Server + Synapse Admin) action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (246 Matrix / Element (Client-Server + Synapse Admin) actions page). Cache hits, searches, dry runs and calls Matrix / Element (Client-Server + Synapse Admin) refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Matrix / Element (Client-Server + Synapse Admin) API does it cover?
The Matrix Client-Server API (matrix-spec main, v3/v1 endpoints) and Synapse Admin API v1/v2/v3 at your Matrix / Element (Client-Server + Synapse Admin) instance's API base URL, which you enter when connecting. It is built from Matrix / Element (Client-Server + Synapse Admin)'s documentation as read on 23 October 2026. 246 actions in 39 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Matrix / Element (Client-Server + Synapse Admin) data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 1 minute, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Matrix / Element (Client-Server + Synapse Admin) credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Matrix / Element (Client-Server + Synapse Admin) today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.