mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-21 08:22:20 +02:00
## Thinking Path > - Paperclip is the open source app people use to manage AI agents for work. > - A useful app store needs accurate and selectable provider definitions. > - Local brand assets now cover the expanded provider set. > - Provider methods differ in transport, authentication, ownership, and required scope. > - This pull request expands the catalog and encodes those provider contracts. > - The benefit is a larger self-serve store with explicit setup choices. ## Linked Issues or Issue Description Refs #11965 This is stack 6 of 11. It depends on stack 5 and replaces another reviewable part of #11965. ## What Changed - Add and update provider definitions for the self-serve catalog. - Add Google Workspace connection methods and capability profiles. - Add catalog generation, ingestion, URL matching, and contract tests. - Update legacy key tests to use a provider that still uses header credentials. ## Verification - `pnpm --filter @paperclipai/server typecheck` - `pnpm --filter @paperclipai/server exec vitest run src/__tests__/tool-access-service.test.ts` - Result: 164 tests passed. - `pnpm build` ## Risks - An incorrect provider definition can offer the wrong setup method. - Contract tests verify transport, authentication, and provider URL behavior. - The change does not add a database migration. > I checked `ROADMAP.md`. This stack continues the existing app connection work from #11965 and does not duplicate another planned item. ## Model Used OpenAI Codex, GPT-5. The runtime model ID and context window were not exposed. The model used reasoning, tool use, and code execution. ## Checklist - [x] I have included a thinking path that traces from project context to this change - [x] I have specified the model used (with version and capability details) - [x] I have checked ROADMAP.md and confirmed this PR does not duplicate planned core work - [x] I have searched GitHub for duplicate or related PRs and linked them above - [x] I have either (a) linked existing issues with `Refs #` or (b) described the issue in this pull request - [x] I have not referenced internal or instance-local Paperclip issues or links - [x] My branch name describes the change and contains no internal Paperclip ticket id or instance-derived details - [x] I have run tests locally and they pass - [x] I have added or updated tests where applicable - [x] I have updated relevant documentation to reflect my changes - [x] I have considered and documented any risks above - [x] All Paperclip CI gates are green - [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups - [x] I will address all Greptile and reviewer comments before requesting merge --------- Co-authored-by: Paperclip <noreply@paperclip.ing>
279 lines
8.2 KiB
JSON
279 lines
8.2 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"slug": "posthog",
|
|
"name": "PostHog",
|
|
"description": "Analyze product usage, errors, feature flags, and experiments with PostHog's hosted MCP server.",
|
|
"categories": [
|
|
"analytics"
|
|
],
|
|
"featured": true,
|
|
"branding": {
|
|
"logoUrl": "/brands/apps/posthog.svg",
|
|
"darkLogoUrl": "/brands/apps/posthog-dark.svg"
|
|
},
|
|
"urlPatterns": [
|
|
"https://mcp.posthog.com/*"
|
|
],
|
|
"methods": [
|
|
{
|
|
"key": "mcp-oauth",
|
|
"transport": "mcp_remote",
|
|
"auth": "oauth",
|
|
"ownershipModes": [
|
|
"customer",
|
|
"dcr"
|
|
],
|
|
"whenToUse": "Sign in with PostHog in the browser. Recommended for hosted PostHog accounts.",
|
|
"defaults": {
|
|
"serverUrl": "https://mcp.posthog.com/mcp"
|
|
},
|
|
"guidanceMd": "Connect with PostHog's recommended defaults. Project pinning, read-only access, and catalog filters are optional advanced controls.",
|
|
"riskTier": "S3",
|
|
"tenantFields": [
|
|
{
|
|
"key": "projectId",
|
|
"label": "Pin to project ID",
|
|
"type": "text",
|
|
"advanced": true,
|
|
"placeholder": "Optional numeric project ID",
|
|
"helperMd": "Optional. Pin this connection to one project and remove PostHog's project-switching tool.",
|
|
"validation": {
|
|
"pattern": "^[0-9]+$",
|
|
"maxLength": 32
|
|
},
|
|
"transport": {
|
|
"location": "header",
|
|
"name": "x-posthog-project-id"
|
|
}
|
|
},
|
|
{
|
|
"key": "readOnly",
|
|
"label": "Read-only mode",
|
|
"type": "checkbox",
|
|
"advanced": true,
|
|
"defaultValue": false,
|
|
"helperMd": "Turn on to hide tools that can change PostHog data.",
|
|
"transport": {
|
|
"location": "query",
|
|
"name": "readonly",
|
|
"format": "boolean",
|
|
"omitFalse": true
|
|
}
|
|
},
|
|
{
|
|
"key": "features",
|
|
"label": "Feature groups",
|
|
"type": "textarea",
|
|
"advanced": true,
|
|
"placeholder": "Optional comma-separated feature groups",
|
|
"helperMd": "Leave blank to expose every feature group, or enter a comma-separated list to narrow access.",
|
|
"validation": {
|
|
"maxLength": 500
|
|
},
|
|
"transport": {
|
|
"location": "query",
|
|
"name": "features",
|
|
"format": "csv"
|
|
}
|
|
},
|
|
{
|
|
"key": "tools",
|
|
"label": "Individual tools",
|
|
"type": "textarea",
|
|
"advanced": true,
|
|
"placeholder": "Optional comma-separated tool names",
|
|
"helperMd": "Leave blank to expose all tools. Exact names here are combined with any feature groups.",
|
|
"validation": {
|
|
"maxLength": 2000
|
|
},
|
|
"transport": {
|
|
"location": "query",
|
|
"name": "tools",
|
|
"format": "csv"
|
|
}
|
|
},
|
|
{
|
|
"key": "mode",
|
|
"label": "Tool response mode",
|
|
"type": "select",
|
|
"hidden": true,
|
|
"required": true,
|
|
"placeholder": "Individual tools",
|
|
"defaultValue": "tools",
|
|
"options": [
|
|
{
|
|
"value": "tools",
|
|
"label": "Individual tools"
|
|
}
|
|
],
|
|
"helperMd": "Paperclip uses individual tools so every action can be governed. CLI mode remains unavailable until nested execution is governed.",
|
|
"transport": {
|
|
"location": "query",
|
|
"name": "mode"
|
|
}
|
|
}
|
|
],
|
|
"label": "Sign in with PostHog",
|
|
"consoleLinks": {
|
|
"docs": "https://posthog.com/docs/model-context-protocol"
|
|
},
|
|
"credentialSources": {
|
|
"vercelConnect": {
|
|
"services": [
|
|
"posthog",
|
|
"mcp.posthog.com/mcp"
|
|
],
|
|
"principalModes": [
|
|
"user"
|
|
],
|
|
"scopes": [
|
|
"*"
|
|
],
|
|
"header": {
|
|
"name": "Authorization",
|
|
"prefix": "Bearer "
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"key": "mcp-api-key",
|
|
"transport": "mcp_remote",
|
|
"auth": "api_key",
|
|
"ownershipModes": [
|
|
"customer"
|
|
],
|
|
"whenToUse": "Use a PostHog personal API key when browser sign-in is not suitable.",
|
|
"defaults": {
|
|
"serverUrl": "https://mcp.posthog.com/mcp"
|
|
},
|
|
"guidanceMd": "Connect with PostHog's recommended defaults. Project pinning, read-only access, and catalog filters are optional advanced controls.",
|
|
"riskTier": "S3",
|
|
"tenantFields": [
|
|
{
|
|
"key": "projectId",
|
|
"label": "Pin to project ID",
|
|
"type": "text",
|
|
"advanced": true,
|
|
"placeholder": "Optional numeric project ID",
|
|
"helperMd": "Optional. Pin this connection to one project and remove PostHog's project-switching tool.",
|
|
"validation": {
|
|
"pattern": "^[0-9]+$",
|
|
"maxLength": 32
|
|
},
|
|
"transport": {
|
|
"location": "header",
|
|
"name": "x-posthog-project-id"
|
|
}
|
|
},
|
|
{
|
|
"key": "readOnly",
|
|
"label": "Read-only mode",
|
|
"type": "checkbox",
|
|
"advanced": true,
|
|
"defaultValue": false,
|
|
"helperMd": "Turn on to hide tools that can change PostHog data.",
|
|
"transport": {
|
|
"location": "query",
|
|
"name": "readonly",
|
|
"format": "boolean",
|
|
"omitFalse": true
|
|
}
|
|
},
|
|
{
|
|
"key": "features",
|
|
"label": "Feature groups",
|
|
"type": "textarea",
|
|
"advanced": true,
|
|
"placeholder": "Optional comma-separated feature groups",
|
|
"helperMd": "Leave blank to expose every feature group, or enter a comma-separated list to narrow access.",
|
|
"validation": {
|
|
"maxLength": 500
|
|
},
|
|
"transport": {
|
|
"location": "query",
|
|
"name": "features",
|
|
"format": "csv"
|
|
}
|
|
},
|
|
{
|
|
"key": "tools",
|
|
"label": "Individual tools",
|
|
"type": "textarea",
|
|
"advanced": true,
|
|
"placeholder": "Optional comma-separated tool names",
|
|
"helperMd": "Leave blank to expose all tools. Exact names here are combined with any feature groups.",
|
|
"validation": {
|
|
"maxLength": 2000
|
|
},
|
|
"transport": {
|
|
"location": "query",
|
|
"name": "tools",
|
|
"format": "csv"
|
|
}
|
|
},
|
|
{
|
|
"key": "mode",
|
|
"label": "Tool response mode",
|
|
"type": "select",
|
|
"hidden": true,
|
|
"required": true,
|
|
"placeholder": "Individual tools",
|
|
"defaultValue": "tools",
|
|
"options": [
|
|
{
|
|
"value": "tools",
|
|
"label": "Individual tools"
|
|
}
|
|
],
|
|
"helperMd": "Paperclip uses individual tools so every action can be governed. CLI mode remains unavailable until nested execution is governed.",
|
|
"transport": {
|
|
"location": "query",
|
|
"name": "mode"
|
|
}
|
|
}
|
|
],
|
|
"label": "Use a personal API key",
|
|
"credentialFields": [
|
|
{
|
|
"key": "authorization",
|
|
"label": "PostHog personal API key",
|
|
"type": "password",
|
|
"required": true,
|
|
"placeholder": "phx_...",
|
|
"secret": true
|
|
}
|
|
],
|
|
"keyPlacement": {
|
|
"location": "header",
|
|
"name": "Authorization",
|
|
"prefix": "Bearer "
|
|
},
|
|
"consoleLinks": {
|
|
"keys": "https://posthog.com/docs/model-context-protocol/faq",
|
|
"docs": "https://posthog.com/docs/model-context-protocol/faq"
|
|
},
|
|
"credentialSources": {
|
|
"vercelConnect": {
|
|
"services": [
|
|
"posthog",
|
|
"mcp.posthog.com/mcp"
|
|
],
|
|
"principalModes": [
|
|
"app"
|
|
],
|
|
"scopes": [
|
|
"*"
|
|
],
|
|
"header": {
|
|
"name": "Authorization",
|
|
"prefix": "Bearer "
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"docsUrl": "https://posthog.com/docs/model-context-protocol",
|
|
"redirectConstraints": "https-or-loopback-http"
|
|
}
|