Use Claude or ChatGPT with your Mumble server
Connect the AI app you already use to MumbleMe, and ask it about your server in plain words: who’s on, how the channels are laid out, why someone can’t speak. Let it create channels and moderate, and approve the big changes yourself.
What it does
MumbleMe has a remote MCP server: a standard way for AI apps to use services you allow them to. Once you connect your app to MumbleMe, it can:
- check a server’s status and how full it is
- list who is connected, and the members registered on it
- read the channel tree, channel descriptions, permissions (ACLs), groups and bans
- ask Mumble what a connected person may do in a channel, and show the rules in force there
- create channels and private channels, and edit descriptions
- propose permission and group changes for you to approve
- move, mute, deafen and kick people, and propose bans for you to approve
You use your own AI app and account. MumbleMe doesn’t provide the AI, doesn’t include an AI subscription and isn’t affiliated with Anthropic or OpenAI. The app’s model does the thinking; MumbleMe answers what it asks, within the permissions you give it.
The address to connect your app to:
https://mumbleme.com/mcpBefore you start
- A MumbleMe account with at least one server. Operator accounts can’t connect apps.
- Claude: custom connectors work on every Claude plan, including Free, which allows one custom connector. On Team and Enterprise, an organisation owner adds the connector first and each member then connects it. Anthropic’s guide
- ChatGPT: connecting your own MCP server uses ChatGPT’s developer mode, which OpenAI offers on some plans, and in some workspaces only once an admin allows it. OpenAI has said that on some plans developer mode connections can only read, so changes may not be available there. Check OpenAI’s current article for your plan.
MumbleMe has tested Claude on the web (claude.ai) and ChatGPT on the web. Anthropic says connectors you add on claude.ai also work in its desktop and mobile apps.
Connect Claude
- On claude.ai, open Customize → Connectors, choose Add, then Add custom connector.
- Name it MumbleMe, paste the address above as the server URL, and continue. Leave authentication as Claude detects it (sign in with OAuth) and choose Add.
- Choose Connect. Claude opens MumbleMe: sign in, and you arrive at “Connect Claude”.
- Check the account shown is the right one (Not you? Use another account switches), tick the servers Claude may use, tick any changes you want to allow, then choose Connect Claude.
- Back in Claude, ask something like “Use MumbleMe to list my servers”. Claude asks before it uses a tool; allow it.
On Team or Enterprise, an owner adds the connector under Organization settings → Connectors, and each member connects it from Customize → Connectors.
Connect ChatGPT
- In ChatGPT on the web, turn on developer mode if your plan or workspace offers it (OpenAI’s article above says where).
- Add a custom MCP server or app: give it the name MumbleMe, the address above as its URL, and OAuth as its authentication. Review OpenAI’s warning about custom servers and confirm. OpenAI’s steps
- Connect it. ChatGPT opens MumbleMe: sign in, check the account, choose servers and any changes to allow, then choose Connect ChatGPT.
- In a conversation, choose MumbleMe from developer mode’s tools and ask “List my MumbleMe servers”. ChatGPT may ask you to confirm before an action that changes something.
Servers and permissions
The MumbleMe page you see when connecting decides everything the app can do. You choose which servers it sees (none are chosen for you unless you have exactly one), and each kind of change is off unless you tick it:
| Permission | Lets the app | Your approval |
|---|---|---|
| See your chosen servers | Status and capacity, who is connected, registered users, channels, permissions and bans. | Always included; reads only |
| Create channels and edit descriptions | Within limits. You can delete a created channel or restore a description from the dashboard. | Not needed |
| Propose permission changes | Channel rules and groups, and private channels. Nothing changes until you approve each one in the dashboard. | Every change needs your approval in the dashboard. |
| Moderate connected people | Move, mute, deafen and kick one person at a time. Bans, unbans and several people at once need your approval in the dashboard. | Bans, unbans and bulk actions need your approval in the dashboard. |
Every request is checked again when it’s made: the connection is still there, it has that permission, the server is one you chose, you still own it and it’s active. A change that waits in a queue is checked once more just before it runs.
A connection lasts 90 days. A connection you made before a permission existed never gains it on its own: connect again and tick it.
Approving changes
Permission and group changes, private channels, bans, unbans, and actions on several people at once are only proposed by the app. It gives you a link to a page in your MumbleMe dashboard showing exactly what would change: rule by rule, which channels below it are affected, and a warning if the change could lock out the people who administer the server. Approve or reject it there, signed in to MumbleMe.
- A proposal lapses after 30 minutes without an answer.
- If what it was based on changes before you approve - someone edits the same channel’s permissions, the person disconnects - it isn’t applied, and the app can propose it again.
- MumbleMe shows the configuration change. Mumble decides what each person can then do, with inherited rules and temporary memberships MumbleMe can’t see, so no preview can promise a result for one person. SuperUser and the dashboard are never limited by these rules, so a change can always be undone.
Manage, revoke and undo
- See your apps: Connected apps in your account lists each app, its servers, what it may do, and when it was last used. MumbleMe emails you when an app is connected.
- Revoke: choose Revoke beside the app. It stops working at once, and changes it asked for that haven’t run yet are cancelled.
- Reconnect or change access: connect the app again from the app itself (disconnect and connect in its connector settings). You choose servers and permissions again, and the new approval replaces the old one.
- Undo: AI app changes, from Connected apps, lists every change your apps asked for. A created channel can be deleted, a description or the permissions it replaced can be restored, and a ban can be removed. Each change also appears in the server’s Activity, marked with the app it came through.
Things to ask
- “Which Mumble servers can you see?”
- “Is Raid Night running, and how many people are on it?”
- “Who is on the server at the moment, and in which channels?”
- “Which registered members haven’t been on recently?”
- “Show me the channel structure on Raid Night.”
- “What does the Announcements channel say?”
- “What permissions does the Officers channel have, and where do they come from?”
- “Why can’t Sam speak in Officers? Check his permissions there.”
- “Who is banned from Raid Night, and when do the bans end?”
- “Did the ban I asked for go through?”
- “Create a channel called Wednesday Raid under Raids.”
- “Change the Announcements description to list this week’s raid times.”
- “Let only the Officers group speak in Briefing, and show me the change before it’s made.”
- “Make a private Officers channel under Guild for Alex and Sam.”
- “Give Jordan access to the Officers channel.”
- “Move Sam into the AFK channel.”
- “Mute whoever is playing music in General.”
- “Deafen the AFK bot.”
- “Kick the person spamming General, with the reason “spam”.”
- “Ban the troll in General for 24 hours.”
- “Unban Sam on Raid Night.”
- “Move everyone in Lobby into Raid Night.”
Tool reference
Every tool MumbleMe offers an app, from the definitions the connector itself serves. An app sees only the tools its permissions allow. Every change requires an idempotency_key, so a retried request is never applied twice.
list_servers List my Mumble servers
See which of your servers the app was given, with their addresses, regions and sizes.
- Permission
- See your chosen servers
- Effect
- Reads only
- On the server
- None.
- Inputs
- None
- Limits
- Only the servers you chose when you connected the app. Connect again to change the list.
get_server_status Get server status and capacity
Check whether a server is up, how full it is and which Mumble version it runs.
- Permission
- See your chosen servers
- Effect
- Reads only
- On the server
- None.
- Inputs
server(string): The server, as server from list_servers.
- Limits
- If the Mumble server cannot be reached, it says so and gives MumbleMe’s last record instead.
list_connected_users List connected users
See who is on a server now, where they are and whether they are muted or deafened.
- Permission
- See your chosen servers
- Effect
- Reads only
- On the server
- None.
- Inputs
server(string): The server, as server from list_servers.
- Limits
- A stopped server has nobody connected.
- No IP address, certificate or client details are shared.
list_registered_users List registered users
See the members registered on a server, and which are online.
- Permission
- See your chosen servers
- Effect
- Reads only
- On the server
- None.
- Inputs
server(string): The server, as server from list_servers.cursor(string, optional): next_cursor from the previous page, to continue the list.
- Limits
- Email addresses and comments on registrations are not shared.
- 100 per page.
list_channels Read the channel tree
See how a server’s channels are laid out.
- Permission
- See your chosen servers
- Effect
- Reads only
- On the server
- None.
- Inputs
server(string): The server, as server from list_servers.cursor(string, optional): next_cursor from the previous page, to continue the list.
- Limits
- The server must be running.
- 100 channels per page.
get_channel Get channel details
Read a channel’s description and what sits below it.
- Permission
- See your chosen servers
- Effect
- Reads only
- On the server
- None.
- Inputs
server(string): The server, as server from list_servers.channel(string): A channel path as list_channels gives it: '/' is the top-level channel, '/Raids/Wednesday' a channel two levels below it.
- Limits
- The server must be running.
get_channel_permissions Read channel permissions (ACLs and groups)
See exactly which permission rules and groups a channel has, and what it inherits.
- Permission
- See your chosen servers
- Effect
- Reads only
- On the server
- None.
- Inputs
server(string): The server, as server from list_servers.channel(string): A channel path as list_channels gives it: '/' is the top-level channel, '/Raids/Wednesday' a channel two levels below it.
- Limits
- Configuration only: Mumble decides each person’s result itself, with temporary memberships MumbleMe cannot see.
- The server must be running.
check_user_permissions Check what a connected user can do
Find out whether someone can join, speak or administer in a channel - Mumble’s own answer.
- Permission
- See your chosen servers
- Effect
- Reads only
- On the server
- None.
- Inputs
server(string): The server, as server from list_servers.user(string): A connected person, as user from list_connected_users. It names that one connection: once they disconnect or reconnect it stops working, so list connected users again.channel(string): A channel path as list_channels gives it: '/' is the top-level channel, '/Raids/Wednesday' a channel two levels below it.
- Limits
- Only for people connected now.
- Mumble gives the result, not the reason. The rules listed are context, not an explanation of the result.
list_bans List bans
See who is banned from a server, why and until when.
- Permission
- See your chosen servers
- Effect
- Reads only
- On the server
- None.
- Inputs
server(string): The server, as server from list_servers.cursor(string, optional): next_cursor from the previous page, to continue the list.
- Limits
- Addresses and certificate fingerprints are never shared.
- The server must be running.
get_operation Check a change
Follow up on a change, for example after asking for approval.
- Permission
- See your chosen servers
- Effect
- Reads only
- On the server
- None.
- Inputs
operation(string): The operation id a change tool returned.
- Limits
- Only changes made through this connection.
create_channel Create a channel
Add a channel where you want it.
- Permission
- Create channels and edit descriptions
- Effect
- Changes the server
- On the server
- A new channel appears on the server at once, for everyone connected.
- Inputs
server(string): The server, as server from list_servers.parent(string): The channel to create it in, as a path ('/' for the top level).name(string): The new channel’s name: up to 64 characters, no slash.description(string, optional): Optional description.idempotency_key(string): A new unique value for every change you mean to make (a UUID is ideal). Send the same value again only to retry the same request: it then returns the first result instead of acting twice.
- Limits
- At most 10 levels deep, fewer than 250 channels per server, 25 new channels per connection per day.
- Undo: delete it from AI app changes in the dashboard.
update_channel_description Update a channel description
Write or rewrite what a channel says about itself.
- Permission
- Create channels and edit descriptions
- Effect
- Changes the server
- On the server
- The description changes at once for everyone.
- Inputs
server(string): The server, as server from list_servers.channel(string): A channel path as list_channels gives it: '/' is the top-level channel, '/Raids/Wednesday' a channel two levels below it.description(string): The new description, up to 5,000 characters. Mumble shows it as HTML; plain text is fine. Empty clears it.description_version(string): description_version from get_channel.idempotency_key(string): A new unique value for every change you mean to make (a UUID is ideal). Send the same value again only to retry the same request: it then returns the first result instead of acting twice.
- Limits
- Refused if the description changed after the app read it (stale-write protection).
- Undo: restore the previous description from AI app changes in the dashboard.
propose_channel_permissions Propose channel permission changes
Change who may join, speak or administer where - with your approval of the exact change.
- Permission
- Propose permission changes
- Effect
- Proposes; you approve in the dashboard
- On the server
- None until you approve it in the dashboard; then the channel’s rules and groups are replaced as shown.
- Inputs
server(string): The server, as server from list_servers.channel(string): A channel path as list_channels gives it: '/' is the top-level channel, '/Raids/Wednesday' a channel two levels below it.permissions_version(string): permissions_version from get_channel_permissions.inherit(boolean): Whether the channel inherits rules from the channels above.rules(list of rules/groups)groups(list of rules/groups)idempotency_key(string): A new unique value for every change you mean to make (a UUID is ideal). Send the same value again only to retry the same request: it then returns the first result instead of acting twice.
- Limits
- Every change waits for your approval, for 30 minutes, and is refused if the permissions changed in the meantime.
- The preview shows the configuration change, not a guaranteed result for any one person.
- Undo: restore the previous permissions from AI app changes in the dashboard.
create_private_channel Create a private channel
Make a channel only chosen registered members can use.
- Permission
- Propose permission changes
- Effect
- Proposes; you approve in the dashboard
- On the server
- None until you approve it; then the channel is created with its permissions in one step.
- Inputs
server(string): The server, as server from list_servers.parent(string): The channel to create it in.name(string)members(list of string): Registered users (list_registered_users) to give access.description(string, optional)idempotency_key(string): A new unique value for every change you mean to make (a UUID is ideal). Send the same value again only to retry the same request: it then returns the first result instead of acting twice.
- Limits
- Members must be registered on the server. Guests cannot be given access by name.
- Mumble combines these rules with inherited ones; SuperUser and anyone allowed to administer a channel above can still get in.
- Undo: delete the channel from AI app changes in the dashboard.
change_private_channel_access Grant or revoke private channel access
Let someone into a private channel, or take their access away.
- Permission
- Propose permission changes
- Effect
- Proposes; you approve in the dashboard
- On the server
- None until you approve it; then the channel’s members group changes as shown.
- Inputs
server(string): The server, as server from list_servers.channel(string): A channel path as list_channels gives it: '/' is the top-level channel, '/Raids/Wednesday' a channel two levels below it.grant(list of string, optional): Registered users to give access.revoke(list of string, optional): Registered users to take access from.permissions_version(string)idempotency_key(string): A new unique value for every change you mean to make (a UUID is ideal). Send the same value again only to retry the same request: it then returns the first result instead of acting twice.
- Limits
- Only registered users, and only on a channel with its own members group.
- Someone connected in the channel when they lose access is not moved out by this.
- Undo: restore the previous permissions from AI app changes in the dashboard.
move_user Move a connected user
Move someone to another channel.
- Permission
- Moderate connected people
- Effect
- Changes the server
- On the server
- The person is moved at once and sees it happen.
- Inputs
server(string): The server, as server from list_servers.user(string): A connected person, as user from list_connected_users. It names that one connection: once they disconnect or reconnect it stops working, so list connected users again.channel(string): Where to move them.idempotency_key(string): A new unique value for every change you mean to make (a UUID is ideal). Send the same value again only to retry the same request: it then returns the first result instead of acting twice.
- Limits
- Only people connected now; SuperUser is never moved.
- Several people at once needs your approval (moderate_users).
set_user_mute Server-mute or unmute a user
Silence someone, or let them speak again.
- Permission
- Moderate connected people
- Effect
- Changes the server
- On the server
- Applies at once and lasts until undone or they reconnect.
- Inputs
server(string): The server, as server from list_servers.user(string): A connected person, as user from list_connected_users. It names that one connection: once they disconnect or reconnect it stops working, so list connected users again.muted(boolean): true to mute, false to unmute.idempotency_key(string): A new unique value for every change you mean to make (a UUID is ideal). Send the same value again only to retry the same request: it then returns the first result instead of acting twice.
- Limits
- Only people connected now; SuperUser is never muted.
set_user_deafen Server-deafen or undeafen a user
Stop someone hearing the channel, or let them hear again.
- Permission
- Moderate connected people
- Effect
- Changes the server
- On the server
- Applies at once. Deafening also mutes; undeafening leaves a separate mute in place.
- Inputs
server(string): The server, as server from list_servers.user(string): A connected person, as user from list_connected_users. It names that one connection: once they disconnect or reconnect it stops working, so list connected users again.deafened(boolean): true to deafen, false to undeafen.idempotency_key(string): A new unique value for every change you mean to make (a UUID is ideal). Send the same value again only to retry the same request: it then returns the first result instead of acting twice.
- Limits
- Only people connected now; SuperUser is never deafened.
kick_user Kick a user
Remove someone from the server for now.
- Permission
- Moderate connected people
- Effect
- Changes the server
- On the server
- They are disconnected at once. Nothing stops them reconnecting.
- Inputs
server(string): The server, as server from list_servers.user(string): A connected person, as user from list_connected_users. It names that one connection: once they disconnect or reconnect it stops working, so list connected users again.reason(string, optional): Shown to the person by their Mumble client. Up to 200 characters.idempotency_key(string): A new unique value for every change you mean to make (a UUID is ideal). Send the same value again only to retry the same request: it then returns the first result instead of acting twice.
- Limits
- Only people connected now; SuperUser is never kicked.
- Several people at once needs your approval.
ban_user Ban a user
Keep someone off a server, for a while or for good - with your approval.
- Permission
- Moderate connected people
- Effect
- Proposes; you approve in the dashboard
- On the server
- None until you approve it; then a ban entry is added and the person is disconnected.
- Inputs
server(string): The server, as server from list_servers.user(string): A connected person, as user from list_connected_users. It names that one connection: once they disconnect or reconnect it stops working, so list connected users again.reason(string, optional): Shown to the person by their Mumble client. Up to 200 characters.duration_hours(integer, optional): Leave out for a permanent ban.idempotency_key(string): A new unique value for every change you mean to make (a UUID is ideal). Send the same value again only to retry the same request: it then returns the first result instead of acting twice.
- Limits
- Only people connected now, so the ban can be made from their connection. SuperUser is never banned.
- A ban matches their address and certificate at the time: someone who changes both can still connect.
- Undo: remove the ban from AI app changes in the dashboard, or with remove_ban.
remove_ban Remove a ban
Lift a ban - with your approval.
- Permission
- Moderate connected people
- Effect
- Proposes; you approve in the dashboard
- On the server
- None until you approve it; then the ban entry is removed.
- Inputs
server(string): The server, as server from list_servers.ban(string): ban from list_bans.idempotency_key(string): A new unique value for every change you mean to make (a UUID is ideal). Send the same value again only to retry the same request: it then returns the first result instead of acting twice.
- Limits
- Refused if the ban has already gone.
moderate_users Moderate several users at once
Move, mute or kick a group of people in one go - with your approval.
- Permission
- Moderate connected people
- Effect
- Proposes; you approve in the dashboard
- On the server
- None until you approve it; then the action is applied to each person still connected.
- Inputs
server(string): The server, as server from list_servers.action(move | mute | unmute | deafen | undeafen | kick)users(list of string)channel(string, optional): Where to move them (for move).reason(string, optional): Shown to the person by their Mumble client. Up to 200 characters.idempotency_key(string): A new unique value for every change you mean to make (a UUID is ideal). Send the same value again only to retry the same request: it then returns the first result instead of acting twice.
- Limits
- 2 to 20 people. SuperUser is never included.
- People who left or reconnected before it runs are skipped.
Limits for every connection: 120 requests and 20 changes a minute; channels can be created while a server has fewer than 250, at most 25 a day.
Privacy
When your app uses a tool, what MumbleMe answers is sent to the app’s provider (Anthropic for Claude, OpenAI for ChatGPT) and handled under your agreement with them. That can include, for the servers you chose: server and channel names, descriptions, the names people use on the server, registered member names, who is connected and where, permissions, groups, ban names and reasons.
Never shared: IP addresses, certificates and their fingerprints, members’ email addresses and comments, passwords, your billing, and any server you didn’t choose. People and bans are named to the app by references that work only for that connection.
MumbleMe keeps a record of each connection and of every change an app asks for, for your Activity and AI app changes. See the Privacy Policy.
Troubleshooting
| What happens | What to do |
|---|---|
| The app asks you to connect or sign in again | The connection was revoked, replaced, or is past its 90 days. Connect again from the app. |
| It’s connected to the wrong MumbleMe account | Every answer names the account. Revoke it in Connected apps, then connect again and use Not you? Use another account. |
| A server is missing | It wasn’t chosen, or it isn’t active. Connect again and tick it. |
| The app says it isn’t allowed to make a change | That permission wasn’t ticked. Connect again and tick it. |
| “Changed since you read it” or “stale” | Someone changed the same thing meanwhile. Ask the app to read it again and retry. |
| “No longer connected” for a person | They left or reconnected. Ask the app to list connected users again. |
| A change is waiting | Approve it from the link the app gave, or from AI app changes. |
| “Start your server” or channels can’t be read | Mumble only reports channels, people and bans while the server is running. |
| A change went wrong | Undo it from AI app changes, or fix it in the dashboard, which is never limited by Mumble’s permissions. |
| Anything else | Contact support, saying which app and roughly when. |