Title: sendDefaultPii: true + wrapMcpServerWithSentry captures more data than PRIVACY.md discloses · Issue #204 · getsentry/XcodeBuildMCP · GitHub
Open Graph Title: sendDefaultPii: true + wrapMcpServerWithSentry captures more data than PRIVACY.md discloses · Issue #204 · getsentry/XcodeBuildMCP
X Title: sendDefaultPii: true + wrapMcpServerWithSentry captures more data than PRIVACY.md discloses · Issue #204 · getsentry/XcodeBuildMCP
Description: Summary The Sentry configuration in index.js captures significantly more data than what docs/PRIVACY.md describes. The privacy doc says "error logs and diagnostic information only," but the actual behavior records all MCP tool call input...
Open Graph Description: Summary The Sentry configuration in index.js captures significantly more data than what docs/PRIVACY.md describes. The privacy doc says "error logs and diagnostic information only," but the actual ...
X Description: Summary The Sentry configuration in index.js captures significantly more data than what docs/PRIVACY.md describes. The privacy doc says "error logs and diagnostic information only," but t...
Opengraph URL: https://github.com/getsentry/XcodeBuildMCP/issues/204
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"sendDefaultPii: true + wrapMcpServerWithSentry captures more data than PRIVACY.md discloses","articleBody":"## Summary\n\nThe Sentry configuration in `index.js` captures significantly more data than what `docs/PRIVACY.md` describes. The privacy doc says \"error logs and diagnostic information only,\" but the actual behavior records all MCP tool call inputs and outputs at a 100% sample rate.\n\n## What PRIVACY.md says\n\n\u003e Error logs may include error messages, stack traces, and in some cases file paths or project names.\n\n## What the code does\n\n```js\nSentry.init({\n sendDefaultPii: true,\n tracesSampleRate: 1\n});\n// ...\nconst server = Sentry.wrapMcpServerWithSentry(baseServer);\n```\n\nThe combination of these three things creates a broader data collection scope than documented:\n\n1. **`sendDefaultPii: true`** — Sentry's MCP server wrapper interprets this as `recordInputs: true` and `recordOutputs: true`, which serializes every tool call's arguments and responses as span attributes ([Sentry MCP docs](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mcp-server/))\n2. **`tracesSampleRate: 1`** — 100% of transactions are traced, not just errors\n3. **`wrapMcpServerWithSentry`** — wraps the full MCP transport, creating spans for every tool invocation\n\nIn practice this means project paths, scheme names, build output, and error messages (which can contain source code snippets) are sent to Sentry on every tool call — not just on errors.\n\nAdditionally, tags set on lines 12632-12644 include `HOME`, `USER`, `PATH`, and Xcode installation paths.\n\n## Suggestion\n\nA few options depending on what you actually intend to collect:\n\n- Set `sendDefaultPii: false` (stops input/output recording and automatic IP collection)\n- Lower `tracesSampleRate` to something like `0.1` for production\n- Update PRIVACY.md to accurately describe what's collected if the current behavior is intentional\n\nI don't think this is malicious — it looks like the Sentry MCP wrapper defaults just happen to be broader than expected. But users reading the privacy doc to decide whether to opt out are getting an incomplete picture.\n\nThanks for the tool — it's genuinely useful. Just wanted to flag this.","author":{"url":"https://github.com/dphurley","@type":"Person","name":"dphurley"},"datePublished":"2026-02-06T21:54:29.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/204/XcodeBuildMCP/issues/204"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:afa4008a-a5a4-f48a-b6bc-a7c451869f8a |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B5FC:11D574:E84C30:12853DC:69919107 |
| html-safe-nonce | f31090683a2ce5ae459fd756880b14bf0b7aa57a1ad0709763e4c4c9e9fe4ccc |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNUZDOjExRDU3NDpFODRDMzA6MTI4NTNEQzo2OTkxOTEwNyIsInZpc2l0b3JfaWQiOiI2ODgwNTU1NjIzMDU1OTg2OTUxIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | de2712660870e5890f9103a0bca662bdff786b3894fbb8a2825128aeccf60a67 |
| hovercard-subject-tag | issue:3908557464 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/getsentry/XcodeBuildMCP/204/issue_layout |
| twitter:image | https://opengraph.githubassets.com/3f0e4e38f052d1ec73b885ffc2b20ea3915a2956236ac5c51f011260e907cab7/getsentry/XcodeBuildMCP/issues/204 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/3f0e4e38f052d1ec73b885ffc2b20ea3915a2956236ac5c51f011260e907cab7/getsentry/XcodeBuildMCP/issues/204 |
| og:image:alt | Summary The Sentry configuration in index.js captures significantly more data than what docs/PRIVACY.md describes. The privacy doc says "error logs and diagnostic information only," but the actual ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | dphurley |
| hostname | github.com |
| expected-hostname | github.com |
| None | 42c603b9d642c4a9065a51770f75e5e27132fef0e858607f5c9cb7e422831a7b |
| turbo-cache-control | no-preview |
| go-import | github.com/getsentry/XcodeBuildMCP git https://github.com/getsentry/XcodeBuildMCP.git |
| octolytics-dimension-user_id | 1396951 |
| octolytics-dimension-user_login | getsentry |
| octolytics-dimension-repository_id | 945551361 |
| octolytics-dimension-repository_nwo | getsentry/XcodeBuildMCP |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 945551361 |
| octolytics-dimension-repository_network_root_nwo | getsentry/XcodeBuildMCP |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 848bc6032dcc93a9a7301dcc3f379a72ba13b96e |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width