Skip to content

feat(mcp): scaffold @posthog/mcp package (1/2)#3652

Merged
lucasheriques merged 4 commits into
mainfrom
posthog-code/mcp-scaffold
May 28, 2026
Merged

feat(mcp): scaffold @posthog/mcp package (1/2)#3652
lucasheriques merged 4 commits into
mainfrom
posthog-code/mcp-scaffold

Conversation

@lucasheriques
Copy link
Copy Markdown
Contributor

@lucasheriques lucasheriques commented May 21, 2026

Summary

First half of a two-PR stack porting the previous standalone @posthog/mcp SDK into this monorepo. This PR is intentionally just the package skeleton — configs, monorepo wiring, a stub src/index.ts, and one placeholder test. The actual SDK implementation lands in the stacked follow-up: #3653.

Splitting it this way so reviewers can approve the wiring (build, lint, tests, release matrix, eslint overrides) in isolation from the ~3k-line SDK port.

What this PR contains

  • packages/mcp/package.json — npm name @posthog/mcp, workspace:* dep on @posthog/core, peer on @modelcontextprotocol/sdk.
  • packages/mcp/tsconfig.json + tsconfig.build.json extending the monorepo @posthog-tooling/tsconfig-base.
  • packages/mcp/rslib.config.ts — same dual ESM + CJS + .d.ts shape as posthog-node and @posthog/core.
  • packages/mcp/jest.config.mjs + babel.config.mjs matching posthog-node.
  • packages/mcp/.prettierrc (2-space, no-semi, single-quote, printWidth 120).
  • packages/mcp/README.md — install + usage stub.
  • packages/mcp/src/version.ts — generated by the prebuild script.
  • packages/mcp/src/index.tsstub exporting version only. Replaced by the real SDK entry in feat(mcp): implement @posthog/mcp SDK on top of @posthog/core (2/2) #3653.
  • packages/mcp/src/__tests__/scaffold.test.ts — single placeholder test so jest doesn't error on no tests found. Removed in feat(mcp): implement @posthog/mcp SDK on top of @posthog/core (2/2) #3653.
  • .eslintrc.cjs — adds packages/mcp/** to the existing no-console/relaxed override block.
  • .github/workflows/release.yml — adds @posthog/mcp to the publish matrix.
  • .changeset/posthog-mcp-initial.md — describes the cumulative @posthog/mcp 0.1.0 release.
  • pnpm-lock.yaml — lockfile update.

Test plan

  • pnpm --filter=@posthog/mcp build — clean.
  • pnpm --filter=@posthog/mcp test:unit — 1 placeholder test passing.
  • pnpm --filter=@posthog/mcp lint — clean.
  • CI passes on this PR.

Stack


Created with PostHog Code

@vercel
Copy link
Copy Markdown

vercel Bot commented May 21, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
posthog-example-next-app-router Ready Ready Preview May 28, 2026 12:52pm
posthog-js Ready Ready Preview May 28, 2026 12:52pm
posthog-nextjs-config Ready Ready Preview May 28, 2026 12:52pm

Request Review

Copy link
Copy Markdown
Contributor Author

lucasheriques commented May 21, 2026

@lucasheriques lucasheriques changed the title feat(mcp): scaffold @posthog/mcp package feat(mcp): scaffold @posthog/mcp package (1/2) May 21, 2026
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 21, 2026

Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 1
packages/mcp/src/version.ts:1
**`version.ts` committed but should be gitignored**

Every other package in this monorepo that uses the same `prebuild` pattern (`packages/node`, `packages/convex`, `packages/react-native`, `packages/web`) does **not** track the generated `version.ts` in git — confirmed via `git ls-files`. The `packages/mcp/` directory is missing a `.gitignore` that excludes `src/version.ts`. When changesets bumps the version in `package.json`, this committed file stays at `0.1.0` unless someone manually runs `pnpm build` first, meaning the `version` export could be published with a stale value. Add a `.gitignore` (containing at least `src/version.ts` and `dist/`) and remove the committed file from git tracking.

Reviews (1): Last reviewed commit: "feat(mcp): scaffold @posthog/mcp package" | Re-trigger Greptile

Comment thread packages/mcp/src/version.ts Outdated
@@ -0,0 +1 @@
export const version = '0.1.0'
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 version.ts committed but should be gitignored

Every other package in this monorepo that uses the same prebuild pattern (packages/node, packages/convex, packages/react-native, packages/web) does not track the generated version.ts in git — confirmed via git ls-files. The packages/mcp/ directory is missing a .gitignore that excludes src/version.ts. When changesets bumps the version in package.json, this committed file stays at 0.1.0 unless someone manually runs pnpm build first, meaning the version export could be published with a stale value. Add a .gitignore (containing at least src/version.ts and dist/) and remove the committed file from git tracking.

Prompt To Fix With AI
This is a comment left during a code review.
Path: packages/mcp/src/version.ts
Line: 1

Comment:
**`version.ts` committed but should be gitignored**

Every other package in this monorepo that uses the same `prebuild` pattern (`packages/node`, `packages/convex`, `packages/react-native`, `packages/web`) does **not** track the generated `version.ts` in git — confirmed via `git ls-files`. The `packages/mcp/` directory is missing a `.gitignore` that excludes `src/version.ts`. When changesets bumps the version in `package.json`, this committed file stays at `0.1.0` unless someone manually runs `pnpm build` first, meaning the `version` export could be published with a stale value. Add a `.gitignore` (containing at least `src/version.ts` and `dist/`) and remove the committed file from git tracking.

How can I resolve this? If you propose a fix, please make it concise.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed. Added packages/mcp/.gitignore (containing src/version.ts, dist/, coverage/) and git rm --cached-ed the committed src/version.ts. Pattern now matches posthog-node, posthog-react-native, and packages/web. prebuild regenerates it on every build.

@graphite-app
Copy link
Copy Markdown

graphite-app Bot commented May 21, 2026

Graphite Automations

"sdk release label" took an action on this PR • (05/21/26)

1 label was added to this PR based on Adam Bowker's automation.

"Add graphite merge queue [copy]" took an action on this PR • (05/21/26)

2 labels were added to this PR based on Lucas Faria's automation.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 21, 2026

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 21, 2026

Size Change: 0 B

Total Size: 16.4 MB

ℹ️ View Unchanged
Filename Size Change
packages/ai/dist/anthropic/index.cjs 26 kB 0 B
packages/ai/dist/anthropic/index.mjs 25.6 kB 0 B
packages/ai/dist/gemini/index.cjs 34.4 kB 0 B
packages/ai/dist/gemini/index.mjs 34.2 kB 0 B
packages/ai/dist/index.cjs 171 kB 0 B
packages/ai/dist/index.mjs 170 kB 0 B
packages/ai/dist/langchain/index.cjs 47.9 kB 0 B
packages/ai/dist/langchain/index.mjs 47.3 kB 0 B
packages/ai/dist/openai-agents/index.cjs 25.5 kB 0 B
packages/ai/dist/openai-agents/index.mjs 25.4 kB 0 B
packages/ai/dist/openai/index.cjs 50.7 kB 0 B
packages/ai/dist/openai/index.mjs 50.3 kB 0 B
packages/ai/dist/otel/index.cjs 5.68 kB 0 B
packages/ai/dist/otel/index.mjs 5.57 kB 0 B
packages/ai/dist/vercel/index.cjs 44.5 kB 0 B
packages/ai/dist/vercel/index.mjs 44.5 kB 0 B
packages/browser/dist/all-external-dependencies.js 261 kB 0 B
packages/browser/dist/array.full.es5.js 348 kB 0 B
packages/browser/dist/array.full.js 430 kB 0 B
packages/browser/dist/array.full.no-********.js 503 kB 0 B
packages/browser/dist/array.js 192 kB 0 B
packages/browser/dist/array.no-********.js 209 kB 0 B
packages/browser/dist/conversations.js 67.3 kB 0 B
packages/browser/dist/crisp-chat-integration.js 1.97 kB 0 B
packages/browser/dist/customizations.full.js 18 kB 0 B
packages/browser/dist/dead-clicks-autocapture.js 14.3 kB 0 B
packages/browser/dist/default-extensions.js 190 kB 0 B
packages/browser/dist/element-inference.js 5.69 kB 0 B
packages/browser/dist/exception-autocapture.js 11.8 kB 0 B
packages/browser/dist/extension-bundles.js 106 kB 0 B
packages/browser/dist/external-scripts-loader.js 3.13 kB 0 B
packages/browser/dist/intercom-integration.js 2.03 kB 0 B
packages/browser/dist/lazy-********.js 151 kB 0 B
packages/browser/dist/logs.js 40.6 kB 0 B
packages/browser/dist/main.js 196 kB 0 B
packages/browser/dist/module.full.js 432 kB 0 B
packages/browser/dist/module.full.no-********.js 506 kB 0 B
packages/browser/dist/module.js 196 kB 0 B
packages/browser/dist/module.no-********.js 213 kB 0 B
packages/browser/dist/module.slim.js 102 kB 0 B
packages/browser/dist/module.slim.no-********.js 107 kB 0 B
packages/browser/dist/posthog-********.js 151 kB 0 B
packages/browser/dist/product-tours-preview.js 76.4 kB 0 B
packages/browser/dist/product-tours.js 115 kB 0 B
packages/browser/dist/recorder-v2.js 99 kB 0 B
packages/browser/dist/recorder.js 99 kB 0 B
packages/browser/dist/rrweb-plugin-console-record.js 6.67 kB 0 B
packages/browser/dist/rrweb-types.js 2.28 kB 0 B
packages/browser/dist/rrweb.js 280 kB 0 B
packages/browser/dist/surveys-preview.js 76.3 kB 0 B
packages/browser/dist/surveys.js 94.7 kB 0 B
packages/browser/dist/tracing-headers.js 1.84 kB 0 B
packages/browser/dist/web-vitals-with-attribution.js 11.8 kB 0 B
packages/browser/dist/web-vitals.js 6.39 kB 0 B
packages/browser/react/dist/esm/index.js 21.2 kB 0 B
packages/browser/react/dist/esm/slim/index.js 17.6 kB 0 B
packages/browser/react/dist/esm/surveys/index.js 4.68 kB 0 B
packages/browser/react/dist/umd/index.js 24.4 kB 0 B
packages/browser/react/dist/umd/slim/index.js 20.4 kB 0 B
packages/browser/react/dist/umd/surveys/index.js 5.45 kB 0 B
packages/convex/dist/client/feature-flags/crypto.js 461 B 0 B
packages/convex/dist/client/feature-flags/evaluator.js 16.5 kB 0 B
packages/convex/dist/client/feature-flags/index.js 196 B 0 B
packages/convex/dist/client/feature-flags/match-********.js 14.8 kB 0 B
packages/convex/dist/client/feature-flags/types.js 44 B 0 B
packages/convex/dist/client/index.js 14.7 kB 0 B
packages/convex/dist/component/_generated/api.js 712 B 0 B
packages/convex/dist/component/_generated/component.js 212 B 0 B
packages/convex/dist/component/_generated/dataModel.js 230 B 0 B
packages/convex/dist/component/_generated/server.js 3.74 kB 0 B
packages/convex/dist/component/convex.config.js 1.11 kB 0 B
packages/convex/dist/component/crons.js 2.26 kB 0 B
packages/convex/dist/component/lib.js 22 kB 0 B
packages/convex/dist/component/schema.js 694 B 0 B
packages/convex/dist/component/version.js 67 B 0 B
packages/core/dist/cookie.js 5.34 kB 0 B
packages/core/dist/cookie.mjs 3.12 kB 0 B
packages/core/dist/error-tracking/chunk-ids.js 2.54 kB 0 B
packages/core/dist/error-tracking/chunk-ids.mjs 1.31 kB 0 B
packages/core/dist/error-tracking/coercers/dom-exception-coercer.js 2.3 kB 0 B
packages/core/dist/error-tracking/coercers/dom-exception-coercer.mjs 993 B 0 B
packages/core/dist/error-tracking/coercers/error-coercer.js 2.02 kB 0 B
packages/core/dist/error-tracking/coercers/error-coercer.mjs 794 B 0 B
packages/core/dist/error-tracking/coercers/error-event-coercer.js 1.76 kB 0 B
packages/core/dist/error-tracking/coercers/error-event-coercer.mjs 513 B 0 B
packages/core/dist/error-tracking/coercers/event-coercer.js 1.82 kB 0 B
packages/core/dist/error-tracking/coercers/event-coercer.mjs 548 B 0 B
packages/core/dist/error-tracking/coercers/index.js 6.79 kB 0 B
packages/core/dist/error-tracking/coercers/index.mjs 326 B 0 B
packages/core/dist/error-tracking/coercers/object-coercer.js 3.46 kB 0 B
packages/core/dist/error-tracking/coercers/object-coercer.mjs 2.07 kB 0 B
packages/core/dist/error-tracking/coercers/primitive-coercer.js 1.67 kB 0 B
packages/core/dist/error-tracking/coercers/primitive-coercer.mjs 419 B 0 B
packages/core/dist/error-tracking/coercers/promise-rejection-event.js 2.59 kB 0 B
packages/core/dist/error-tracking/coercers/promise-rejection-event.mjs 1.25 kB 0 B
packages/core/dist/error-tracking/coercers/string-coercer.js 2.01 kB 0 B
packages/core/dist/error-tracking/coercers/string-coercer.mjs 820 B 0 B
packages/core/dist/error-tracking/coercers/utils.js 2.06 kB 0 B
packages/core/dist/error-tracking/coercers/utils.mjs 716 B 0 B
packages/core/dist/error-tracking/error-properties-builder.js 5.56 kB 0 B
packages/core/dist/error-tracking/error-properties-builder.mjs 4.23 kB 0 B
packages/core/dist/error-tracking/exception-steps.js 6.87 kB 0 B
packages/core/dist/error-tracking/exception-steps.mjs 4.71 kB 0 B
packages/core/dist/error-tracking/index.js 4.74 kB 0 B
packages/core/dist/error-tracking/index.mjs 191 B 0 B
packages/core/dist/error-tracking/parsers/base.js 1.83 kB 0 B
packages/core/dist/error-tracking/parsers/base.mjs 464 B 0 B
packages/core/dist/error-tracking/parsers/chrome.js 2.73 kB 0 B
packages/core/dist/error-tracking/parsers/chrome.mjs 1.32 kB 0 B
packages/core/dist/error-tracking/parsers/gecko.js 2.47 kB 0 B
packages/core/dist/error-tracking/parsers/gecko.mjs 1.13 kB 0 B
packages/core/dist/error-tracking/parsers/index.js 4.75 kB 0 B
packages/core/dist/error-tracking/parsers/index.mjs 2.1 kB 0 B
packages/core/dist/error-tracking/parsers/node.js 3.94 kB 0 B
packages/core/dist/error-tracking/parsers/node.mjs 2.68 kB 0 B
packages/core/dist/error-tracking/parsers/opera.js 2.26 kB 0 B
packages/core/dist/error-tracking/parsers/opera.mjs 746 B 0 B
packages/core/dist/error-tracking/parsers/safari.js 1.88 kB 0 B
packages/core/dist/error-tracking/parsers/safari.mjs 574 B 0 B
packages/core/dist/error-tracking/parsers/winjs.js 1.72 kB 0 B
packages/core/dist/error-tracking/parsers/winjs.mjs 426 B 0 B
packages/core/dist/error-tracking/types.js 1.33 kB 0 B
packages/core/dist/error-tracking/types.mjs 131 B 0 B
packages/core/dist/error-tracking/utils.js 1.8 kB 0 B
packages/core/dist/error-tracking/utils.mjs 604 B 0 B
packages/core/dist/eventemitter.js 1.78 kB 0 B
packages/core/dist/eventemitter.mjs 571 B 0 B
packages/core/dist/featureFlagUtils.js 6.8 kB 0 B
packages/core/dist/featureFlagUtils.mjs 4.32 kB 0 B
packages/core/dist/gzip.js 5.72 kB 0 B
packages/core/dist/gzip.mjs 3.84 kB 0 B
packages/core/dist/index.js 13.6 kB 0 B
packages/core/dist/index.mjs 1.31 kB 0 B
packages/core/dist/logs/index.js 9.47 kB 0 B
packages/core/dist/logs/index.mjs 7.87 kB 0 B
packages/core/dist/logs/logs-utils.js 5.96 kB 0 B
packages/core/dist/logs/logs-utils.mjs 3.99 kB 0 B
packages/core/dist/logs/types.js 603 B 0 B
packages/core/dist/logs/types.mjs 0 B 0 B 🆕
packages/core/dist/posthog-core-stateless.js 33.8 kB 0 B
packages/core/dist/posthog-core-stateless.mjs 31.1 kB 0 B
packages/core/dist/posthog-core.js 42 kB 0 B
packages/core/dist/posthog-core.mjs 37 kB 0 B
packages/core/dist/surveys/events.js 4.21 kB 0 B
packages/core/dist/surveys/events.mjs 1.99 kB 0 B
packages/core/dist/surveys/index.js 4.57 kB 0 B
packages/core/dist/surveys/index.mjs 894 B 0 B
packages/core/dist/surveys/translations.js 9.4 kB 0 B
packages/core/dist/surveys/translations.mjs 7.03 kB 0 B
packages/core/dist/surveys/validation.js 3.06 kB 0 B
packages/core/dist/surveys/validation.mjs 1.51 kB 0 B
packages/core/dist/testing/index.js 2.93 kB 0 B
packages/core/dist/testing/index.mjs 79 B 0 B
packages/core/dist/testing/PostHogCoreTestClient.js 3.15 kB 0 B
packages/core/dist/testing/PostHogCoreTestClient.mjs 1.74 kB 0 B
packages/core/dist/testing/test-utils.js 2.83 kB 0 B
packages/core/dist/testing/test-utils.mjs 1.15 kB 0 B
packages/core/dist/tracing-headers.js 3.38 kB 0 B
packages/core/dist/tracing-headers.mjs 2.08 kB 0 B
packages/core/dist/types.js 9.62 kB 0 B
packages/core/dist/types.mjs 7.07 kB 0 B
packages/core/dist/utils/bot-detection.js 3.28 kB 0 B
packages/core/dist/utils/bot-detection.mjs 1.95 kB 0 B
packages/core/dist/utils/bucketed-rate-limiter.js 3 kB 0 B
packages/core/dist/utils/bucketed-rate-limiter.mjs 1.62 kB 0 B
packages/core/dist/utils/index.js 11.9 kB 0 B
packages/core/dist/utils/index.mjs 1.98 kB 0 B
packages/core/dist/utils/logger.js 2.58 kB 0 B
packages/core/dist/utils/logger.mjs 1.29 kB 0 B
packages/core/dist/utils/number-utils.js 3.32 kB 0 B
packages/core/dist/utils/number-utils.mjs 1.68 kB 0 B
packages/core/dist/utils/promise-queue.js 2 kB 0 B
packages/core/dist/utils/promise-queue.mjs 768 B 0 B
packages/core/dist/utils/string-utils.js 2.73 kB 0 B
packages/core/dist/utils/string-utils.mjs 1.09 kB 0 B
packages/core/dist/utils/type-utils.js 7.04 kB 0 B
packages/core/dist/utils/type-utils.mjs 3.11 kB 0 B
packages/core/dist/utils/user-agent-utils.js 15.5 kB 0 B
packages/core/dist/utils/user-agent-utils.mjs 12.4 kB 0 B
packages/core/dist/vendor/uuidv7.js 8.29 kB 0 B
packages/core/dist/vendor/uuidv7.mjs 6.72 kB 0 B
packages/mcp/dist/index.js 1.29 kB 0 B
packages/mcp/dist/index.mjs 61 B 0 B
packages/mcp/dist/version.js 1.21 kB 0 B
packages/mcp/dist/version.mjs 45 B 0 B
packages/next/dist/app/PostHogProvider.js 3.33 kB 0 B
packages/next/dist/client/ClientPostHogProvider.js 1.76 kB 0 B
packages/next/dist/client/hooks.js 172 B 0 B
packages/next/dist/client/PostHogPageView.js 1.76 kB 0 B
packages/next/dist/index.client.js 401 B 0 B
packages/next/dist/index.edge.js 447 B 0 B
packages/next/dist/index.js 444 B 0 B
packages/next/dist/index.react-server.js 420 B 0 B
packages/next/dist/middleware/postHogMiddleware.js 3.7 kB 0 B
packages/next/dist/pages.client.js 502 B 0 B
packages/next/dist/pages.edge.js 570 B 0 B
packages/next/dist/pages.js 414 B 0 B
packages/next/dist/pages/getServerSidePostHog.js 1.99 kB 0 B
packages/next/dist/pages/PostHogPageView.js 1.32 kB 0 B
packages/next/dist/pages/PostHogProvider.js 1.61 kB 0 B
packages/next/dist/server/getPostHog.js 2.79 kB 0 B
packages/next/dist/server/nodeClientCache.js 1.31 kB 0 B
packages/next/dist/shared/browser.js 195 B 0 B
packages/next/dist/shared/config.js 2.08 kB 0 B
packages/next/dist/shared/constants.js 201 B 0 B
packages/next/dist/shared/cookie.js 540 B 0 B
packages/next/dist/shared/identity.js 264 B 0 B
packages/next/dist/shared/tracing-headers.js 2.18 kB 0 B
packages/nextjs-config/dist/config.js 5.82 kB 0 B
packages/nextjs-config/dist/config.mjs 4.34 kB 0 B
packages/nextjs-config/dist/index.js 2.24 kB 0 B
packages/nextjs-config/dist/index.mjs 30 B 0 B
packages/nextjs-config/dist/utils.js 2.94 kB 0 B
packages/nextjs-config/dist/utils.mjs 826 B 0 B
packages/node/dist/client.js 45.5 kB 0 B
packages/node/dist/client.mjs 43.2 kB 0 B
packages/node/dist/entrypoints/index.edge.js 4.25 kB 0 B
packages/node/dist/entrypoints/index.edge.mjs 723 B 0 B
packages/node/dist/entrypoints/index.node.js 6.04 kB 0 B
packages/node/dist/entrypoints/index.node.mjs 1.22 kB 0 B
packages/node/dist/entrypoints/nestjs.js 2.31 kB 0 B
packages/node/dist/entrypoints/nestjs.mjs 42 B 0 B
packages/node/dist/experimental.js 870 B 0 B
packages/node/dist/experimental.mjs 267 B 0 B
packages/node/dist/exports.js 6.75 kB 0 B
packages/node/dist/exports.mjs 582 B 0 B
packages/node/dist/extensions/context/context.js 2.13 kB 0 B
packages/node/dist/extensions/context/context.mjs 863 B 0 B
packages/node/dist/extensions/context/types.js 603 B 0 B
packages/node/dist/extensions/context/types.mjs 0 B 0 B 🆕
packages/node/dist/extensions/error-tracking/autocapture.js 2.66 kB 0 B
packages/node/dist/extensions/error-tracking/autocapture.mjs 1.24 kB 0 B
packages/node/dist/extensions/error-tracking/index.js 4.14 kB 0 B
packages/node/dist/extensions/error-tracking/index.mjs 2.87 kB 0 B
packages/node/dist/extensions/error-tracking/modifiers/context-lines.node.js 8.81 kB 0 B
packages/node/dist/extensions/error-tracking/modifiers/context-lines.node.mjs 7.15 kB 0 B
packages/node/dist/extensions/error-tracking/modifiers/module.node.js 2.78 kB 0 B
packages/node/dist/extensions/error-tracking/modifiers/module.node.mjs 1.45 kB 0 B
packages/node/dist/extensions/error-tracking/modifiers/relative-path.node.js 1.97 kB 0 B
packages/node/dist/extensions/error-tracking/modifiers/relative-path.node.mjs 624 B 0 B
packages/node/dist/extensions/express.js 4.56 kB 0 B
packages/node/dist/extensions/express.mjs 2.45 kB 0 B
packages/node/dist/extensions/feature-flags/cache.js 603 B 0 B
packages/node/dist/extensions/feature-flags/cache.mjs 0 B 0 B 🆕
packages/node/dist/extensions/feature-flags/crypto.js 1.57 kB 0 B
packages/node/dist/extensions/feature-flags/crypto.mjs 395 B 0 B
packages/node/dist/extensions/feature-flags/feature-flags.js 40.6 kB 0 B
packages/node/dist/extensions/feature-flags/feature-flags.mjs 38.5 kB 0 B
packages/node/dist/extensions/nestjs.js 5 kB 0 B
packages/node/dist/extensions/nestjs.mjs 2.9 kB 0 B
packages/node/dist/extensions/sentry-integration.js 4.66 kB 0 B
packages/node/dist/extensions/sentry-integration.mjs 3.17 kB 0 B
packages/node/dist/extensions/tracing-headers.js 3.31 kB 0 B
packages/node/dist/extensions/tracing-headers.mjs 1.53 kB 0 B
packages/node/dist/feature-flag-evaluations.js 5.97 kB 0 B
packages/node/dist/feature-flag-evaluations.mjs 4.63 kB 0 B
packages/node/dist/storage-memory.js 1.52 kB 0 B
packages/node/dist/storage-memory.mjs 297 B 0 B
packages/node/dist/types.js 1.43 kB 0 B
packages/node/dist/types.mjs 224 B 0 B
packages/node/dist/version.js 1.21 kB 0 B
packages/node/dist/version.mjs 46 B 0 B
packages/nuxt/dist/module.mjs 5.29 kB 0 B
packages/nuxt/dist/runtime/composables/useFeatureFlagEnabled.js 566 B 0 B
packages/nuxt/dist/runtime/composables/useFeatureFlagPayload.js 690 B 0 B
packages/nuxt/dist/runtime/composables/useFeatureFlagVariantKey.js 591 B 0 B
packages/nuxt/dist/runtime/composables/usePostHog.js 128 B 0 B
packages/nuxt/dist/runtime/nitro-plugin.js 1.08 kB 0 B
packages/nuxt/dist/runtime/vue-plugin.js 1.14 kB 0 B
packages/plugin-utils/dist/cli.js 3.14 kB 0 B
packages/plugin-utils/dist/cli.mjs 1.64 kB 0 B
packages/plugin-utils/dist/config.js 3.07 kB 0 B
packages/plugin-utils/dist/config.mjs 1.83 kB 0 B
packages/plugin-utils/dist/index.js 4.3 kB 0 B
packages/plugin-utils/dist/index.mjs 217 B 0 B
packages/plugin-utils/dist/spawn-local.js 2.17 kB 0 B
packages/plugin-utils/dist/spawn-local.mjs 918 B 0 B
packages/plugin-utils/dist/utils.js 3.27 kB 0 B
packages/plugin-utils/dist/utils.mjs 1.3 kB 0 B
packages/react-native/dist/autocapture.js 5.05 kB 0 B
packages/react-native/dist/error-tracking/index.js 7.36 kB 0 B
packages/react-native/dist/error-tracking/utils.js 2.58 kB 0 B
packages/react-native/dist/frameworks/wix-navigation.js 1.3 kB 0 B
packages/react-native/dist/hooks/useFeatureFlag.js 1.7 kB 0 B
packages/react-native/dist/hooks/useFeatureFlagResult.js 963 B 0 B
packages/react-native/dist/hooks/useFeatureFlags.js 921 B 0 B
packages/react-native/dist/hooks/useNavigationTracker.js 2.45 kB 0 B
packages/react-native/dist/hooks/usePostHog.js 544 B 0 B
packages/react-native/dist/hooks/utils.js 988 B 0 B
packages/react-native/dist/index.js 4.33 kB 0 B
packages/react-native/dist/logs-********.js 3.32 kB 0 B
packages/react-native/dist/native-deps.js 8.77 kB 0 B
packages/react-native/dist/optional/OptionalAsyncStorage.js 299 B 0 B
packages/react-native/dist/optional/OptionalExpoApplication.js 377 B 0 B
packages/react-native/dist/optional/OptionalExpoDevice.js 347 B 0 B
packages/react-native/dist/optional/OptionalExpoFileSystem.js 386 B 0 B
packages/react-native/dist/optional/OptionalExpoFileSystemLegacy.js 423 B 0 B
packages/react-native/dist/optional/OptionalExpoLocalization.js 383 B 0 B
packages/react-native/dist/optional/OptionalReactNativeDeviceInfo.js 415 B 0 B
packages/react-native/dist/optional/OptionalReactNativeLocalize.js 303 B 0 B
packages/react-native/dist/optional/OptionalReactNativeNavigation.js 415 B 0 B
packages/react-native/dist/optional/OptionalReactNativeNavigationWix.js 443 B 0 B
packages/react-native/dist/optional/OptionalReactNativeSafeArea.js 644 B 0 B
packages/react-native/dist/optional/OptionalReactNativeSvg.js 872 B 0 B
packages/react-native/dist/optional/OptionalSessionReplay.js 455 B 0 B
packages/react-native/dist/posthog-rn.js 46 kB 0 B
packages/react-native/dist/PostHogContext.js 329 B 0 B
packages/react-native/dist/PostHogErrorBoundary.js 3.19 kB 0 B
packages/react-native/dist/PostHogMaskView.js 1.68 kB 0 B
packages/react-native/dist/PostHogProvider.js 4.55 kB 0 B
packages/react-native/dist/storage.js 5.2 kB 0 B
packages/react-native/dist/surveys/components/BottomSection.js 1.46 kB 0 B
packages/react-native/dist/surveys/components/Cancel.js 909 B 0 B
packages/react-native/dist/surveys/components/ConfirmationMessage.js 1.65 kB 0 B
packages/react-native/dist/surveys/components/QuestionHeader.js 1.37 kB 0 B
packages/react-native/dist/surveys/components/QuestionTypes.js 13.3 kB 0 B
packages/react-native/dist/surveys/components/SurveyModal.js 6.27 kB 0 B
packages/react-native/dist/surveys/components/Surveys.js 6.58 kB 0 B
packages/react-native/dist/surveys/getActiveMatchingSurveys.js 2.64 kB 0 B
packages/react-native/dist/surveys/icons.js 9.97 kB 0 B
packages/react-native/dist/surveys/index.js 600 B 0 B
packages/react-native/dist/surveys/PostHogSurveyProvider.js 6.28 kB 0 B
packages/react-native/dist/surveys/survey-translations.js 1.11 kB 0 B
packages/react-native/dist/surveys/surveys-utils.js 14.2 kB 0 B
packages/react-native/dist/surveys/useActivatedSurveys.js 3.67 kB 0 B
packages/react-native/dist/surveys/useSurveyStorage.js 2.16 kB 0 B
packages/react-native/dist/tooling/expoconfig.js 4.02 kB 0 B
packages/react-native/dist/tooling/metroconfig.js 2.32 kB 0 B
packages/react-native/dist/tooling/posthogMetroSerializer.js 4.86 kB 0 B
packages/react-native/dist/tooling/utils.js 4.05 kB 0 B
packages/react-native/dist/tooling/vendor/expo/expoconfig.js 70 B 0 B
packages/react-native/dist/tooling/vendor/metro/countLines.js 237 B 0 B
packages/react-native/dist/tooling/vendor/metro/utils.js 3.35 kB 0 B
packages/react-native/dist/types.js 70 B 0 B
packages/react-native/dist/utils.js 1.14 kB 0 B
packages/react-native/dist/version.js 130 B 0 B
packages/react/dist/esm/index.js 21.2 kB 0 B
packages/react/dist/esm/slim/index.js 17.6 kB 0 B
packages/react/dist/esm/surveys/index.js 4.68 kB 0 B
packages/react/dist/umd/index.js 24.4 kB 0 B
packages/react/dist/umd/slim/index.js 20.4 kB 0 B
packages/react/dist/umd/surveys/index.js 5.45 kB 0 B
packages/rollup-plugin/dist/index.js 2.44 kB 0 B
packages/rrweb/all/dist/rrweb-all.cjs 612 kB 0 B
packages/rrweb/all/dist/rrweb-all.js 612 kB 0 B
packages/rrweb/all/dist/rrweb-all.umd.cjs 615 kB 0 B
packages/rrweb/all/dist/rrweb-all.umd.min.cjs 290 kB 0 B
packages/rrweb/packer/dist/base-********.js 18.2 kB 0 B
packages/rrweb/packer/dist/base-********.cjs 18.3 kB 0 B
packages/rrweb/packer/dist/base-********.umd.cjs 18.7 kB 0 B
packages/rrweb/packer/dist/base-********.umd.min.cjs 9.5 kB 0 B
packages/rrweb/packer/dist/pack.cjs 347 B 0 B
packages/rrweb/packer/dist/pack.js 285 B 0 B
packages/rrweb/packer/dist/pack.umd.cjs 1.63 kB 0 B
packages/rrweb/packer/dist/pack.umd.min.cjs 1.11 kB 0 B
packages/rrweb/packer/dist/packer.cjs 257 B 0 B
packages/rrweb/packer/dist/packer.js 136 B 0 B
packages/rrweb/packer/dist/packer.umd.cjs 662 B 0 B
packages/rrweb/packer/dist/packer.umd.min.cjs 626 B 0 B
packages/rrweb/packer/dist/unpack.cjs 769 B 0 B
packages/rrweb/packer/dist/unpack.js 702 B 0 B
packages/rrweb/packer/dist/unpack.umd.cjs 1.17 kB 0 B
packages/rrweb/packer/dist/unpack.umd.min.cjs 955 B 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.cjs 37.6 kB 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.js 37.5 kB 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.umd.cjs 38 kB 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.umd.min.cjs 22.2 kB 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.cjs 34.3 kB 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.js 34.2 kB 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.umd.cjs 34.7 kB 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.umd.min.cjs 20.5 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.cjs 14.9 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.js 14.8 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.umd.cjs 15.4 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.umd.min.cjs 7.33 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.cjs 5.01 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.js 4.9 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.umd.cjs 5.44 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.umd.min.cjs 2.64 kB 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.cjs 681 B 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.js 548 B 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.umd.cjs 1.12 kB 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.umd.min.cjs 829 B 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.cjs 933 B 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.js 820 B 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.umd.cjs 1.37 kB 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.umd.min.cjs 968 B 0 B
packages/rrweb/record/dist/rrweb-record.cjs 174 kB 0 B
packages/rrweb/record/dist/rrweb-record.js 174 kB 0 B
packages/rrweb/record/dist/rrweb-record.umd.cjs 174 kB 0 B
packages/rrweb/record/dist/rrweb-record.umd.min.cjs 83.5 kB 0 B
packages/rrweb/replay/dist/rrweb-replay.cjs 440 kB 0 B
packages/rrweb/replay/dist/rrweb-replay.js 440 kB 0 B
packages/rrweb/replay/dist/rrweb-replay.umd.cjs 443 kB 0 B
packages/rrweb/replay/dist/rrweb-replay.umd.min.cjs 210 kB 0 B
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.cjs 150 kB 0 B
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.js 149 kB 0 B
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.umd.cjs 152 kB 0 B
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.umd.min.cjs 70.8 kB 0 B
packages/rrweb/rrdom/dist/rrdom.cjs 174 kB 0 B
packages/rrweb/rrdom/dist/rrdom.js 173 kB 0 B
packages/rrweb/rrdom/dist/rrdom.umd.cjs 175 kB 0 B
packages/rrweb/rrdom/dist/rrdom.umd.min.cjs 80.8 kB 0 B
packages/rrweb/rrweb-snapshot/dist/record.cjs 32.6 kB 0 B
packages/rrweb/rrweb-snapshot/dist/record.js 31.6 kB 0 B
packages/rrweb/rrweb-snapshot/dist/record.umd.cjs 53.9 kB 0 B
packages/rrweb/rrweb-snapshot/dist/record.umd.min.cjs 25.8 kB 0 B
packages/rrweb/rrweb-snapshot/dist/replay.cjs 138 kB 0 B
packages/rrweb/rrweb-snapshot/dist/replay.js 137 kB 0 B
packages/rrweb/rrweb-snapshot/dist/replay.umd.cjs 161 kB 0 B
packages/rrweb/rrweb-snapshot/dist/replay.umd.min.cjs 74 kB 0 B
packages/rrweb/rrweb-snapshot/dist/rrweb-********.cjs 2.27 kB 0 B
packages/rrweb/rrweb-snapshot/dist/rrweb-********.js 1.42 kB 0 B
packages/rrweb/rrweb-snapshot/dist/rrweb-********.umd.cjs 218 kB 0 B
packages/rrweb/rrweb-snapshot/dist/rrweb-********.umd.min.cjs 92 kB 0 B
packages/rrweb/rrweb-snapshot/dist/types-********.cjs 18.3 kB 0 B
packages/rrweb/rrweb-snapshot/dist/types-********.umd.cjs 18.8 kB 0 B
packages/rrweb/rrweb-snapshot/dist/types-********.umd.min.cjs 9.31 kB 0 B
packages/rrweb/rrweb-snapshot/dist/types-********.js 17.8 kB 0 B
packages/rrweb/rrweb/dist/rrweb.cjs 595 kB 0 B
packages/rrweb/rrweb/dist/rrweb.js 595 kB 0 B
packages/rrweb/rrweb/dist/rrweb.umd.cjs 596 kB 0 B
packages/rrweb/rrweb/dist/rrweb.umd.min.cjs 281 kB 0 B
packages/rrweb/types/dist/rrweb-types.cjs 5.64 kB 0 B
packages/rrweb/types/dist/rrweb-types.js 5.38 kB 0 B
packages/rrweb/types/dist/rrweb-types.umd.cjs 6.04 kB 0 B
packages/rrweb/types/dist/rrweb-types.umd.min.cjs 2.8 kB 0 B
packages/rrweb/utils/dist/rrweb-utils.cjs 6.41 kB 0 B
packages/rrweb/utils/dist/rrweb-utils.js 5.95 kB 0 B
packages/rrweb/utils/dist/rrweb-utils.umd.cjs 6.82 kB 0 B
packages/rrweb/utils/dist/rrweb-utils.umd.min.cjs 3.51 kB 0 B
packages/types/dist/capture-log.js 603 B 0 B
packages/types/dist/capture-log.mjs 0 B 0 B 🆕
packages/types/dist/capture.js 603 B 0 B
packages/types/dist/capture.mjs 0 B 0 B 🆕
packages/types/dist/common.js 603 B 0 B
packages/types/dist/common.mjs 0 B 0 B 🆕
packages/types/dist/feature-flags.js 603 B 0 B
packages/types/dist/feature-flags.mjs 0 B 0 B 🆕
packages/types/dist/index.js 603 B 0 B
packages/types/dist/index.mjs 0 B 0 B 🆕
packages/types/dist/posthog-config.js 603 B 0 B
packages/types/dist/posthog-config.mjs 0 B 0 B 🆕
packages/types/dist/posthog.js 603 B 0 B
packages/types/dist/posthog.mjs 0 B 0 B 🆕
packages/types/dist/request.js 603 B 0 B
packages/types/dist/request.mjs 0 B 0 B 🆕
packages/types/dist/segment.js 603 B 0 B
packages/types/dist/segment.mjs 0 B 0 B 🆕
packages/types/dist/session-recording.js 603 B 0 B
packages/types/dist/session-recording.mjs 0 B 0 B 🆕
packages/types/dist/survey.js 603 B 0 B
packages/types/dist/survey.mjs 0 B 0 B 🆕
packages/types/dist/toolbar.js 603 B 0 B
packages/types/dist/toolbar.mjs 0 B 0 B 🆕
packages/types/dist/tree-shakeable.js 603 B 0 B
packages/types/dist/tree-shakeable.mjs 0 B 0 B 🆕
packages/web/dist/index.cjs 13.8 kB 0 B
packages/web/dist/index.mjs 13.7 kB 0 B
packages/webpack-plugin/dist/config.js 1.53 kB 0 B
packages/webpack-plugin/dist/config.mjs 543 B 0 B
packages/webpack-plugin/dist/index.js 5.38 kB 0 B
packages/webpack-plugin/dist/index.mjs 2.04 kB 0 B
tooling/changelog/dist/index.js 3.31 kB 0 B
tooling/rollup-utils/dist/index.js 1.17 kB 0 B

compressed-size-action

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 21, 2026

📝 No Changeset Found

This PR doesn't include a changeset. A changeset is required to release a new version.

How to add a changeset

Run this command and follow the prompts:

pnpm changeset

Remember: Never use major version bumps for posthog-js as it's autoloaded by clients.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 21, 2026

⚠️ `@posthog/mcp` is modified but this PR has no changeset

This is informational — the PR is not blocked. Click the triangle above to collapse, or push a fix and this comment will auto-delete.

Modified in this PR but no changeset added:

  • @posthog/mcp

If this change should ship, run pnpm changeset and select a bump level.
If it isn't user-facing (refactor with no behavior change, internal tooling, generated files), no action needed.

Comment thread packages/mcp/package.json Outdated
Comment on lines +14 to +18
"test:unit": "jest",
"prebuild": "node -p \"'export const version = \\'' + require('./package.json').version + '\\''\" > src/version.ts",
"build": "rslib build",
"dev": "rslib build -w",
"prepublishOnly": "pnpm lint && pnpm test:unit && pnpm build",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test script will fail because it depends on src/version.ts which doesn't exist until prebuild runs. The prepublishOnly script runs test:unit before build, causing tests to fail during publish.

// src/index.ts imports from './version'
import { version } from './version'

// src/__tests__/scaffold.test.ts tests this import
import { version } from '../index'

// But src/version.ts is only created by prebuild script
// and prepublishOnly runs: test:unit THEN build

Fix by either:

  1. Adding a pretest:unit script that generates version.ts
  2. Reordering prepublishOnly to run build before tests
  3. Creating a default version.ts file in the repo
Suggested change
"test:unit": "jest",
"prebuild": "node -p \"'export const version = \\'' + require('./package.json').version + '\\''\" > src/version.ts",
"build": "rslib build",
"dev": "rslib build -w",
"prepublishOnly": "pnpm lint && pnpm test:unit && pnpm build",
"test:unit": "jest",
"prebuild": "node -p \"'export const version = \\'' + require('./package.json').version + '\\''\" > src/version.ts",
"build": "rslib build",
"dev": "rslib build -w",
"prepublishOnly": "pnpm lint && pnpm build && pnpm test:unit",

Spotted by Graphite

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed in af0ce7b. extracted the version generator into a reusable generate-version script and hooked it from both pretest:unit and prebuild. also reordered prepublishOnly so build runs before test:unit. confirmed pnpm --filter=@posthog/mcp test:unit now works against a fresh checkout.

Copy link
Copy Markdown
Contributor

@mendral-app mendral-app Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Supply Chain Security Review

⚠️ Review recommended — 2 findings in 1 file

⚠️ @modelcontextprotocol/sdk@1.24.3 — two HIGH advisories, fixes available

The resolved devDependency version (1.24.3) is affected by:

Since @modelcontextprotocol/sdk is a devDependency (used for type-checking/testing only) and the package is currently scaffolding-only, runtime risk is negligible today. However, the peerDependencies spec (>=1.11) will allow consumers to use vulnerable versions without warning once this package ships real functionality.

Recommend bumping both the devDependency and the peerDependency floor before the implementation PR lands.

Tag @mendral-app with feedback or questions. View session

Comment thread packages/mcp/package.json Outdated
"devDependencies": {
"@babel/preset-env": "catalog:",
"@babel/preset-typescript": "catalog:",
"@modelcontextprotocol/sdk": "~1.24.2",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

security (P2): devDependency resolves to @modelcontextprotocol/sdk@1.24.3, which is affected by GHSA-345p-7cg4-v4c7 (data leak, fixed 1.26.0) and GHSA-8r9q-7v3j-jr4g (ReDoS, fixed 1.25.2). Bump to a patched range.

Suggested change
Suggested change
"@modelcontextprotocol/sdk": "~1.24.2",
"@modelcontextprotocol/sdk": "~1.26.0",
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/mcp/package.json, line 44:

<issue>
devDependency resolves to @modelcontextprotocol/sdk@1.24.3, which is affected by GHSA-345p-7cg4-v4c7 (data leak, fixed 1.26.0) and GHSA-8r9q-7v3j-jr4g (ReDoS, fixed 1.25.2). Bump to a patched range.
</issue>

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed in af0ce7b. bumped @modelcontextprotocol/sdk devdep ~1.24.2 -> ~1.29.0. picks up the GHSA-345p-7cg4-v4c7 (1.26.0) and GHSA-8r9q-7v3j-jr4g (1.25.2) fixes.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lucasheriques I couldn't find a Mendral account linked to your GitHub. Link your account →

Comment thread packages/mcp/package.json Outdated
"zod": "^3.25.0"
},
"peerDependencies": {
"@modelcontextprotocol/sdk": ">=1.11"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

security (P3): peerDependency floor >=1.11 permits consumers to use versions with known HIGH vulnerabilities. Consider raising the floor to the first fully-patched version once the SDK ships real functionality.

Suggested change
Suggested change
"@modelcontextprotocol/sdk": ">=1.11"
"@modelcontextprotocol/sdk": ">=1.26"
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/mcp/package.json, line 53:

<issue>
peerDependency floor `>=1.11` permits consumers to use versions with known HIGH vulnerabilities. Consider raising the floor to the first fully-patched version once the SDK ships real functionality.
</issue>

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed in af0ce7b. raised the peer dep floor >=1.11 -> >=1.26.0 so consumers cannot resolve to a known-vulnerable host sdk.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lucasheriques I couldn't find a Mendral account linked to your GitHub. Link your account →

First half of a two-PR stack that ports the previous standalone @posthog/mcp
SDK into this monorepo. This PR is intentionally just the package skeleton:
configs, monorepo wiring, a stub `src/index.ts`, and one placeholder test.
The actual SDK implementation lands in the stacked follow-up PR.

Splitting it this way so reviewers can approve the wiring (build, lint,
tests, release matrix, eslint overrides) in isolation from the ~3k-line
SDK port that follows.

What this PR contains:

- `packages/mcp/package.json` — npm name `@posthog/mcp`, `workspace:*` dep
  on `@posthog/core`, peer on `@modelcontextprotocol/sdk`.
- `packages/mcp/tsconfig.json` + `tsconfig.build.json` extending the
  monorepo `@posthog-tooling/tsconfig-base`.
- `packages/mcp/rslib.config.ts` — same dual ESM + CJS + .d.ts shape as
  posthog-node and @posthog/core.
- `packages/mcp/jest.config.mjs` + `babel.config.mjs` matching posthog-node.
- `packages/mcp/.prettierrc` (2-space, no-semi, single-quote, printWidth 120).
- `packages/mcp/README.md` — install + usage stub.
- `packages/mcp/src/version.ts` — generated by the `prebuild` script.
- `packages/mcp/src/index.ts` — stub exporting `version` only. Replaced
  by the real SDK entry in the stacked follow-up PR.
- `packages/mcp/src/__tests__/scaffold.test.ts` — single placeholder test
  so jest doesn't error on `no tests found`. Also removed in the
  follow-up PR.
- `.eslintrc.cjs` — adds `packages/mcp/**` to the existing
  `no-console`/relaxed override block.
- `.github/workflows/release.yml` — adds `@posthog/mcp` to the publish
  matrix.
- `.changeset/posthog-mcp-initial.md` — describes the cumulative
  `@posthog/mcp 0.1.0` release.
- `pnpm-lock.yaml` — lockfile update.

Verification:
- `pnpm --filter=@posthog/mcp build` — clean.
- `pnpm --filter=@posthog/mcp test:unit` — 1 passing.
- `pnpm --filter=@posthog/mcp lint` — clean.

Generated-By: PostHog Code
Task-Id: baa7e0cd-4946-4524-a05f-42c547a55f44
Every other monorepo package that uses the `prebuild` script pattern
(posthog-node, posthog-react-native, packages/web) gitignores
`src/version.ts` so the file is regenerated from `package.json` on
every build. Without this, changesets bumps `package.json` but the
committed `version.ts` stays stale until someone runs `pnpm build` and
commits the result.

Generated-By: PostHog Code
Task-Id: baa7e0cd-4946-4524-a05f-42c547a55f44
The scaffold PR alone publishes a useless `@posthog/mcp 0.1.0` (just a
stub `index.ts` exporting `version`). Keeping the changeset here means
merging the scaffold ahead of the implementation PR fires the release
workflow and pings Slack for approval. Move the changeset to the
implementation PR so the release proposal only appears once the SDK is
actually ready to ship.

Generated-By: PostHog Code
Task-Id: baa7e0cd-4946-4524-a05f-42c547a55f44
…script

Per Greptile / graphite-app / mendral-app review on PR #3652:

- Bump @modelcontextprotocol/sdk devDep ~1.24.2 -> ~1.29.0 to
  pick up the GHSA-345p-7cg4-v4c7 (data leak, 1.26.0) and
  GHSA-8r9q-7v3j-jr4g (ReDoS, 1.25.2) fixes.
- Raise peerDependencies floor >=1.11 -> >=1.26.0 so consumers
  cannot resolve to a known-vulnerable host SDK.
- Extract the src/version.ts generator into a reusable
  `generate-version` script and hook it from both `pretest:unit`
  and `prebuild`, so `pnpm --filter=@posthog/mcp test:unit` works
  standalone (Greptile flagged that test:unit failed against a
  fresh checkout because version.ts had not been generated yet).
- Reorder prepublishOnly to build before test:unit for the same
  reason.

Generated-By: PostHog Code
Task-Id: baa7e0cd-4946-4524-a05f-42c547a55f44
@lucasheriques lucasheriques force-pushed the posthog-code/mcp-scaffold branch from e9a0d99 to af0ce7b Compare May 28, 2026 12:42
lucasheriques added a commit that referenced this pull request May 28, 2026
…script

Per Greptile / graphite-app / mendral-app review on PR #3652:

- Bump @modelcontextprotocol/sdk devDep ~1.24.2 -> ~1.29.0 to
  pick up the GHSA-345p-7cg4-v4c7 (data leak, 1.26.0) and
  GHSA-8r9q-7v3j-jr4g (ReDoS, 1.25.2) fixes.
- Raise peerDependencies floor >=1.11 -> >=1.26.0 so consumers
  cannot resolve to a known-vulnerable host SDK.
- Extract the src/version.ts generator into a reusable
  `generate-version` script and hook it from both `pretest:unit`
  and `prebuild`, so `pnpm --filter=@posthog/mcp test:unit` works
  standalone (Greptile flagged that test:unit failed against a
  fresh checkout because version.ts had not been generated yet).
- Reorder prepublishOnly to build before test:unit for the same
  reason.

Generated-By: PostHog Code
Task-Id: baa7e0cd-4946-4524-a05f-42c547a55f44
@lucasheriques lucasheriques merged commit 8ade9cb into main May 28, 2026
49 checks passed
@lucasheriques lucasheriques deleted the posthog-code/mcp-scaffold branch May 28, 2026 13:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants