Connect an AI assistant (MCP)
Connect Claude or another MCP client to your guild, choose what it may do, and approve what it asks for.
Guild Pro has an MCP connection. It lets an AI assistant such as Claude read your guild’s data, post for you, and, if you allow it, manage your Discord server. This is a reference page for guild admins who want to set that up.
Before you start
- You must be an admin of the guild. The MCP page is at /g/your-guild/mcp (“your-guild” is your guild’s address).
- You need an MCP client that can connect to an HTTP server with a bearer token, such as Claude Code or Claude Desktop.
- For the Discord tools, the bot must already be in your Discord server.
How permissions work
Three checks apply to every request the assistant makes. All three must pass.
- Scopes. What the token was created to do:
read,writeordiscord. - Your role. The token acts as you. Each request checks your current role in the guild it names. If you are demoted, every token you created is demoted with you, from the next request.
- Discord. Tools that change your Discord server only work if the bot has been given full management there, and each channel or role is checked against Discord before it is touched.
A token can never do anything your own role does not allow. Treat it like a password.
Create a token
- Open the MCP page.
- Under Your token, tick the Scopes you want.
| Scope | What it allows |
|---|---|
read | Attendance, rosters, signups, loot, schedules. |
write | Post announcements to Discord, as you. |
discord | Create and rename channels and categories, create events, create roles and hand them out. Roles are made with no permissions, and deleting always waits for approval. |
- Press Mint token.
- Press Copy to copy the token.
read and write are ticked by default. discord is not.
A token belongs to your account, not to one guild. It reaches every guild you are a member of, at whatever role you hold in each.
Change scopes or replace a token
Tick the scopes you want and press Roll token with these scopes. A new token is created and the old one stops working immediately. Update your assistant with the new token.
Turn it off
Press Revoke. Every MCP token for your account stops working. Do this at once if a token is ever exposed.
Connect your assistant
The server address is https://guildpro.io/api/mcp.
Claude Code
Run the command shown under Connect Claude on the MCP page. It has this shape:
claude mcp add guildpro --transport http https://guildpro.io/api/mcp --header "Authorization: Bearer <your token>"
Claude Desktop and other clients
Add an HTTP server with the same address and an Authorization: Bearer header carrying your token.
Then ask in plain language, for example “who’s slipping on attendance?” or “what does Thursday’s signup sheet look like?”.
Technical notes
- The connection uses MCP’s Streamable HTTP transport in stateless form: one JSON-RPC message per POST request, answered with plain JSON.
- Batched messages are not supported.
- There is no server-push stream. GET and DELETE requests are refused.
- Only the bearer token is accepted. Being signed in to the website in a browser does not grant access.
- The assistant should call
list_my_guildsfirst. Every other tool takes the guild address it returns.
Enable Discord management
Out of the box the bot can only post. Managing channels, roles and events needs a second, explicit grant for each Discord server.
- On the MCP page, find Discord management. Each connected server shows posting only or full management.
- Beside a server that shows posting only, press Upgrade permissions.
- Discord shows you exactly which permissions change. Approve them.
- Make sure your token has the
discordscope. If it does not, tick it and roll the token.
Proposals: nothing is deleted without you
The assistant cannot delete anything in your Discord. When it wants to delete a channel, several channels or a role, it files a proposal with a reason. Nothing happens until an admin decides.
- Open the MCP page. Pending proposals appear at the top under Waiting on you.
- Read the summary.
- Press Approve or Deny.
Approve carries out the deletion immediately and records the outcome. Deny changes nothing. Decided proposals are listed under Decided with their result, for example when Discord refused part of the request.
Proposals can only be decided on the website by a signed-in admin. A token cannot approve them. This applies at every permission level.
The tools
The assistant only sees the tools your token’s scopes cover. “Role” is the lowest guild role you need for the tool to work.
Read tools
| Tool | Role | What it does |
|---|---|---|
list_my_guilds | raider | Every guild you belong to, with your role, the raid teams and the connected Discord servers. |
get_roster | raider | Members, their roles and claimed characters, plus characters nobody has claimed. |
get_schedule | raider | Standing raid nights and upcoming planned raids with signup counts. |
get_signups | raider | Who signed up for a planned raid, grouped by answer and role. Defaults to the next raid. |
get_attendance | raider | Attendance per person over recent raids, with alts counted for their owner. |
get_loot_history | raider | Recent loot drops: item, who received it, which raid, when. |
get_recent_raids | raider | Recent raids recorded by the addon: instance, when, roster size, boss kills. |
get_bot_activity | officer | What the Discord bot recently did or failed to do, and why. |
Write tools
| Tool | Role | What it does |
|---|---|---|
post_announcement | officer | Posts an announcement to the guild’s announcement channel. Can prefix @here. |
create_raid | officer | Creates a raid and posts its signup sheet to Discord, with the usual buttons. Standard or flex signups. |
create_team | admin | Creates a raid team. |
Discord tools
All of these need the discord scope. Unless marked otherwise, they also need the bot to have full management in that Discord server.
| Tool | Role | What it does |
|---|---|---|
discord_list_channels | officer | Lists every channel and category with ids, types and positions. Works with posting only. |
list_channel_routes | officer | Shows where each kind of post currently goes, per team and for the guild. Works with posting only. |
set_channel_route | admin | Points a kind of post (signup, roster, recap, loot or announce) at a channel, for one team or as the guild default. Works with posting only. |
discord_create_channel | admin | Creates a text or voice channel, optionally under a category. |
discord_create_category | admin | Creates a category. |
discord_edit_channel | admin | Renames a channel or category, changes a topic, or moves a channel to another category. |
discord_reorder_channels | admin | Sets the order of categories, or of channels inside one category. |
discord_set_channel_access | admin | Sets which role can see, post in or join a channel or category. Only touches view, post, connect and speak. |
discord_create_event | officer | Creates a Discord scheduled event for a raid. |
discord_list_roles | officer | Lists every role with id, colour and position, and whether the bot can assign it. |
discord_create_role | admin | Creates a role with no permissions at all. It is a label for tagging and pinging. |
discord_edit_role | admin | Renames a role or changes its colour and display flags. Never changes what the role can do. |
discord_reorder_roles | admin | Sets the order of roles. The bot can only hand out roles placed below its own. |
discord_find_member | officer | Looks up people in the Discord server by username or nickname. |
discord_list_members | officer | Lists server members and the roles each holds. Read-only. |
discord_assign_role | admin | Gives a member a role. Refuses any role that carries moderation or management permissions. |
discord_delete_role | admin | Files a proposal to delete a role. Deletes nothing. |
discord_delete_channel | admin | Files a proposal to delete a channel. Deletes nothing. |
discord_clean_up_channels | admin | Files one proposal to delete several channels at once. Deletes nothing. |
Safety limits built in
- Roles the assistant creates have no permissions. Giving a role real powers is done by a person in Discord’s own role settings.
- The assistant cannot assign roles that carry moderation or management permissions.
- Channel access changes are limited to view, post, connect and speak.
- Deleting always goes through a proposal.
- A token only reaches guilds you are a member of.
Troubleshooting
| What you see | What to do |
|---|---|
| The client reports it is unauthorized | Check the token was pasted in full after Bearer , and that it has not been rolled or revoked. |
| “No tool called … is available to this token.” | The token lacks the scope for that tool. Tick the scope and roll the token. |
| “This needs the … role in …” | Your role in that guild is too low for the tool. |
| “The bot holds only posting permissions in this Discord.” | Press Upgrade permissions on the MCP page. |
| “No Discord is connected to this guild.” | Add the bot from the Bot page first. |
| “No announce channel is set.” or “No signup channel is set.” | Choose the channel on the Bot page. |
Related
Still stuck? Ask in the Discord.