Skip to content

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/mcp
the first call
do {  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.

  1. 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
  2. 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 `Authorization
    • hostWhere 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
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates 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
  1. Admin users

    37

    19 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

  2. Admin rooms

    22

    14 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

  3. Key backup

    14

    5 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

  4. Admin media

    13

    3 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

  5. Admin server

    12

    7 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

  6. Push

    11

    6 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

  7. Room membership

    10

    0 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

  8. Room events

    9

    7 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.

ActionWhat it doesEffectSame name in
matrix_synapse.admin_users.users_listList user accounts (v2)List user accounts (v2)readidentity.user.list474 connectors
matrix_synapse.room_events.get_room_eventsGet a list of events for this roomGet a list of events for this roomreadcomm.message.list42 connectors
matrix_synapse.admin_users.users_getQuery a user accountQuery a user accountreadidentity.user.get399 connectors
matrix_synapse.rooms.get_joined_roomsLists the user's current roomsLists the user's current roomsreadcomm.channel.list27 connectors
matrix_synapse.room_events.send_messageSend a message event to the given roomSend a message event to the given roomwritecomm.message.send25 connectors
matrix_synapse.rooms.create_roomCreate a new roomCreate a new roomwritecomm.channel.create16 connectors
matrix_synapse.account.whoamiGets information about the owner of an access tokenGets information about the owner of an access tokenreadidentity.current_user.get307 connectors
matrix_synapse.room_state.get_members_by_roomGet the m.room.member events for the roomGet the m.room.member events for the roomreadcomm.channel_member.list12 connectors
matrix_synapse.room_membership.kickKick a user from the roomKick a user from the roomdestructivecomm.channel_member.remove10 connectors
matrix_synapse.admin_rooms.rooms_listList rooms on the serverList rooms on the serverreadthis connector
matrix_synapse.rooms.upgrade_roomUpgrades a room to a new room versionUpgrades a room to a new room versionwritethis connector
matrix_synapse.rooms.get_mutual_roomsGet the list of rooms that the user shares with another userGet the list of rooms that the user shares with another userreadthis 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.

  1. Readread

    Who has access in Matrix / Element (Client-Server + Synapse Admin)? List every user and their role.

    callsmatrix_synapse.admin_users.users_list

  2. 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.

    callsmatrix_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 roommatrix_synapse.room_membership.kick
  • Ban a user in the roommatrix_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 eventmatrix_synapse.room_events.redact_event
  • Purge a room's history before a pointmatrix_synapse.admin_rooms.purge_history
  • Suspend or unsuspend a user accountmatrix_synapse.admin_users.users_suspend
  • Deactivate a user's accountmatrix_synapse.account.deactivate_account
  • Delete a user's devicematrix_synapse.admin_users.devices_delete
  • Stop the requesting user participating in a particular roommatrix_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.

domatrix_synapse.room_membership.kickconfirm_policy: human

Kick a user from the room?

intent: the user asked me to kick a user from the room

run suspended · waiting for a named person · key matrix-synapse-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
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]" }  ]}
Illustrative. Scoped to Matrix / Element (Client-Server + Synapse Admin) only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

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

See pricing

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 validitywrite
  • matrix_synapse.admin_users.devices_createCreate a device for a userwrite
  • matrix_synapse.admin_users.devices_deleteDelete a user's devicedestructive
  • matrix_synapse.admin_users.devices_delete_manyDelete several of a user's devicesdestructive
  • matrix_synapse.admin_users.devices_getShow a user's deviceread
  • matrix_synapse.admin_users.devices_listList a user's devicesread
  • matrix_synapse.admin_users.devices_updateUpdate a user's device display namewrite
  • matrix_synapse.admin_users.username_availableCheck whether a username is availableread
  • matrix_synapse.admin_users.users_account_dataGet a user's account dataread
  • matrix_synapse.admin_users.users_admin_getGet whether a user is a server administratorread
  • matrix_synapse.admin_users.users_admin_setMake a user a server administrator or remove admindestructive
  • matrix_synapse.admin_users.users_allow_cross_signing_replacementAllow a user to replace their master cross-signing key without user-interactive authwrite
  • matrix_synapse.admin_users.users_by_external_idFind a user by their ID in an auth providerread
  • matrix_synapse.admin_users.users_by_threepidFind a user by a third-party ID (email or phone)read
  • matrix_synapse.admin_users.users_cumulative_joined_room_countCount rooms a user joined since a timestampread
  • matrix_synapse.admin_users.users_deactivateDeactivate a user accountdestructive
  • matrix_synapse.admin_users.users_getQuery a user accountread
  • matrix_synapse.admin_users.users_joined_roomsList the rooms a user has joinedread
  • matrix_synapse.admin_users.users_listList user accounts (v2)read
  • matrix_synapse.admin_users.users_list_v3List user accounts (v3)read
  • matrix_synapse.admin_users.users_login_asGet an access token to act as a userwrite
  • matrix_synapse.admin_users.users_media_deleteDelete media uploaded by a userdestructive
  • matrix_synapse.admin_users.users_media_listList media uploaded by a userread
  • matrix_synapse.admin_users.users_membershipsList a user's room membershipsread
  • matrix_synapse.admin_users.users_pushersList a user's pushersread
  • matrix_synapse.admin_users.users_ratelimit_deleteDelete a user's rate-limit overridedestructive
  • matrix_synapse.admin_users.users_ratelimit_getGet a user's rate-limit overrideread
  • matrix_synapse.admin_users.users_ratelimit_setSet a user's rate-limit overridewrite
  • matrix_synapse.admin_users.users_redact_eventsRedact a user's events in the given roomsdestructive
  • matrix_synapse.admin_users.users_redact_statusCheck the status of a redaction processread
  • matrix_synapse.admin_users.users_reset_passwordReset a user's passworddestructive
  • matrix_synapse.admin_users.users_sent_invite_countCount invites a user sent since a timestampread
  • matrix_synapse.admin_users.users_shadow_banShadow-ban a userdestructive
  • matrix_synapse.admin_users.users_shadow_ban_removeRemove a user's shadow bandestructive
  • matrix_synapse.admin_users.users_suspendSuspend or unsuspend a user accountdestructive
  • matrix_synapse.admin_users.users_upsertCreate or modify a user accountwrite
  • matrix_synapse.admin_users.users_whoisQuery a user's sessions (IPs and devices)read
Admin rooms22
  • matrix_synapse.admin_rooms.fetch_eventFetch any event by idread
  • matrix_synapse.admin_rooms.purge_historyPurge a room's history before a pointdestructive
  • matrix_synapse.admin_rooms.purge_history_statusGet the status of a history purgeread
  • matrix_synapse.admin_rooms.purge_history_up_to_eventPurge a room's history up to an eventdestructive
  • matrix_synapse.admin_rooms.rooms_blockBlock or unblock a roomwrite
  • matrix_synapse.admin_rooms.rooms_block_statusGet a room's block statusread
  • matrix_synapse.admin_rooms.rooms_deleteDelete a room (v2, background task)destructive
  • matrix_synapse.admin_rooms.rooms_delete_statusGet the status of room deletions by roomread
  • matrix_synapse.admin_rooms.rooms_delete_status_by_idGet the status of a room deletion by delete idread
  • matrix_synapse.admin_rooms.rooms_delete_v1Delete a room (v1, synchronous)destructive
  • matrix_synapse.admin_rooms.rooms_event_contextGet the events around an eventread
  • matrix_synapse.admin_rooms.rooms_forward_extremitiesList a room's forward extremitiesread
  • matrix_synapse.admin_rooms.rooms_forward_extremities_deleteDelete a room's extra forward extremitiesdestructive
  • matrix_synapse.admin_rooms.rooms_getGet room detailsread
  • matrix_synapse.admin_rooms.rooms_hierarchyWalk a space's room hierarchyread
  • matrix_synapse.admin_rooms.rooms_join_userJoin a local user to a roomwrite
  • matrix_synapse.admin_rooms.rooms_listList rooms on the serverread
  • matrix_synapse.admin_rooms.rooms_make_room_adminGrant a local user the highest power level in a roomdestructive
  • matrix_synapse.admin_rooms.rooms_membersList a room's membersread
  • matrix_synapse.admin_rooms.rooms_messagesList a room's messagesread
  • matrix_synapse.admin_rooms.rooms_stateGet a room's current stateread
  • matrix_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 backupdestructive
  • matrix_synapse.key_backup.delete_room_keysDelete the keys from the backupdestructive
  • matrix_synapse.key_backup.delete_room_keys_by_room_idDelete the keys from the backup for a given roomdestructive
  • matrix_synapse.key_backup.delete_room_keys_versionDelete an existing key backupdestructive
  • matrix_synapse.key_backup.get_room_key_by_session_idRetrieve a key from the backupread
  • matrix_synapse.key_backup.get_room_keysRetrieve the keys from the backupread
  • matrix_synapse.key_backup.get_room_keys_by_room_idRetrieve the keys from the backup for a given roomread
  • matrix_synapse.key_backup.get_room_keys_versionGet information about an existing backupread
  • matrix_synapse.key_backup.get_room_keys_version_currentGet information about the latest backup versionread
  • matrix_synapse.key_backup.post_room_keys_versionCreate a new backupwrite
  • matrix_synapse.key_backup.put_room_key_by_session_idStore a key in the backupwrite
  • matrix_synapse.key_backup.put_room_keysStore several keys in the backupwrite
  • matrix_synapse.key_backup.put_room_keys_by_room_idStore several keys in the backup for a given roomwrite
  • matrix_synapse.key_backup.put_room_keys_versionUpdate information about an existing backupwrite
Admin media13
  • matrix_synapse.admin_media.media_deleteDelete a local media itemdestructive
  • matrix_synapse.admin_media.media_delete_by_dateDelete local media older than a timestampdestructive
  • matrix_synapse.admin_media.media_delete_by_date_legacyDelete local media older than a timestamp (legacy path)destructive
  • matrix_synapse.admin_media.media_getQuery a media item's metadataread
  • matrix_synapse.admin_media.media_protectProtect a local media item from quarantinewrite
  • matrix_synapse.admin_media.media_quarantineQuarantine one media itemwrite
  • matrix_synapse.admin_media.media_quarantine_changesList recent quarantine changesread
  • matrix_synapse.admin_media.media_unprotectRemove quarantine protection from a media itemwrite
  • matrix_synapse.admin_media.media_unquarantineRemove one media item from quarantinewrite
  • matrix_synapse.admin_media.purge_media_cachePurge cached remote media older than a timestampdestructive
  • matrix_synapse.admin_media.room_media_listList the media in a roomread
  • matrix_synapse.admin_media.room_media_quarantineQuarantine all media in a roomwrite
  • matrix_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 enabledread
  • matrix_synapse.admin_server.background_updates_enabled_setPause or resume background updateswrite
  • matrix_synapse.admin_server.background_updates_start_jobStart a background update jobwrite
  • matrix_synapse.admin_server.background_updates_statusGet the status of running background updatesread
  • matrix_synapse.admin_server.experimental_features_getGet the experimental features enabled for a userread
  • matrix_synapse.admin_server.experimental_features_setEnable or disable experimental features for a userwrite
  • matrix_synapse.admin_server.scheduled_tasks_listList scheduled tasksread
  • matrix_synapse.admin_server.server_notice_sendSend a server notice to a userwrite
  • matrix_synapse.admin_server.server_notice_send_idempotentSend a server notice to a user with a transaction idwrite
  • matrix_synapse.admin_server.server_versionGet the Synapse server versionread
  • matrix_synapse.admin_server.statistics_database_roomsList the rooms using the most database spaceread
  • matrix_synapse.admin_server.statistics_users_mediaList users by uploaded media count and sizeread
Push11
  • matrix_synapse.push.delete_push_ruleDelete a push ruledestructive
  • matrix_synapse.push.get_push_ruleRetrieve a push ruleread
  • matrix_synapse.push.get_push_rule_actionsThe actions for a push ruleread
  • matrix_synapse.push.get_push_rulesRetrieve all push rulesetsread
  • matrix_synapse.push.get_push_rules_globalRetrieve all push rulesread
  • matrix_synapse.push.get_pushersGets the current pushers for the authenticated userread
  • matrix_synapse.push.is_push_rule_enabledGet whether a push rule is enabledread
  • matrix_synapse.push.post_pusherModify a pusher for this user on the homeserverwrite
  • matrix_synapse.push.set_push_ruleAdd or change a push rulewrite
  • matrix_synapse.push.set_push_rule_actionsSet the actions for a push rulewrite
  • matrix_synapse.push.set_push_rule_enabledEnable or disable a push rulewrite
Room membership10
  • matrix_synapse.room_membership.banBan a user in the roomdestructive
  • matrix_synapse.room_membership.forget_roomStop the requesting user remembering about a particular roomdestructive
  • matrix_synapse.room_membership.invite_by_3pidInvite a user to participate in a particular roomwrite
  • matrix_synapse.room_membership.invite_userInvite a user to participate in a particular roomwrite
  • matrix_synapse.room_membership.join_roomJoin the requesting user to a particular roomwrite
  • matrix_synapse.room_membership.join_room_by_idJoin the requesting user to a particular roomwrite
  • matrix_synapse.room_membership.kickKick a user from the roomdestructive
  • matrix_synapse.room_membership.knock_roomKnock on a room, requesting permission to joinwrite
  • matrix_synapse.room_membership.leave_roomStop the requesting user participating in a particular roomdestructive
  • matrix_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 timestampread
  • matrix_synapse.room_events.get_event_contextGet events and state around the specified eventread
  • matrix_synapse.room_events.get_relating_eventsGet the child events for a given parent eventread
  • matrix_synapse.room_events.get_relating_events_with_rel_typeGet the child events for a given parent event, with a given `relType`read
  • matrix_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`read
  • matrix_synapse.room_events.get_room_eventsGet a list of events for this roomread
  • matrix_synapse.room_events.get_thread_rootsFetches a list of the threads in a roomread
  • matrix_synapse.room_events.redact_eventStrips all non-integrity-critical information out of an eventdestructive
  • matrix_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 IDdestructive
  • matrix_synapse.room_directory.get_local_aliasesGet a list of local aliases on a given roomread
  • matrix_synapse.room_directory.get_public_roomsLists a server's published room directoryread
  • matrix_synapse.room_directory.get_room_id_by_aliasGet the room ID corresponding to this room aliasread
  • matrix_synapse.room_directory.get_room_visibility_on_directoryGets the visibility of a room in the directoryread
  • matrix_synapse.room_directory.query_public_roomsLists a server's published room directory with an optional filterread
  • matrix_synapse.room_directory.set_room_aliasCreate a new mapping from room alias to room IDwrite
  • matrix_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 accountwrite
  • matrix_synapse.account_3pid.bind_3pidBinds a 3PID to the user's account through an Identity Servicewrite
  • matrix_synapse.account_3pid.delete_3pidDeletes a third-party identifier from the user's accountdestructive
  • matrix_synapse.account_3pid.list_3pidsGets a list of a user's third-party identifiersread
  • matrix_synapse.account_3pid.request_token_3pid_emailBegins the validation process for an email address for association with the user's accountwrite
  • matrix_synapse.account_3pid.request_token_3pid_msisdnBegins the validation process for a phone number for association with the user's accountwrite
  • matrix_synapse.account_3pid.unbind_3pidRemoves a user's third-party identifier from an identity serverdestructive
Rooms7
  • matrix_synapse.rooms.create_roomCreate a new roomwrite
  • matrix_synapse.rooms.get_joined_roomsLists the user's current roomsread
  • matrix_synapse.rooms.get_mutual_roomsGet the list of rooms that the user shares with another userread
  • matrix_synapse.rooms.get_room_summaryRetrieves a summary for a roomread
  • matrix_synapse.rooms.get_space_hierarchyRetrieve a portion of a space treeread
  • matrix_synapse.rooms.room_initial_syncSnapshot the current state of a room and its most recent messagesread
  • matrix_synapse.rooms.upgrade_roomUpgrades a room to a new room versionwrite
Admin reports6
  • matrix_synapse.admin_reports.event_reports_deleteDelete an event reportdestructive
  • matrix_synapse.admin_reports.event_reports_getShow a reported eventread
  • matrix_synapse.admin_reports.event_reports_listList reported eventsread
  • matrix_synapse.admin_reports.user_reports_deleteDelete a user reportdestructive
  • matrix_synapse.admin_reports.user_reports_getShow a user reportread
  • matrix_synapse.admin_reports.user_reports_listList reported usersread
Keys6
  • matrix_synapse.keys.claim_keysClaim one-time encryption keyswrite
  • matrix_synapse.keys.get_keys_changesQuery users with recent device key updatesread
  • matrix_synapse.keys.query_keysDownload device identity keysread
  • matrix_synapse.keys.upload_cross_signing_keysUpload cross-signing keyswrite
  • matrix_synapse.keys.upload_cross_signing_signaturesUpload cross-signing signatureswrite
  • matrix_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 dataread
  • matrix_synapse.room_state.get_members_by_roomGet the m.room.member events for the roomread
  • matrix_synapse.room_state.get_one_room_eventGet a single event by event IDread
  • matrix_synapse.room_state.get_room_stateGet all state events in the current state of a roomread
  • matrix_synapse.room_state.get_room_state_with_keyGet the state identified by the type and keyread
  • matrix_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 metadataread
  • matrix_synapse.server.get_capabilitiesGets information about the server's capabilitiesread
  • matrix_synapse.server.get_versionsGets the versions of the specification supported by the serverread
  • matrix_synapse.server.get_wellknownGets Matrix server discovery information about the domainread
  • matrix_synapse.server.get_wellknown_policyGets information about a Policy Server's configuration, if availableread
  • matrix_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 supportsread
  • matrix_synapse.third_party.get_protocolsRetrieve metadata about all protocols that a homeserver supportsread
  • matrix_synapse.third_party.query_location_by_aliasReverse-lookup third-party locations given a Matrix room aliasread
  • matrix_synapse.third_party.query_location_by_protocolRetrieve Matrix-side portals rooms leading to a third-party locationread
  • matrix_synapse.third_party.query_user_by_idReverse-lookup third-party users given a Matrix User IDread
  • matrix_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 passwordwrite
  • matrix_synapse.account.deactivate_accountDeactivate a user's accountdestructive
  • matrix_synapse.account.password_email_request_tokenRequests a validation token be sent to the given email address for the purpose of resetting a user's passwordwrite
  • matrix_synapse.account.password_msisdn_request_tokenRequests a validation token be sent to the given phone number for the purpose of resetting a user's passwordwrite
  • matrix_synapse.account.whoamiGets information about the owner of an access tokenread
Admin registration tokens5
  • matrix_synapse.admin_registration_tokens.registration_tokens_createCreate a registration tokenwrite
  • matrix_synapse.admin_registration_tokens.registration_tokens_deleteDelete a registration tokendestructive
  • matrix_synapse.admin_registration_tokens.registration_tokens_getGet a registration tokenread
  • matrix_synapse.admin_registration_tokens.registration_tokens_listList registration tokensread
  • matrix_synapse.admin_registration_tokens.registration_tokens_updateUpdate a registration tokenwrite
Devices5
  • matrix_synapse.devices.delete_deviceDelete a devicedestructive
  • matrix_synapse.devices.delete_devicesBulk deletion of devicesdestructive
  • matrix_synapse.devices.get_deviceGet a single deviceread
  • matrix_synapse.devices.get_devicesList registered devices for the current userread
  • matrix_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 userread
  • matrix_synapse.server_admin.get_admin_suspend_userGets information about the suspended status of a particular userread
  • matrix_synapse.server_admin.get_who_isGets information about a particular userread
  • matrix_synapse.server_admin.set_admin_lock_userSet the locked status of a particular userdestructive
  • matrix_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` tokenwrite
  • matrix_synapse.session.get_login_flowsGet the supported login types to authenticate usersread
  • matrix_synapse.session.logoutInvalidates a user access tokendestructive
  • matrix_synapse.session.logout_allInvalidates all access tokens for a userdestructive
  • matrix_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 userread
  • matrix_synapse.account_data.get_account_data_per_roomGet some account data for the user that is specific to a roomread
  • matrix_synapse.account_data.set_account_dataSet some account data for the userwrite
  • matrix_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 destinationread
  • matrix_synapse.admin_federation.destinations_listList federation destinationsread
  • matrix_synapse.admin_federation.destinations_reset_connectionReset a destination's connection timeoutwrite
  • matrix_synapse.admin_federation.destinations_roomsList the rooms shared with a destinationread
Profile4
  • matrix_synapse.profile.delete_profile_fieldRemove a profile field from a userdestructive
  • matrix_synapse.profile.get_profile_fieldGet a profile field for a userread
  • matrix_synapse.profile.get_user_profileGet all profile information for a userread
  • matrix_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 serverread
  • matrix_synapse.registration.registration_token_validityQuery if a given registration token is still validread
  • matrix_synapse.registration.request_token_to_register_emailBegins the validation process for an email to be used during registrationwrite
  • matrix_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 contentwrite
  • matrix_synapse.media.get_config_authedGet the configuration for the content repositoryread
  • matrix_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 inappropriatewrite
  • matrix_synapse.reporting.report_roomReport a room as inappropriatewrite
  • matrix_synapse.reporting.report_userReport a user as inappropriatewrite
Tags3
  • matrix_synapse.tags.delete_room_tagRemove a tag from the roomdestructive
  • matrix_synapse.tags.get_room_tagsList the tags for a roomread
  • matrix_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 workswrite
  • matrix_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 filterwrite
  • matrix_synapse.filters.get_filterDownload a filterread
Presence2
  • matrix_synapse.presence.get_presenceGet this user's presence stateread
  • matrix_synapse.presence.set_presenceUpdate this user's presence statewrite
Receipts2
  • matrix_synapse.receipts.post_receiptSend a receipt for the given event IDwrite
  • matrix_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 roomread
  • matrix_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.