Register the self-hosted Sentry MCP server and keep OAuth sign-ins across updates

link-mcp gains a stdio transport: the servers row names a launcher under user/agents/mcp/, run from the checkout so every machine runs the same script, and the token reaches it as MCP_TOKEN. sentry-gbrown is the first, pointing Sentry's MCP server at sentry.gbrown.org with a read-only token from the ignored env file.

A server already registered exactly as its row would register it is now left alone. Re-adding it every run threw away the sign-in of the OAuth servers, bill-tracker and atlassian, on every update.
This commit is contained in:
Gabriel Brown committed 2026-10-01 17:33:12 -04:00
1 parent 58a64d6cee
commit eb0056ac94
3 files changed
+79 -15

No files matched your search

+12
View File
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
# Sentry's MCP server, pointed at the self-hosted sentry.gbrown.org.
#
# link-mcp registers this file as a stdio server and hands it the token as
# MCP_TOKEN, read from SENTRY_GBROWN_TOKEN in user/agents/mcp/env. The token is
# a read-only personal token (Sentry > User settings > Personal Tokens, scopes
# alerts/event/org/project/team:read). The hosted sentry.io server cannot reach
# a self-hosted instance, which is why this one runs locally.
set -euo pipefail
: "${MCP_TOKEN:?MCP_TOKEN is not set; register this server through link-mcp}"
export SENTRY_ACCESS_TOKEN="$MCP_TOKEN"
exec npx -y @sentry/mcp-server@latest --host=sentry.gbrown.org --organization-slug=sentry
+9 -1
View File
@@ -1,6 +1,9 @@
# MCP servers registered with the local agent runtimes.
#
# <name> <transport> <url> <token variable>
# <name> <transport> <url or launcher> <token variable>
#
# transport is http (third column is a URL) or stdio (third column is a launcher
# under user/agents/mcp/, which receives the token as MCP_TOKEN).
#
# The token variable names an entry in user/agents/mcp/env, which is ignored by
# git. This file carries no secret, so it is tracked like the rest of user/ and
@@ -29,3 +32,8 @@ atlassian http https://mcp.atlassian.com/v1/mcp
# key from Penpot's Account > Integrations, and Penpot only reads it from the
# query string, hence {TOKEN}. The same key connects the in-file MCP plugin.
penpot http https://penpot.gbrown.org/mcp/stream?userToken={TOKEN} PENPOT_MCP_TOKEN
# Sentry for the self-hosted sentry.gbrown.org. A stdio server: the third column
# is a launcher under user/agents/mcp/, and the token reaches it as MCP_TOKEN.
# The hosted mcp.sentry.dev only speaks to sentry.io.
sentry-gbrown stdio bin/sentry-gbrown SENTRY_GBROWN_TOKEN