Agents (MCP)
Let Claude, Codex or any MCP agent run your guild.
The Guild MCP server lets an AI agent run your guild for you. Claude, Claude Code, Codex, Cursor and any other agent that speaks the Model Context Protocol (MCP) can connect to it at https://mcp.guild.xyz/mcp, then create roles, set up requirements and rewards, edit pages, read analytics and more, by asking in plain language. It's free on every plan.
Agents are in beta: the tools an agent can use and what they return may still change. Changes an agent makes to guild settings, roles, points and form reviews are in the audit log, and you can revoke a connection at any time.
How it works
You connect an agent once, from the agent. It sends you to Guild to sign in, you choose a guild and what the agent may do there, and from then on the agent acts as you, in that guild only, within those limits. Its changes to guild settings, roles, points and form reviews appear in the guild's Audit log, marked as made by that agent on your behalf. Changes to pages, requirements, reward settings, spaces and proposals are not in the audit log yet.
Ask it things like "Create a Holders role for anyone with at least 1 of our NFTs on Base". The admin's Agents page has more examples under Then ask it.
Connect your agent
The server is https://mcp.guild.xyz/mcp.
Claude
-
In Claude, open Settings, then Connectors, and add a custom connector with this link:
https://mcp.guild.xyz/mcp -
Press Connect and sign in to Guild.
Claude Code
-
Run this in your terminal:
claude mcp add --transport http guild https://mcp.guild.xyz/mcp -
In Claude Code, type /mcp, choose guild and sign in.
Codex
-
Add this to ~/.codex/config.toml:
[mcp_servers.guild] url = "https://mcp.guild.xyz/mcp" -
Sign in from your terminal:
codex mcp login guild
Other
-
Add this link where your assistant connects to MCP servers:
https://mcp.guild.xyz/mcp -
Sign in to Guild when it asks.
Connect from Claude
- In Claude, open Settings, then Connectors, and add a custom connector with the link
https://mcp.guild.xyz/mcp. - Press Connect and sign in to Guild.
The admin's Agents page has the same two steps for Claude Code, Codex and other agents.
Build a progression path
A role can require another role, so members climb from one to the next: Newcomer, then Regular, then Veteran. Ask your agent "How do I link roles in a progression path?", or tell it the levels you want. It creates the roles, makes each one require the role before it, and puts them on the page in order. You can also ask it to reorder the roles on any page.
Change how a page looks
Your agent can set everything on the Spaces & roles screen for a page. That covers its layout (list, cards, grid, path, spotlight or comparison, with each layout's options), the order of its roles, who can see it (everyone, holders of certain roles, or admins only), its place in the guild's navigation, and whether it carries a feed, announcements or a chat. Try "Show the Levels page as a path" or "Only let Builders see the Alpha page".
More your agent can manage
Beyond roles and pages, an agent can claim or release your vanity alias, set the animated banner, add or archive custom emoji, create and edit your launch page (and launch now), change referral settings, read the referral leaderboard, manage guild profile items and set a role's member limit or reserved numbers. Reading or changing individual members' data needs the member permissions: point balances and the points ledger, granting or deducting points, pre-registrations, member numbers and who voted on a proposal. Agents still never cast votes.
Approve the connection
When you sign in from the agent, Guild opens a consent page on guild.xyz that shows which app is asking and where it will return.
- Tick the permissions to grant. The ones the app asked for are ticked already; permissions that read member data are never pre-ticked, so you add them on purpose.
- Pick the guild. You can only pick a guild you own or administer.
- Press Connect app.
One connection, one guild
A connection manages exactly one guild, chosen when you approve it, and that can't be changed later. To manage a second guild, connect the agent again and pick the other guild. You must still be an owner or admin of the guild whenever the agent acts; if you lose admin rights, so does the agent.
Permissions
You choose what an agent may do when you approve it, and can narrow it later from the admin's Agents page. These are the permissions the server knows today:
| Permission | Lets the agent | Actions |
|---|---|---|
Read guilds guild:read |
Read the guild's settings, pages, roles, requirements, rewards, forms, spaces, analytics and audit log | 44 |
Manage guilds guild:write |
Change the guild's settings, pages, roles, requirements, rewards, forms and spaces, and post in its spaces as you | 54 |
Read member data members:read |
Read members, their timelines, form submissions and space conversations, which include personal data | 16 |
Moderate members members:write |
Review form submissions and moderate members in spaces: resolve reports, mute and ban | 8 |
What agents can never do
Whatever you allow, the server refuses these:
- Agents cannot delete a guild.
- An agent manages the one guild it is connected to; create the guild in Guild, then connect the agent to it.
- Agents cannot manage guild API keys.
- Agents cannot reset a points platform.
- Agents cannot manage agent access.
- Agents cannot join guilds for their user.
- Agents cannot leave guilds for their user.
- Agents cannot claim roles for their user.
- Agents cannot fill in forms for their user.
- Agents cannot export to their user's Google account; use the CSV export.
- Agents cannot react, report or mark messages read for their user.
- Agents cannot vote for their user.
- Agents cannot change their user's profile level.
- Profile levels are read by Guild's requirement service only.
- Agents cannot use Guild staff tools.
- Agents cannot change the guild's owner, admins, plan or verification.
Manage and revoke agents
The admin's Agents page lists every agent that can act on the guild under Connected agents, whoever connected it, with its permissions, who connected it and when it was last used. You can rename your own connections, take permissions away, or Revoke them. Revoking stops the agent within 15 seconds; the changes it already made stay, and the audit log keeps them. To give an agent more permissions, connect it again. Connections made by other admins are shown read-only: only the admin who connected an agent can rename it or change its permissions. The guild owner can also revoke any admin's connection.
Access tokens for headless use
Scripts, CI and agents that can't open a browser use an access token instead of signing in. On the Agents page, open For developers and press Access token; name it, pick its permissions and an expiry of 30, 90 or 365 days. The token works for this guild only, and it's shown once: Guild keeps only a fingerprint of it. Send it as a Bearer token to the server URL.
Every action
The Guild API routes an agent can call, and the permission each needs:
| Method | Path | Permission |
|---|---|---|
| GET | /guilds |
guild:read |
| GET | /guilds/:guildIdLike |
guild:read |
| GET | /pages |
guild:read |
| GET | /pages/:pageIdLike |
guild:read |
| GET | /pages/:pageIdLike/audience |
guild:read |
| GET | /roles |
guild:read |
| GET | /roles/:roleId |
guild:read |
| GET | /roles/:roleId/member-count |
guild:read |
| GET | /requirement-integrations |
guild:read |
| GET | /requirement-integrations/:integrationId |
guild:read |
| GET | /requirements |
guild:read |
| GET | /requirements/:requirementId |
guild:read |
| GET | /rewards/:rewardId |
guild:read |
| GET | /guilds/:guildIdLike/audit-log |
guild:read |
| GET | /analytics/:guildIdLike/campaigns |
guild:read |
| GET | /analytics/:guildIdLike/members |
guild:read |
| GET | /analytics/:guildIdLike/roles |
guild:read |
| GET | /analytics/:guildIdLike/page-views |
guild:read |
| GET | /analytics/:guildIdLike/reward-claims |
guild:read |
| GET | /analytics/:guildIdLike/activity-summary |
guild:read |
| GET | /analytics/:guildIdLike/activity-heatmap |
guild:read |
| GET | /analytics/:guildIdLike/activity-timeseries |
guild:read |
| GET | /v1/agents/me/guilds |
guild:read |
| GET | /v1/agents/scopes |
guild:read |
| GET | /v1/forms |
guild:read |
| GET | /v1/forms/overview |
guild:read |
| GET | /v1/forms/:formId |
guild:read |
| GET | /v1/forms/:formId/pages/:pageId |
guild:read |
| GET | /v1/forms/:formId/pages/:pageId/fields/:fieldId |
guild:read |
| GET | /spaces/guild/:guildId |
guild:read |
| GET | /spaces/guild/:guildId/settings |
guild:read |
| GET | /spaces/:pageId |
guild:read |
| GET | /spaces/:pageId/access |
guild:read |
| GET | /voting/guild/:guildId |
guild:read |
| GET | /voting/proposals/:proposalId |
guild:read |
| GET | /guilds/:guildIdLike/boosts |
guild:read |
| GET | /guilds/:guildIdLike/custom-emoji |
guild:read |
| GET | /guilds/:guildIdLike/launch |
guild:read |
| GET | /guilds/:guildIdLike/referrals/settings |
guild:read |
| GET | /guilds/:guildIdLike/referrals/leaderboard |
guild:read |
| GET | /guilds/:guildIdLike/profile-items |
guild:read |
| GET | /profile-items/catalog |
guild:read |
| GET | /roles/claims |
guild:read |
| GET | /roles/:roleId/claim-policy |
guild:read |
| POST | /guilds/:guildIdLike/boosts/booster-role |
guild:write |
| PUT | /guilds/:guildIdLike/boosts/animated-banner |
guild:write |
| PUT | /guilds/:guildIdLike/boosts/vanity |
guild:write |
| DELETE | /guilds/:guildIdLike/boosts/vanity |
guild:write |
| POST | /guilds/:guildIdLike/custom-emoji |
guild:write |
| DELETE | /guilds/:guildIdLike/custom-emoji/:emojiId |
guild:write |
| PUT | /guilds/:guildIdLike/launch |
guild:write |
| DELETE | /guilds/:guildIdLike/launch |
guild:write |
| POST | /guilds/:guildIdLike/launch/launch-now |
guild:write |
| PUT | /guilds/:guildIdLike/referrals/settings |
guild:write |
| POST | /guilds/:guildIdLike/profile-items |
guild:write |
| PATCH | /guilds/:guildIdLike/profile-items/:itemId |
guild:write |
| DELETE | /guilds/:guildIdLike/profile-items/:itemId |
guild:write |
| PUT | /roles/:roleId/claim-policy |
guild:write |
| PUT | /guilds/:guildIdLike |
guild:write |
| POST | /pages |
guild:write |
| PUT | /pages/:pageIdLike |
guild:write |
| PUT | /pages/:pageIdLike/roles/order |
guild:write |
| PUT | /pages/:pageIdLike/audience |
guild:write |
| PUT | /guilds/:guildIdLike/pages/order |
guild:write |
| DELETE | /pages/:pageIdLike |
guild:write |
| POST | /roles |
guild:write |
| PUT | /roles/:roleId |
guild:write |
| DELETE | /roles/:roleId |
guild:write |
| POST | /requirements |
guild:write |
| PUT | /requirements/:requirementId |
guild:write |
| DELETE | /requirements/:requirementId |
guild:write |
| POST | /requirements/:requirementId/replace |
guild:write |
| POST | /rewards |
guild:write |
| PUT | /rewards/:rewardId |
guild:write |
| DELETE | /rewards/:rewardId |
guild:write |
| POST | /platforms |
guild:write |
| PUT | /platforms/:platformId |
guild:write |
| DELETE | /platforms/:platformId |
guild:write |
| POST | /v1/forms |
guild:write |
| PUT | /v1/forms/:formId |
guild:write |
| DELETE | /v1/forms/:formId |
guild:write |
| POST | /v1/forms/:formId/pages |
guild:write |
| PUT | /v1/forms/:formId/pages |
guild:write |
| PUT | /v1/forms/:formId/pages/:pageId |
guild:write |
| DELETE | /v1/forms/:formId/pages/:pageId |
guild:write |
| POST | /v1/forms/:formId/pages/:pageId/fields |
guild:write |
| PUT | /v1/forms/:formId/pages/:pageId/fields |
guild:write |
| PUT | /v1/forms/:formId/pages/:pageId/fields/:fieldId |
guild:write |
| DELETE | /v1/forms/:formId/pages/:pageId/fields/:fieldId |
guild:write |
| PUT | /spaces/guild/:guildId/settings |
guild:write |
| PUT | /spaces/:pageId |
guild:write |
| DELETE | /spaces/:pageId |
guild:write |
| POST | /spaces/:pageId/messages |
guild:write |
| PATCH | /spaces/:pageId/messages/:messageId |
guild:write |
| DELETE | /spaces/:pageId/messages/:messageId |
guild:write |
| POST | /spaces/:pageId/messages/:messageId/:action |
guild:write |
| POST | /voting/guild/:guildId/proposals |
guild:write |
| POST | /voting/proposals/:proposalId/cancel |
guild:write |
| GET | /voting/proposals/:proposalId/votes |
members:read |
| GET | /guilds/:guildIdLike/launch/preregistrations |
members:read |
| GET | /roles/:roleId/claims |
members:read |
| GET | /guilds/:guildIdLike/points/:platformId/transactions |
members:read |
| GET | /guilds/:guildIdLike/points/:platformId/balance/:userId |
members:read |
| GET | /crm/:guildIdLike |
members:read |
| GET | /crm/:guildIdLike/members/:userId/timeline |
members:read |
| GET | /v1/forms/:formId/submissions |
members:read |
| GET | /v1/forms/:formId/submissions/:submissionId |
members:read |
| GET | /v1/forms/:formId/csv |
members:read |
| GET | /spaces/:pageId/messages |
members:read |
| GET | /spaces/:pageId/messages/:messageId/thread |
members:read |
| GET | /spaces/:pageId/participants |
members:read |
| GET | /spaces/guild/:guildId/restrictions |
members:read |
| GET | /spaces/guild/:guildId/reports |
members:read |
| GET | /spaces/guild/:guildId/moderation-log |
members:read |
| POST | /guilds/:guildIdLike/points/:platformId/transactions |
members:write |
| POST | /guilds/:guildIdLike/points/:platformId/transactions/bulk |
members:write |
| PUT | /roles/:roleId/claims/:number |
members:write |
| DELETE | /roles/:roleId/claims/:number |
members:write |
| PATCH | /v1/forms/:formId/submissions/:submissionId/review |
members:write |
| POST | /spaces/guild/:guildId/restrictions |
members:write |
| DELETE | /spaces/guild/:guildId/restrictions/:id |
members:write |
| POST | /spaces/guild/:guildId/reports/:id/resolve |
members:write |