vercel-labs

marketplace

1
0
# Install this skill:
npx skills add vercel-labs/vercel-plugin --skill "marketplace"

Install specific skill from multi-skill repository

# Description

Vercel Marketplace expert guidance β€” discovering, installing, and building integrations, auto-provisioned environment variables, unified billing, and the vercel integration CLI. Use when consuming third-party services, building custom integrations, or managing marketplace resources on Vercel.

# SKILL.md


name: marketplace
description: Vercel Marketplace expert guidance β€” discovering, installing, and building integrations, auto-provisioned environment variables, unified billing, and the vercel integration CLI. Use when consuming third-party services, building custom integrations, or managing marketplace resources on Vercel.


Vercel Marketplace

You are an expert in the Vercel Marketplace β€” the integration platform that connects third-party services to Vercel projects with unified billing, auto-provisioned environment variables, and one-click setup.

Consuming Integrations

Discovering Integrations

# Search the Marketplace catalog from CLI
vercel integration discover

# Filter by category
vercel integration discover --category databases
vercel integration discover --category monitoring

# List integrations already installed on this project
vercel integration list

For browsing the full catalog interactively, use the Vercel Marketplace dashboard.

Getting Setup Guidance

# Get agent-friendly setup guide for a specific integration
vercel integration guide <name>

# Examples
vercel integration guide neon
vercel integration guide datadog

The guide returns structured setup steps including required environment variables, SDK packages, and code snippets β€” ideal for agentic workflows.

Installing an Integration

# Install from CLI
vercel integration add <integration-name>

# Examples
vercel integration add neon          # Postgres database
vercel integration add upstash       # Redis / Kafka
vercel integration add clerk         # Authentication
vercel integration add sentry        # Error monitoring
vercel integration add sanity        # CMS
vercel integration add datadog       # Observability (auto-configures drain)

Auto-Provisioned Environment Variables

When you install a Marketplace integration, Vercel automatically provisions the required environment variables for all linked projects.

# View environment variables added by integrations
vercel env ls

# Example: after installing Neon, these are auto-provisioned:
# POSTGRES_URL          β€” connection string
# POSTGRES_URL_NON_POOLING β€” direct connection
# POSTGRES_USER         β€” database user
# POSTGRES_PASSWORD     β€” database password
# POSTGRES_DATABASE     β€” database name
# POSTGRES_HOST         β€” database host

No manual .env file management is needed β€” the variables are injected into all environments (Development, Preview, Production) automatically.

Using Provisioned Resources

// app/api/users/route.ts β€” using Neon auto-provisioned env vars
import { neon } from '@neondatabase/serverless'

// POSTGRES_URL is auto-injected by the Neon integration
const sql = neon(process.env.POSTGRES_URL!)

export async function GET() {
  const users = await sql`SELECT * FROM users LIMIT 10`
  return Response.json(users)
}
// app/api/cache/route.ts β€” using Upstash auto-provisioned env vars
import { Redis } from '@upstash/redis'

// KV_REST_API_URL and KV_REST_API_TOKEN are auto-injected
const redis = Redis.fromEnv()

export async function GET() {
  const cached = await redis.get('featured-products')
  return Response.json(cached)
}

Managing Integrations

# List installed integrations
vercel integration ls

# Check usage and billing for an integration
vercel integration balance <name>

# Remove an integration
vercel integration remove <integration-name>

Unified Billing

Marketplace integrations use Vercel's unified billing system:

  • Single invoice: All integration charges appear on your Vercel bill
  • Usage-based: Pay for what you use, scaled per integration's pricing model
  • Team-level billing: Charges roll up to the Vercel team account
  • No separate accounts: No need to manage billing with each provider individually
# Check current usage balance for an integration
vercel integration balance datadog
vercel integration balance neon

Building Integrations

Integration Architecture

Vercel integrations consist of:

  1. Integration manifest β€” declares capabilities, required scopes, and UI surfaces
  2. Webhook handlers β€” respond to Vercel lifecycle events
  3. UI components β€” optional dashboard panels rendered within Vercel
  4. Resource provisioning β€” create and manage resources for users

