Support inviting organization members via MCP

オープン
#2,047 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
48/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
typescript

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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]

主要言語
TypeScript
スター
957
フォーク
174
平均マージ
13時間 16分
マージ済み PR(30日)
407

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

getsentry/toolkit のほかの issue

getsentry/toolkit の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。