Support inviting organization members via MCP

Aperta
#2,047 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
typescript

Direzione di ricerca

Start with the MCP tools and API client in mcp-core, then read mcp-core/src/permissions.ts and mcp-core/src/scopes.ts alongside the hosted OAuth route at mcp-cloudflare/src/server/oauth/routes/authorize.ts. Trace how existing tools make authenticated requests and check the organization member endpoint’s permission and invite constraints. Done means an invite tool is available with the required scope and permission handling, and tests cover successful invitations and relevant errors, including disabled invites and conflicts.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

The Sentry MCP server has no way to invite or add members to an organization. So when a user asks their agent to invite people by email, the agent gets stuck. One agent hit this and sent in user feedback (MCP-SERVER-GKS): the user asked to invite three emails to their org, and the agent found nothing that could do it.

Current state

  • No tool in the catalog invites, adds or lists org members. mcp-core has no API client calls to /organizations/{org}/members/.
  • Sentry already exposes POST /api/0/organizations/{org}/members/ (email, orgRole, teamRoles, sendInvite). MemberPermission allows POST with member:invite, member:write or member:admin.
  • The hosted OAuth flow (mcp-cloudflare/src/server/oauth/routes/authorize.ts) asks for a fixed set of scopes from mcp-core/src/scopes.ts: org:read project:write team:write event:write alerts:write. None of those are member scopes, so existing hosted tokens can't call the endpoint.
  • member:invite is not in the MCP Scope type in mcp-core/src/permissions.ts, which only has member:read/write/admin.

Constraints the backend already enforces

  • The organizations:invite-members feature can turn invites off for an org (403).
  • The assigned role must be one the inviter is allowed to grant. It defaults to member.
  • When open team membership is off, members with member:invite can only invite into teams they belong to.
  • Invites are rate-limited per org, email and inviter (429). Existing invites or invite requests return conflict errors.

Why it matters

  • Inviting teammates is a common setup step. Adding members can also lead orgs to a paid plan.
  • An invite sends a real email to an outside address. That's a new kind of side effect for the MCP, and it should be guarded against agent mistakes.

Related: #927 (org member / assignee lookup tools).

via Dhrumil.

--

View Session [Sentry]

Lingua principale
TypeScript
Stelle
957
Fork
174
Merge medio
13h 16m
PR unite (30g)
407

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di getsentry/toolkit

Tutte le issue di getsentry/toolkit

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.