Scaffold an Integration

# Create a new integration project
npx create-vercel-integration my-integration

# Or start from the template
npx create-next-app my-integration --example vercel-integration

Integration Manifest

// vercel-integration.json
{
  "name": "my-integration",
  "slug": "my-integration",
  "description": "Provides X for Vercel projects",
  "logo": "public/logo.svg",
  "website": "https://my-service.com",
  "categories": ["databases"],
  "scopes": {
    "project": ["env-vars:read-write"],
    "team": ["integrations:read-write"]
  },
  "installationType": "marketplace",
  "resourceTypes": [
    {
      "name": "database",
      "displayName": "Database",
      "description": "A managed database instance"
    }
  ]
}

Handling Lifecycle Webhooks

// app/api/webhook/route.ts
import { verifyVercelSignature } from '@vercel/integration-utils'

export async function POST(req: Request) {
  const body = await req.json()

  // Verify the webhook is from Vercel
  const isValid = await verifyVercelSignature(req, body)
  if (!isValid) {
    return Response.json({ error: 'Invalid signature' }, { status: 401 })
  }

  switch (body.type) {
    case 'integration.installed':
      // Provision resources for the new installation
      await provisionDatabase(body.payload)
      break

    case 'integration.uninstalled':
      // Clean up resources
      await deprovisionDatabase(body.payload)
      break

    case 'integration.configuration-updated':
      // Handle config changes
      await updateConfiguration(body.payload)
      break
  }

  return Response.json({ received: true })
}

Provisioning Environment Variables

// lib/provision.ts
async function provisionEnvVars(
  installationId: string,
  projectId: string,
  credentials: { url: string; token: string }
) {
  const response = await fetch(
    `https://api.vercel.com/v1/integrations/installations/${installationId}/env`,
    {
      method: 'POST',
      headers: {
        Authorization: `Bearer ${process.env.VERCEL_INTEGRATION_TOKEN}`,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        projectId,
        envVars: [
          {
            key: 'MY_SERVICE_URL',
            value: credentials.url,
            target: ['production', 'preview', 'development'],
            type: 'encrypted',
          },
          {
            key: 'MY_SERVICE_TOKEN',
            value: credentials.token,
            target: ['production', 'preview', 'development'],
            type: 'secret',
          },
        ],
      }),
    }
  )

  return response.json()
}

Integration CLI Commands

The vercel integration CLI supports these subcommands:

# Discover integrations in the Marketplace catalog
vercel integration discover
vercel integration discover --category <category>

# Get agent-friendly setup guide
vercel integration guide <name>

# Add (install) an integration
vercel integration add <name>

# List installed integrations
vercel integration list    # alias: vercel integration ls

# Check usage / billing balance
vercel integration balance <name>

# Open integration dashboard in browser
vercel integration open <name>

# Remove an integration
vercel integration remove <name>

Building integrations? Use npx create-vercel-integration to scaffold, then deploy your
integration app to Vercel normally with vercel --prod. Publish to the Marketplace via the
Vercel Partner Dashboard.

Common Integration Categories

Category Popular Integrations Auto-Provisioned Env Vars
Databases Neon, Supabase, PlanetScale, MongoDB POSTGRES_URL, DATABASE_URL
Cache/KV Upstash Redis KV_REST_API_URL, KV_REST_API_TOKEN
Auth Clerk, Auth0 CLERK_SECRET_KEY, AUTH0_SECRET
CMS Sanity, Contentful, Storyblok SANITY_PROJECT_ID, CONTENTFUL_TOKEN
Monitoring Datadog, Sentry SENTRY_DSN, DD_API_KEY
Payments Stripe STRIPE_SECRET_KEY
Feature Flags LaunchDarkly, Statsig LAUNCHDARKLY_SDK_KEY

Observability Integration Path

Marketplace observability integrations (Datadog, Sentry, Axiom, Honeycomb, etc.) connect to Vercel's Drains system to receive telemetry. Understanding the data-type split is critical for correct setup.

