Move bolinfest and jokemanfire from direct repo collaborators to the
rust-sdk team in users.ts. Remove 4t145 entirely. The rust-sdk repo
now has no direct collaborators.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove richardkmichael and ashwin-ant from inspector, and
slimslenderslacks from servers.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove jspahrsummers (org admin) from all direct repo access. Remove
redundant direct access for users who already have equal or higher
permissions via team membership: localden (csharp-sdk), an-dustin
(inspector via security-wg), jamadeo and alexhancock (rust-sdk),
mattt/movetz/stallent (swift-sdk), rdimitrov (registry via registry-wg),
sambhav (financial-services-ig), and liady/idosal/antonpk1 (ext-apps
via mcp-apps-sdk). Upgrade swift-sdk team permission from push to admin.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Add primitive-grouping-ig interest group
Create the primitive-grouping-ig interest group team under interest-groups
and grant it push access to the experimental-ext-grouping repository.
Members: cliffhall, chughtapan, SamMorrowDrums.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix formatting
* Give core-maintainers and moderators access to experimental-ext-grouping
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Add Tapan Chugh as facilitator for Primitive Grouping Interest Group. Also npm audit fix to remove 14 high vulnerabilities.
* In package-lock.json
- npm audit fix.
- 0 vulnerabilities now
* In roles.ts
- add PRIMITIVE_GROUPING_IG
* In roles.ts
- add block for ROLE_IDS.PRIMITIVE_GROUPING_IG
- **NOTE**: the github team and discord role are forward-looking and still need to be created
* In users.ts
- add block for Tapan with role ids for
- INTEREST_GROUPS
- PRIMITIVE_GROUPING_IG
- WG_IG_FACILITATORS
* In users.ts
- add ROLE_IDS.MAINTAINERS to Tapan's entry as per DSP
* Add Skills Over MCP Interest Group and experimental-ext-skills repo
- Add SKILLS_OVER_MCP_IG role under interest-groups (GitHub team only)
- Add repo access for experimental-ext-skills per SEP-2133 governance:
- core-maintainers: admin (oversight)
- moderators: triage
- skills-over-mcp-ig: admin (day-to-day governance)
- Add IG membership for: cliffhall, erain, JAORMX, kaxil, keithagroves,
olaservo, pederhp, SamMorrowDrums, TeamSparkAI
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add SKILLS_OVER_MCP_IG role to user membership
* Fix alphabetical sorting of users
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Paul Carleton <paulcarletonjr@gmail.com>
* Add herczyn to Go SDK team.
Kuba is another lead from the new team at Google that took over the Go SDK maintenance.
* Add discord for herczyn
* Clean up inactive maintainers of Go SDK
---------
Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com>
* Add evalstate and cliffhall to docs-maintaners team
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Add maintainers, reference-servers, and working-groups roles to olaservo
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Add WG/IG facilitators role for calendar access
Add a new Discord-only role for Working Group and Interest Group
facilitators who need access to manage meetings on meet.modelcontextprotocol.io.
Initial members:
- Emily Lauber (@EmLauber) - Auth IG OAuth Mixup sub-working group
- Nate Barbettini (@nbarbettini)
* Fix member ordering - sort alphabetically
* Add pja-ant to transports WG
Claude-Generated-By: Claude Code (cli/claude-opus-4-5=100%)
Claude-Steers: 1
Claude-Permission-Prompts: 1
Claude-Escapes: 0
* Update src/config/users.ts
* format
---------
Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com>
Co-authored-by: David Soria Parra <davidsp@anthropic.com>
* Add pja-ant (Peter Alexander) as core maintainer
* Add validation for alphabetical member ordering in users.ts
- Added validation in validate-config.ts that checks:
1. GitHub members are sorted alphabetically (case-insensitive)
2. Email-only members come after all GitHub members
- Sorted existing users.ts entries to pass the new validation
- Add tarekgh to csharp-sdk with push permission
- Add ext-apps with mcp-apps-wg, mcp-apps-sdk teams and outside collaborators
- Add use-mcp with core-maintainers, moderators and geelen
- Add example-remote-client with core-maintainers, moderators and outside collaborators
This brings these previously unmanaged repos under centralized access control.
* Add maciej to go-sdk maintainers; discord ID for findleyr
Maciej is joining the project from Google. Add him as a go-sdk
maintainer.
Also, add a discord ID for myself.
* Update src/config/users.ts
Co-authored-by: Maciej Kisiel <macio92@gmail.com>
---------
Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com>
Co-authored-by: Maciej Kisiel <macio92@gmail.com>
- Add discordImplies field to Role interface for Discord-specific role hierarchy
- Add expandDiscordRoles() function to traverse both GitHub parent chain
and discordImplies relationships when syncing Discord roles
- SDK_MAINTAINERS now implies MAINTAINERS for Discord
This ensures that users with SDK roles (GO_SDK, PYTHON_SDK, etc.) automatically
get the 'maintainers (synced)' Discord role through:
GO_SDK -> SDK_MAINTAINERS (via GitHub parent) -> MAINTAINERS (via discordImplies)
Claude-Generated-By: Claude Code (cli/claude-opus-4-5=100%)
Claude-Steers: 5
Claude-Permission-Prompts: 1
Claude-Escapes: 0
* chore: add apps-wg and discord/github for liad
* Update src/config/roles.ts
Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com>
* fix: PR comments
* minor: comment
---------
Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com>
When a user with a Discord ID leaves the server (or the ID is invalid),
the sync now logs a warning and continues instead of failing the entire
deploy. This prevents deploys from breaking when someone leaves Discord.
The memberNotFound flag is tracked in Pulumi state so we can identify
stale Discord IDs.
Claude-Generated-By: Claude Code (cli/claude-opus-4-5=100%)
Claude-Steers: 0
Claude-Permission-Prompts: 0
Claude-Escapes: 0
The Discord ID 1086709448816468038 is not a member of the MCP Discord
server, causing deploy failures with 'Unknown Member (code: 10007)'
Claude-Generated-By: Claude Code (cli/claude-opus-4-5=100%)
Claude-Steers: 1
Claude-Permission-Prompts: 2
Claude-Escapes: 0
* Add Discord user IDs
* Update users.ts
* Update member roles and remove 'dend' from users config
Removed the user 'dend' from the MEMBERS list. Updated roles for 'ihrpr', 'localden', and 'nickcoai' to reflect new responsibilities and group memberships.
* Update formatting based on prettier
---------
Co-authored-by: Den Delimarsky <53200638+localden@users.noreply.github.com>
Co-authored-by: Den Delimarsky <den@anthropic.com>
* chore: add discord identifier for myself
* Update src/config/users.ts
---------
Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com>
* Updated user Cliff Hall
- Add email address
- Add discord user id
- Add missing role.REFERENCE_SERVERS_MAINTAINERS
* Updated user Cliff Hall
- Add missing role MAINTAINERS
* Updated user Cliff Hall
- Add missing role WORKING_GROUPS
* Prettier
* Add Discord ID to user configuration for Rado
* Update src/config/users.ts
---------
Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com>
* Update discord & email for chr-hertel
* Update src/config/users.ts
---------
Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com>
* Add Discord role sync with role-centric architecture
This refactors the access management to use a role-centric model where
each role explicitly defines which platforms it exists on (GitHub,
Discord, Google).
Key changes:
- Add Discord role sync via Pulumi Dynamic Provider
- Replace groups.ts with roleIds.ts + roles.ts for type-safe role definitions
- Use ROLE_IDS constants to prevent typos in memberOf references
- Each role has platform-specific config (github/discord/google keys)
- Discord-only roles (e.g., administrators) and GitHub-only roles
(e.g., typescript-sdk-auth) are now explicitly modeled
- Add PR preview workflow to show Pulumi changes before merge
- Add test-config.ts for config structure validation
- Fix typo: docs-maintaners -> docs-maintainers
Discord roles will match existing server roles:
- administrators, lead maintainers, core maintainers
- sdk maintainers, working groups, interest groups
- etc.
Requires new GitHub secrets:
- DISCORD_BOT_TOKEN
- DISCORD_GUILD_ID
* Fix GitHub team ordering and make Discord integration optional
- Add topological sort for GitHub teams to ensure parent teams are
created before child teams, fixing the registry-wg parentTeamId issue
- Make Discord integration optional by using config.get() instead of
config.require(), allowing CI preview to succeed without Discord secrets
- Add sortRolesByGitHubDependency() utility function in config/utils.ts
Claude-Generated-By: Claude Code (cli/claude-opus-4-5=20%)
Claude-Steers: 2
Claude-Permission-Prompts: 1
Claude-Escapes: 0
* Reconcile Discord roles for listed users
Replace per-role-membership approach with per-user role sync that:
- Adds missing roles users should have
- Removes managed roles users shouldn't have
- Only touches roles defined in config (won't affect admin roles, etc.)
Users not in config remain untouched.
Claude-Generated-By: Claude Code (cli/claude-opus-4-5=100%)
Claude-Steers: 4
Claude-Permission-Prompts: 1
Claude-Escapes: 0
* Fix descriptions to match existing resources
* Cache Pulumi plugins and fix GITHUB_TOKEN for pulumi install
* Remove accidentally committed state backup
* Use github.token for pulumi install
* Fix formatting
Fix deploy: add pulumi login before config set
Fix deploy: set PULUMI_CONFIG_PASSPHRASE_FILE for config commands
Import existing docs-maintainers team (remove after deploy)
Remove docs-maintainers import workaround
Add docs-maintainers cleanup to state cleanup
Add pulumi refresh before up to sync state with reality
Rename Discord roles to add (synced) suffix
Cleanup Makefile and add lead-maintainers GitHub team
* Add movetz and stallent as Swift SDK maintainers
Adding Maksym Mova (MacPaw) and Stephen Tallent (Mercury.io) as new
maintainers for the Swift SDK, as discussed in the SDK working group.
* Set up tiered access: admins + contributor team
- movetz and stallent get admin access directly
- swift-sdk team grants push access (for future contributors)
This follows the pattern used by go-sdk and rust-sdk.
* Preserve mattt as admin