Both Workspace accounts (ajr@ and ochafik@modelcontextprotocol.io) were
created manually in Google Workspace; mark them with existingGWSUser so
Pulumi skips creating the User resources.
Co-authored-by: Claude <noreply@anthropic.com>
Adds appeals@modelcontextprotocol.io as an email Google Group so banned
or external users have an out-of-band channel to appeal Code of Conduct
actions even after an org-level GitHub block. Mirrors the existing
antitrust@/catch-all@ email-group setup (isEmailGroup, no new GoogleConfig
fields).
Membership is curated explicitly (like the antitrust@ members) to the
current moderators and active lead maintainers, rather than derived from
the MODERATORS/LEAD_MAINTAINERS roles, since those roles include emeritus
and former members who should not receive appeals.
Co-authored-by: Tadas Antanavicius <tadas@modelcontextprotocol.io>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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>
* feat(users): add olaservo to interceptors-wg
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Den Delimarsky <53200638+localden@users.noreply.github.com>
* chore: align registry roster with WG charter
Aligns GitHub teams / Discord roles / Google groups with the Registry
Working Group charter (https://modelcontextprotocol.io/community/registry/charter):
- Add REGISTRY_WG_COLLABORATORS role + registry-wg-collaborators GitHub
team with push (not admin) on the registry repo, mirroring the
typescript-sdk-collaborators model. No google config => no
@modelcontextprotocol.io account (charter: Maintainer? No).
- Add Preeti (Pree) Dewani (@pree-dew) as a registry collaborator.
- Remove Adam Jones (@domdomegg) from REGISTRY_MAINTAINERS (he remains an
active MCPB maintainer). His @modelcontextprotocol.io account is
unaffected (existingGWSUser, not managed by this IaC).
- Remove Toby Padilla (@toby) entirely; registry was his only
maintainership. His @modelcontextprotocol.io account is likewise
unaffected by this change (existingGWSUser).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* chore: drop discord config and inline comments from collaborators role
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* chore: annotate registry collaborators role id as GitHub only
Matches the typescript-sdk-collaborators convention in roleIds.ts.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* chore: keep Toby as registry emeritus with empty role membership
Instead of removing Toby Padilla's access entry entirely, retain it with an
empty memberOf and a comment noting he is an emeritus maintainer of the
Registry.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* chore: rename registry collaborators team to registry-collaborators
Drops the '-wg' infix for consistency: GitHub team slug
'registry-wg-collaborators' -> 'registry-collaborators' and the role id
constant REGISTRY_WG_COLLABORATORS -> REGISTRY_COLLABORATORS, keeping the
constant and slug mirrored as with typescript-sdk-collaborators.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Tadas Antanavicius <tadas@modelcontextprotocol.io>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Creates the agents-wg role and corresponding GitHub team under working-groups,
adds Caitie, David, Luca, and Peter Alexander as members, and grants the team
admin access to the experimental-ext-tasks repository.
Creates the file-uploads-wg GitHub team (under working-groups) and the
matching Discord role. Initial members: localden (Lead), nickcoai,
ochafik. See charter PR modelcontextprotocol#2635.
🏠 Remote-Dev: homespace
* Add INTERCEPTORS_WG role ID
* Add Interceptors Working Group role configuration
* Add repository access configuration for interceptors
* Add user to INTERCEPTORS_WG role
Add firstName, lastName, and googleEmailPrefix fields to provision
sam@modelcontextprotocol.io Google Workspace account.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds SERVER_CARD_WG working group with GitHub team and Discord role.
Adds Sam to MAINTAINERS and SERVER_CARD_WG, and adds tadasant and dsp-ant
to SERVER_CARD_WG.
- New GitHub team typescript-sdk-collaborators (child of typescript-sdk)
- Grant push permission on modelcontextprotocol/typescript-sdk
- Add poteat as initial member
🏠 Remote-Dev: homespace
- Expand REFERENCE_SERVERS_MAINTAINERS role (previously Discord-only) to
create a GitHub team
- Grant the team admin permission on modelcontextprotocol/servers
- Add tobinsouth as a new member
Existing members cliffhall and olaservo will also be added to the new
GitHub team.
🏠 Remote-Dev: homespace
* Add nickcoai Google info
As above
* Update src/config/users.ts
---------
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 Tool Annotations Interest Group and enable Discord sync
Add rreichel3, mattzcarey, and SamMorrowDrums as facilitators
for the new Tool Annotations IG. Create GitHub team and Discord
role sync. Add Discord IDs for rreichel3 and mattzcarey.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Add experimental-ext-tool-annotations repo for Tool Annotations IG
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
- Add sunishsheth2009 as a new member of the skills-over-mcp-ig group
- Enable Discord role sync for the Skills over MCP Interest Group
- Add Discord IDs for erain, JAORMX, kaxil, and keithagroves
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Grants Paul Carleton moderator (GitHub + Discord), Discord administrator,
and docs-maintainers access alongside his existing core-maintainers role.
🏠 Remote-Dev: homespace
* Add csharp-sdk-admin team and split csharp-sdk repo permissions
Introduce a csharp-sdk-admin team for admin access to the csharp-sdk repo,
while the existing csharp-sdk team is changed to push (write) access. This
separates admin privileges from general write access.
- Add CSHARP_SDK_ADMIN role to roleIds.ts and roles.ts
- Update repoAccess.ts: csharp-sdk-admin (admin), csharp-sdk (push), PederHP (triage)
- Add jeffhandley, ericstj, jozkee, tarekgh as new members in users.ts
- Move dend/localden from csharp-sdk to csharp-sdk-admin team
- Add csharp-sdk-admin membership for halter73, mikekistler, stephentoub
- Remove MackinnonBuck (admin) direct access per request
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix alphabetical ordering of new users in users.ts
Move ericstj after erain and jeffhandley before jenn-newton to satisfy
the case-insensitive alphabetical sort check in validate-config.ts.
🏠 Remote-Dev: homespace
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Den Delimarsky <den@anthropic.com>
The hashicorp/googleworkspace provider has a known eventual-consistency
bug (issue #387): after creating a user, it polls for 4 consecutive
identical API etags before marking the resource created. Google's API
frequently flip-flops etags, so the check never passes and the 300s
default timeout trips — even though the user was actually created.
This caused cliff@ creation to timeout, leaving the user in GWS but not
in Pulumi state; subsequent runs fail with 409 Entity already exists.
Two changes:
- Mark cliff as existingGWSUser so Pulumi stops trying to create him
(matches the pattern used for other stranded users).
- Switch to the SamuZad/googleworkspace fork (v0.11.1), which lowers
numConsistent from 4 to 2, preventing the timeout for future user
creations. The upstream provider has been unmaintained for 2+ years.
* 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 org email details for Ola Hungerford and Luca Chang
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com>
The GWS provider validates email types during import, but GWS itself
returns empty types for primary/alias emails. This causes unrecoverable
validation errors on every new user import. Instead, skip managing
existing users entirely and let group memberships be created directly.
Also marks den as existingGWSUser.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>