Skip to content

docs(mcp-analytics): Vercel mcp-handler integration example - #17831

Merged
lucasheriques merged 5 commits into
masterfrom
posthog-code/mcp-analytics-mcp-handler-docs
Jun 23, 2026
Merged

docs(mcp-analytics): Vercel mcp-handler integration example#17831
lucasheriques merged 5 commits into
masterfrom
posthog-code/mcp-analytics-mcp-handler-docs

Conversation

@lucasheriques

Copy link
Copy Markdown
Contributor

Adds a Next.js / Vercel (mcp-handler) example to the MCP analytics installation page.

vercel/mcp-handler hands you a standard @modelcontextprotocol/sdk McpServer in its setup callback, so @posthog/mcp's instrument() works with one line — no new code needed. The section also documents the two Vercel-specific caveats: stateless per-request servers (use a sessionIdGenerator for session continuity) and flushing posthog-node in serverless.

Independent of the Python SDK docs PR (#17827) — this one is ready to merge now since the TypeScript @posthog/mcp SDK is already published.

Mega-issue: PostHog/posthog#64016


Created with PostHog Code

mcp-handler hands you a standard McpServer in its setup callback, so instrument()
works with one line. Documents the snippet plus the two Vercel caveats: stateless
per-request servers (use a sessionIdGenerator for session continuity) and flushing
posthog-node in serverless.

Generated-By: PostHog Code
Task-Id: b21bc954-5de3-4512-a0d5-6bec2371f782
@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Deploy preview

Status Details Updated (UTC)
🟢 Ready View preview Jun 23, 2026 02:46PM

@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Vale prose linter → found 11 errors, 5 warnings, 0 suggestions in your markdown

Full report → Copy the linter results into an LLM to batch-fix issues.

Linter being weird? Update the rules!

contents/docs/mcp-analytics/installation.mdx — 11 errors, 5 warnings, 0 suggestions
Line Severity Message Rule
9:63 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash
9:116 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash
17:14 warning Use 'project token' instead of 'project API key'. The project token (phc_) is not an API key. PostHogBase.ProjectToken
27:211 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash
31:280 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash
31:318 warning Capitalize 'Logs' for PostHog's product. Use 'logs' for the general industry concept. PostHogBase.ProductNames
55:110 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash
78:51 warning Use the Oxford comma before 'and' or 'or' in a list of three or more items. PostHogBase.OxfordComma
108:48 warning 'OAuth' is a possible misspelling. PostHogBase.Spelling
123:1 warning 'untrusted' is a possible misspelling. PostHogBase.Spelling
134:75 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash
141:93 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash
144:83 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash
145:76 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash
146:77 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash
167:115 error Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. PostHogBase.EnDash

@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Bundle report

Total JS (gzip)

6.21 MiB (+0.0 KiB / +0.0%)

Eager graph (static-import closure per entrypoint)

Entrypoint Eager size Budget Modules
app 24.13 MiB (+3.3 KiB / +0.0%) report-only 5505
Largest modules in the app closure
Module Size
css ./node_modules/.pnpm/css-loader@5.2.7_webpack@5.101.3/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[1]!./node_modules/.pnpm/postcss-loader@4.3.0_postcss@8.5.6_webpack@5.101.3/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[2]!./src/styles/global.css 710.3 KiB
./src/components/Stickers/Stickers.tsx 696.4 KiB
./.cache/caches/gatsby-plugin-mdx/mdx-scopes-dir/31a094f140f119e73085d847ae81b99b.js + 2 modules 531.0 KiB
./node_modules/.pnpm/@radix-ui+react-icons@1.3.2_react@18.3.1/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js 481.4 KiB
./node_modules/.pnpm/@codemirror+view@6.38.2/node_modules/@codemirror/view/dist/index.js 458.1 KiB
./node_modules/.pnpm/rehype-raw@7.0.0/node_modules/rehype-raw/lib/index.js + 29 modules 395.1 KiB
./node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.cjs.js 364.8 KiB
./node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js 354.8 KiB
./src/hooks/useCustomers.tsx + 54 modules 353.9 KiB
./node_modules/.pnpm/react-markdown@8.0.7_@types+react@16.14.66_react@18.3.1/node_modules/react-markdown/lib/react-markdown.js + 88 modules 351.4 KiB
./node_modules/.pnpm/cloudinary-core@2.14.0_lodash@4.17.21/node_modules/cloudinary-core/cloudinary-core.js 281.9 KiB
./node_modules/.pnpm/@codesandbox+sandpack-react@2.20.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@codesandbox/sandpack-react/dist/index.mjs 266.6 KiB
./src/components/ProductComparisonTable/index.tsx + 114 modules 264.0 KiB
./node_modules/.pnpm/d3@7.9.0/node_modules/d3/src/index.js + 208 modules 247.4 KiB
./src/components/Pricing/PricingSlider/Slider.tsx + 87 modules 239.9 KiB

Eager-graph budgets are report-only until a baseline is established. Sizes are gzip of public/**/*.js; eager size is webpack module source bytes.

mcp-handler's streamable-HTTP transport is stateless (sessionIdGenerator is typed
undefined — no Mcp-Session-Id), so the earlier "configure a sessionIdGenerator"
advice was wrong. Replace it with the real lever: enableConversationId, which
stitches a client's calls via $mcp_conversation_id without a persistent
connection, plus identify for per-user grouping.

Generated-By: PostHog Code
Task-Id: b21bc954-5de3-4512-a0d5-6bec2371f782
mcp-handler exports createMcpHandler as a named export
(export { default as createMcpHandler } from "./handler"), per the package
entry and README. Was incorrectly shown as a default import.

Generated-By: PostHog Code
Task-Id: b21bc954-5de3-4512-a0d5-6bec2371f782
…xample

@posthog/mcp@0.4.1 re-exports PostHog, so the example imports the client and
instrument from one package instead of also importing from posthog-node.

Generated-By: PostHog Code
Task-Id: b21bc954-5de3-4512-a0d5-6bec2371f782
- Callout now says beta (pre-1.0), API may change incl. breaking changes in 0.x
  until v1 — drops the stale hardcoded "0.1.x" (package is 0.4.x).
- Grouping: lead with identify (group by user; nothing required from the client)
  as the robust default. Reframe enableConversationId as best-effort and note its
  prompt-back is a server instruction in the tool result that some clients may
  ignore or treat as untrusted (prompt-injection wariness).

Generated-By: PostHog Code
Task-Id: b21bc954-5de3-4512-a0d5-6bec2371f782
@lucasheriques
lucasheriques merged commit 894697e into master Jun 23, 2026
18 checks passed
@lucasheriques
lucasheriques deleted the posthog-code/mcp-analytics-mcp-handler-docs branch June 23, 2026 17:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant