Medium
github · 151 files analyzed
PostHog/mcp
Powerful capabilities — review before trusting.
View source ↗Outbound network 9
Environment variables (config / keys) 6
Shell / command execution 1
AI review
This is a legitimate PostHog MCP server implementation that provides analytics tools to AI agents. The code accesses environment variables for authentication (POSTHOG_PERSONAL_API_KEY) and makes network requests to PostHog's API, which is expected behavior for this type of integration. No hidden instructions, prompt injection, or deceptive tool descriptions were found.
Model: deepseek-chat
Static findings
Outbound network · Makes outbound network requests
info
examples/ai-sdk/package-lock.json:262
"../../typescript/node_modules/axios": {
info
examples/langchain-js/package-lock.json:866
"axios": "*",
info
typescript/pnpm-lock.yaml:47
version: 0.3.31(@langchain/[email protected](@opentelemetry/[email protected])([email protected]([email protected])([email protected])))(@opentelemetry/[email protected])([email protected])([email protected]([email protected])([email protected]))([email protected])
low
typescript/scripts/update-openapi-client.ts:14
const response = await fetch(SCHEMA_URL);
low
typescript/src/api/client.ts:118
const response = await fetch(url, {
low
typescript/src/api/fetcher.ts:35
const response = await fetch(input.url, {
low
typescript/src/integrations/mcp/index.ts:260
async fetch(request: Request, env: Env, ctx: ExecutionContext) {
low
typescript/src/lib/utils/api.ts:10
const response = await fetch(url, {
low
typescript/worker-configuration.d.ts:217
fetch(input: RequestInfo | URL, init?: RequestInit<RequestInitCfProperties>): Promise<Response>;
Environment variables (config / keys) · Reads environment variables (config / API keys)
info
examples/ai-sdk/src/index.ts:10
posthogPersonalApiKey: process.env.POSTHOG_PERSONAL_API_KEY!,
info
examples/langchain-js/src/index.ts:11
posthogPersonalApiKey: process.env.POSTHOG_PERSONAL_API_KEY!,
info
examples/langchain/posthog_agent_example.py:27
personal_api_key=os.getenv("POSTHOG_PERSONAL_API_KEY"),
info
typescript/README.md:23
posthogPersonalApiKey: process.env.POSTHOG_PERSONAL_API_KEY!,
info
typescript/tests/api/client.integration.test.ts:5
const API_BASE_URL = process.env.TEST_POSTHOG_API_BASE_URL || "http://localhost:8010";
info
typescript/tests/shared/test-utils.ts:9
export const API_BASE_URL = process.env.TEST_POSTHOG_API_BASE_URL || "http://localhost:8010";
Shell / command execution · Executes shell / system commands
medium
typescript/scripts/update-openapi-client.ts:3
import { execSync } from "node:child_process";
Scanning every extension your team installs?
Pro & Team add monitoring, private scans, and a CI gate for unsafe extensions.
MCPVet is a heuristic aid, not a security guarantee. A clean grade does not prove an extension is safe; always review code and instructions you don't trust.