Data-Type Split

Data Type Delivery Mechanism Integration Setup
Logs Native drain (auto-configured by Marketplace install) vercel integration add <vendor> auto-creates drain
Traces Native drain (OpenTelemetry-compatible) Same β€” auto-configured on install
Speed Insights Custom drain endpoint only Requires manual drain creation via REST API or Dashboard
Web Analytics Custom drain endpoint only Requires manual drain creation via REST API or Dashboard

Key distinction: When you install an observability vendor via the Marketplace, it auto-configures drains for logs and traces only. Speed Insights and Web Analytics data require a separate, manually configured drain pointing to a custom endpoint. See β€³ skill: observability for drain setup details.

Agentic Flow: Observability Vendor Setup

Follow this sequence when setting up an observability integration:

1. Pick Vendor

# Discover observability integrations
vercel integration discover --category monitoring

# Get setup guide for chosen vendor
vercel integration guide datadog

2. Install Integration

# Install β€” auto-provisions env vars and creates log/trace drains
vercel integration add datadog

3. Verify Drain Created

# Confirm drain was auto-configured
curl -s -H "Authorization: Bearer $VERCEL_TOKEN" \
  "https://api.vercel.com/v1/drains?teamId=$TEAM_ID" | jq '.[] | {id, url, type, sources}'

Check the response for a drain pointing to the vendor's ingestion endpoint. If no drain appears, the integration may need manual drain setup β€” see β€³ skill: observability for REST API drain creation.

4. Validate Endpoint

# Send a test payload to the drain
curl -X POST -H "Authorization: Bearer $VERCEL_TOKEN" \
  "https://api.vercel.com/v1/drains/<drain-id>/test?teamId=$TEAM_ID"

Confirm the vendor dashboard shows the test event arriving.

5. Smoke Log Check

# Trigger a deployment and check logs flow through
vercel logs <deployment-url> --follow --since 5m

# Check integration balance to confirm data is flowing
vercel integration balance datadog

Verify that logs appear both in Vercel's runtime logs and in the vendor's dashboard.

For drain payload formats and signature verification, see β€³ skill: observability β€” the Drains section covers JSON/NDJSON schemas and x-vercel-signature HMAC-SHA1 verification.

Speed Insights + Web Analytics Drains

For observability vendors that also want Speed Insights or Web Analytics data, configure a separate drain manually:

# Create a drain for Speed Insights + Web Analytics
curl -X POST -H "Authorization: Bearer $VERCEL_TOKEN" \
  -H "Content-Type: application/json" \
  "https://api.vercel.com/v1/drains?teamId=$TEAM_ID" \
  -d '{
    "url": "https://your-vendor-endpoint.example.com/vercel-analytics",
    "type": "json",
    "sources": ["lambda"],
    "environments": ["production"]
  }'

Payload schema reference: See β€³ skill: observability for Web Analytics drain payload formats (JSON array of {type, url, referrer, timestamp, geo, device} events).

Decision Matrix

Need Use Why
Add a database to your project vercel integration add neon Auto-provisioned, unified billing
Browse available services vercel integration discover CLI-native catalog search
Get setup steps for an integration vercel integration guide <name> Agent-friendly structured guide
Check integration usage/cost vercel integration balance <name> Billing visibility per integration
Build a SaaS integration Integration SDK + manifest Full lifecycle management
Centralize billing Marketplace integrations Single Vercel invoice
Auto-inject credentials Marketplace auto-provisioning No manual env var management
Add observability vendor vercel integration add <vendor> Auto-creates log/trace drains
Export Speed Insights / Web Analytics Manual drain via REST API Not auto-configured by vendor install
Manage integrations programmatically Vercel REST API /v1/integrations endpoints
Test integration locally vercel dev Local development server with Vercel features

Cross-References

  • Drain configuration, payload formats, signature verification β†’ β€³ skill: observability
  • Drains REST API endpoints β†’ β€³ skill: vercel-api
  • CLI log streaming (--follow, --since, --level) β†’ β€³ skill: vercel-cli

Official Documentation

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.