Agent skill

Add MCP Integration

by vellum-ai in vellum-ai/vellum-assistant

Add a vendor's remote MCP server to the bundled integrations catalog (plugins/mcp-catalog/<name/ + plugins/marketplace.json) so users can connect it from the Integrations page.

MITAuto-check passedAgent Workflows

Install Add MCP Integration

skills CLI
$ npx skills add vellum-ai/vellum-assistant --skill add-mcp-integration -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install vellum-ai/vellum-assistant add-mcp-integration --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-mcp-integration .claude/skills/add-mcp-integration && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
add-mcp-integration
GitHub stars
1.4k
Token cost
~2.8k tokens
SKILL.md length
940 words
Files
1
Skills in repo
108
Repo updated
First seen
Licence
MIT

At a glance

Add a vendor's remote MCP server to the bundled integrations catalog (plugins/mcp-catalog/<name/ + plugins/marketplace.json) so users can connect it from the Integrations page.

  • Works in 10 steps: Research the server → Check OAuth support → Test registration → …
  • Asked to add <vendor MCP
  • SKILL.md covers 1. Research the server, 2. Check OAuth support, 3. Test registration and 4. Icon, plus 6 more sections
  • Calls node, bun and curl; reaches agent-plugins.org and vellum.ai

What it does

Add MCP Integration is an agent skill from vellum-ai/vellum-assistant. Add a vendor's remote MCP server to the bundled integrations catalog (plugins/mcp-catalog/<name/ + plugins/marketplace.json) so users can connect it from the Integrations page. Covers vetting the server's OAuth support, the icon, the package files, the generators, the CI checks, and the PR. Use when asked to "add <vendor MCP", "add <vendor to integrations", or to check whether a vendor's MCP server is an easy addition.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering MCP servers and OAuth and OpenID Connect. It works with Model Context Protocol. The repository describes itself as: An AI Assistant that’s easy to setup, does your work 24/7, knows your preferences and gets better over time. The licence is MIT.

When your agent uses it

  • Asked to add <vendor MCP
  • Add <vendor to integrations
  • Check whether a vendors MCP server is an easy addition

Example prompts

  • “add <vendor MCP”
  • “add <vendor to integrations”
  • “/add-mcp-integration”

Requirements

  • Docker

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Research the server
  2. Check OAuth support
  3. Test registration
  4. Icon
  5. Package files
  6. Run the generators
  7. Update the inventory test
  8. Run the CI checks
  9. Test end to end
  10. Open the PR

What it can do on your machine

Read from SKILL.md and the folder at commit 33cc983. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node
    • bun
    • curl
    • magick
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • agent-plugins.org
    • vellum.ai

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Add MCP Integration loads about 2.8k tokens when it runs. Until then it costs about 111 tokens; SKILL.md has 940 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~111
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from vellum-ai/vellum-assistant at commit 33cc983, republished under its MIT licence (© vellum-ai). 940 words, ~2,821 tokens.

Download SKILL.mdSave it as .claude/skills/add-mcp-integration/SKILL.md (or your agent's skills folder).
name
add-mcp-integration
description
Add a vendor's remote MCP server to the bundled integrations catalog (plugins/mcp-catalog/<name>/ + plugins/marketplace.json) so users can connect it from the Integrations page. Covers vetting the server's OAuth support, the icon, the package files, the generators, the CI checks, and the PR. Use when asked to "add <vendor> MCP", "add <vendor> to integrations", or to check whether a vendor's MCP server is an easy addition.

Add an MCP Integration

A catalog integration is a bundled local plugin whose only content is an mcp.json pointing at the vendor's remote server. The assistant ships it, the Integrations page lists it, and connecting it runs the MCP OAuth flow in assistant/src/mcp/mcp-oauth-provider.ts.

Scope: remote MCP servers in plugins/mcp-catalog/. For a full plugin that lives in another GitHub repo, see plugins/README.md § Marketplace.

Work in a worktree from origin/main. One provider per PR.

1. Research the server

From the vendor's MCP docs, record:

  • The remote URL. Prefer streamable-http (docs often say "type": "http").
  • The docs page URL. It is both homepage and documentationUrl.
  • A one-line summary of what the tools do.

Reject a server that only runs locally (npx, uvx, Docker). The catalog ships no stdio servers.

2. Check OAuth support

The catalog's one-step connect needs the server to support OAuth discovery and dynamic client registration (DCR), because a plugin cannot ship a client secret.

bash
URL=https://mcp.example.com/mcp
curl -sS -i -X POST "$URL" -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}'

Expect 401 with WWW-Authenticate: Bearer ... resource_metadata="<url>". Fetch that URL and take authorization_servers[0] as the issuer. Then fetch the issuer's metadata from the first URL that answers, in the order the MCP SDK tries them (buildDiscoveryUrls in @modelcontextprotocol/sdk client/auth.js):

IssuerMetadata URLs, in order
https://auth.example.com/.well-known/oauth-authorization-server, then /.well-known/openid-configuration
https://auth.example.com/tenant1/.well-known/oauth-authorization-server/tenant1, then /.well-known/openid-configuration/tenant1, then /tenant1/.well-known/openid-configuration (all on the issuer host)

Check the metadata the way the SDK does:

FieldRule
registration_endpointMust be present. The SDK stops with "does not support dynamic client registration" without it.
code_challenge_methods_supportedIf present, must include S256. Absent is fine.
response_types_supportedMust include code.
grant_types_supportedShould include refresh_token. Without it, users sign in again each time the access token ends.

Do not judge token_endpoint_auth_methods_supported from the metadata. The registration in step 3 shows which method the server gives our public client.

Pick the setup mode:

  • The rules hold and step 3 succeeds: oauth. The normal case.
  • DCR works, but the vendor must allowlist our redirect URI first: manual. ramp is the example. Its setup.instructions tell the user what to ask the vendor for.
  • No registration_endpoint, or step 3 only returns a confidential client (a client_secret and a client_secret_* auth method): not a catalog addition. It needs a pre-registered client, which the MCP OAuth flow does not support. Stop and report this.

Also check whether the vendor already has a main OAuth provider in assistant/src/oauth/seed-providers.ts. If it does, set integration.oauthProvider so the Integrations page groups both connections (see calendly, linear, notion, todoist).

3. Test registration

Register a throwaway client with the same shape as McpOAuthProvider.clientMetadata:

bash
curl -sS -X POST <registration_endpoint> -H 'content-type: application/json' \
  -d '{"client_name":"Vellum Assistant (registration probe)","redirect_uris":["https://example.com/webhooks/oauth/callback"],"token_endpoint_auth_method":"none","grant_types":["authorization_code","refresh_token"],"response_types":["code"],"logo_uri":"https://www.vellum.ai/favicon.ico","software_version":"0.0.0"}'

A client_id with token_endpoint_auth_method: "none" in the response means the server registers public clients.

This probe does not prove the vendor accepts our real redirect URI. Each assistant resolves its own callback (resolveOauthCallbackUrl in assistant/src/inbound/oauth-callback-url.ts), and a vendor can restrict redirect hosts. If you know the callback URL of the assistant you will test with, register that instead of example.com. If the example.com probe is rejected for its redirect URI, retry with a real callback before you reject the server. Step 9 is the real test of the redirect.

4. Icon

Write plugins/mcp-catalog/<name>/icon.png: a PNG, 128x128, on an opaque white background so it reads on the dark theme. The inventory test requires at least 64x64.

Source, in order of preference:

  1. The vendor's official asset (apple touch icon, a large favicon, a press kit).
  2. Simple Icons, pinned to a commit URL, rasterized in the brand color.
bash
magick <source> -resize 128x128 -background white -alpha remove -alpha off -strip PNG24:plugins/mcp-catalog/<name>/icon.png

Look at the result with the Read tool before you continue.

Write ICON_ATTRIBUTION.md beside it in the same form as the others: source link, what was done to it, and "It is a trademark of <Vendor> and is used only to identify this integration." circleback, craft, and wix show the official-asset form. atlassian shows the Simple Icons form.

Show full SKILL.md (324 more words)Show less

5. Package files

plugins/mcp-catalog/<name>/plugin.json:

json
{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "<name>",
  "version": "1.0.2",
  "description": "<Verb-first summary, under about 60 characters.>",
  "homepage": "<MCP docs URL>",
  "license": "MIT"
}

plugins/mcp-catalog/<name>/mcp.json. The server key must equal <name>:

json
{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
  "mcpServers": {
    "<name>": { "type": "streamable-http", "url": "<remote URL>" }
  }
}

Append an entry to plugins/marketplace.json after the last local entry:

json
{
  "name": "<name>",
  "source": {
    "source": "local",
    "path": "plugins/mcp-catalog/<name>",
    "version": "<plugin.json version>"
  },
  "description": "<same as plugin.json>",
  "homepage": "<MCP docs URL>",
  "license": "MIT",
  "integration": {
    "kind": "mcp",
    "displayName": "<Vendor>",
    "documentationUrl": "<MCP docs URL>",
    "verifiedAt": "<today, YYYY-MM-DD>",
    "verification": "documentation-only",
    "setup": {
      "mode": "oauth",
      "instructions": "<One sentence: which account to sign in with.>"
    },
    "logo": "<name>-mcp.png",
    "category": "<slug>"
  }
}
  • category must be a slug from INTEGRATION_CATEGORIES in packages/service-contracts/src/integration-categories.ts.
  • homepage is the MCP docs URL, not the vendor's home page. Every catalog entry follows this.
  • No em dashes in any copy. Users read description and instructions.

6. Run the generators

From the repo root, in this order:

bash
node scripts/plugins/sync-local-plugin-icons.mjs              # web copy: clients/web/public/images/integrations/<name>-mcp.png
node scripts/plugins/generate-plugin-icons.mjs                # platform copy: plugins/assets/<name>/icon.png + plugins/plugin-icons.json
bun run meta/sync-bundled-copies.ts                           # bundled offline marketplace copy
bun run assistant/scripts/generate-bundled-plugin-packages.ts # bundled package map

git status must show changes for <name> only.

7. Update the inventory test

In scripts/plugins/__tests__/mcp-marketplace-inventory.test.ts:

  • Add <name> to EXPECTED_PROVIDERS.
  • Increase the provider count in the test title.
  • Increase the oauth count, or change the manual assertion.
  • Add to the oauthProvider map if you set one.

8. Run the CI checks

These are the steps of .github/workflows/pr-marketplace.yaml:

bash
node scripts/check-marketplace-prefix.mjs
bun run meta/sync-bundled-copies.ts --check
bun run assistant/scripts/generate-bundled-plugin-packages.ts --check
node scripts/plugins/generate-plugin-icons.mjs --check
node scripts/plugins/sync-local-plugin-icons.mjs --check
(cd scripts && bun test plugins/__tests__/bundled-plugin-packages.test.ts plugins/__tests__/mcp-marketplace-inventory.test.ts plugins/__tests__/add-plugin-icon.test.mjs plugins/__tests__/generate-plugin-icons.test.mjs plugins/__tests__/sync-local-plugin-icons.test.mjs)

9. Test end to end

Needs an account with the vendor. On an assistant built from the branch (see the cli-testing skill, or a platform preview):

  1. Open Integrations, find the tile, and connect. Finish the vendor sign-in.
  2. Confirm it shows as connected. assistant mcp list shows the server.
  3. Ask the assistant for something that calls one of the server's tools (for example, "list my <vendor> projects") and confirm a real result.

If nobody can test this before the next release, add <name> to MCP_CATALOG_QA_INTEGRATION_NAMES in assistant/src/cli/lib/plugin-catalog-visibility.ts, and add the vendor to the mcp-catalog-qa-integrations description in meta/feature-flags/feature-flag-registry.json and clients/web/src/lib/feature-flags/feature-flag-registry.json. Then the entry stays hidden until it passes QA.

The flag key and default do not change, so this needs no platform Terraform change. Check its row in meta/feature-flags/PENDING_PLATFORM_PRS.md: while the flag is not provisioned, nobody can turn it on remotely, so QA uses a local flag override.

10. Open the PR

  • Title: feat(marketplace): add the <Vendor> MCP server to the integrations catalog.
  • In the body, show the OAuth evidence from steps 2 and 3, the icon source, and the step 8 commands.
  • Leave step 9 unchecked in the test plan if it was not done, and say why.

© vellum-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/add-mcp-integration of vellum-ai/vellum-assistant.

Open the folder on GitHubat commit 33cc983

Compare with similar skills

Add MCP Integration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Add MCP Integration compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Add MCP Integration this skillvellum-ai/vellum-assistant1.4k—~2.8kAutomated safety check: PassMIT
MCP Integration for Pluginsanthropics/claude-plugins-official38k11 repos~3.1kAutomated safety check: PassApache-2.0
Building MCP Server On CloudflareCommandCodeAI/agent-skills133—~1.5kAutomated safety check: PassMIT
Nuxt Agent Ready Best Practicesvinayakkulkarni/nxui212—~2.4kAutomated safety check: PassMIT
Nv Onboard Dcr MCPnovuhq/novu40k—~1.8kAutomated safety check: PassCustom licence
GitLab CLI Without MCPzereight/gitlab-mcp2k—~787Automated safety check: PassMIT

Similar skills

  • MCP Integration for Plugins

    anthropics/claude-plugins-official

    Official

    Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.

    38k GitHub starsUsed in 11 repos~3.1k tokens
    Agent WorkflowsAuto-check passed
  • Building MCP Server On Cloudflare

    CommandCodeAI/agent-skills

    Builds remote MCP (Model Context Protocol) servers on Cloudflare Workers with tools, OAuth authentication, and production deployment.

    133 GitHub stars~1.5k tokensUpdated 7 mo ago
    Agent WorkflowsAuto-check passed
  • Nuxt agent-readiness guidelines for making a site operable by autonomous AI agents — not just cited by them.

    212 GitHub stars~2.4k tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed
  • Onboard a new DCR OAuth MCP catalog entry with provider-doc vetting and curl probes.

    40k GitHub stars~1.8k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • GitLab CLI Without MCP

    zereight/gitlab-mcp

    Authenticates and runs zereight-mcp-gitlab as a plain command line tool to read GitLab merge requests, diffs, discussions, issues and pipelines when no MCP client is set up.

    2k GitHub stars~787 tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Official

    Add a third-party MCP server (Linear, Notion, GitHub, ...) to the PostHog MCP store catalog.

    40k GitHub stars~1.6k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed

More from vellum-ai/vellum-assistant

All 108 skills in this repo
  • Vellum GitHub App Setup

    vellum-ai/vellum-assistant

    Create and configure a GitHub App so the assistant can push commits, open PRs, and comment under its own bot identity.

    1.4k GitHub stars~3.1k tokensUpdated 2 days ago
    Auto-check passed
  • Discord App Setup

    vellum-ai/vellum-assistant

    Connect a Discord bot to the assistant via the Discord Gateway with guided application creation and intent configuration

    1.4k GitHub stars~4.2k tokensUpdated 2 days ago
    Auto-check passed
  • Sentry App Setup

    vellum-ai/vellum-assistant

    Create and configure a Sentry internal integration so the assistant can manage issues, alerts, and releases under its own identity

    1.4k GitHub stars~1.3k tokensUpdated 2 days ago
    Auto-check passed
  • Memory Corpus Ingest

    vellum-ai/vellum-assistant

    Ingest a large dataset into memory as a skimmed map. An agent skill from vellum-ai/vellum-assistant.

    1.4k GitHub stars~3k tokensUpdated 2 days ago
    Auto-check: notes
  • Plugin Builder

    vellum-ai/vellum-assistant

    A skill your agent uses when the user wants to build, scaffold, ship, or edit a Vellum plugin that bundles multiple surfaces (hooks, tools, skills, and more) into one installable package.

    1.4k GitHub stars~3.1k tokensUpdated 2 days ago
    Auto-check passed
  • Slack App Setup

    vellum-ai/vellum-assistant

    Connect a Slack app to the Vellum Assistant via Socket Mode.

    1.4k GitHub stars~2.5k tokensUpdated 2 days ago
    Auto-check: warnings

Questions about Add MCP Integration

What does Add MCP Integration do?

Add a vendor's remote MCP server to the bundled integrations catalog (plugins/mcp-catalog/<name/ + plugins/marketplace.json) so users can connect it from the Integrations page. Add MCP Integration is an agent skill from vellum-ai/vellum-assistant.json) so users can connect it from the Integrations page.

When should I use Add MCP Integration?

Add MCP Integration fits situations like: asked to add <vendor MCP; add <vendor to integrations; check whether a vendors MCP server is an easy addition.

How do I install Add MCP Integration in Claude Code?

Run `npx skills add vellum-ai/vellum-assistant --skill add-mcp-integration -a claude-code`. Or copy the skill folder (.claude/skills/add-mcp-integration in vellum-ai/vellum-assistant) into .claude/skills/add-mcp-integration in your project. Claude Code loads it when a task matches its description.

How do I install Add MCP Integration in Codex?

Run `npx skills add vellum-ai/vellum-assistant --skill add-mcp-integration -a codex`. Or copy the skill folder (.claude/skills/add-mcp-integration in vellum-ai/vellum-assistant) into .agents/skills/add-mcp-integration in your project. Codex loads it when a task matches its description.

Can I use Add MCP Integration in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vellum-ai/vellum-assistant --skill add-mcp-integration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-mcp-integration, .gemini/skills/add-mcp-integration, .github/skills/add-mcp-integration and .opencode/skills/add-mcp-integration in your project.

What does Add MCP Integration need to run?

Going by SKILL.md and its folder, Add MCP Integration needs the command-line tools its instructions call (node, bun, curl, magick and git). Our summary lists: Docker.

Does Add MCP Integration access the network?

SKILL.md names 2 domains. In commands or code: agent-plugins.org and vellum.ai; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Add MCP Integration safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Add MCP Integration use?

Add MCP Integration is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Add MCP Integration use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Add MCP Integration?

Skills that share tags, products or a category with Add MCP Integration: MCP Integration for Plugins (anthropics/claude-plugins-official, 38k stars), Building MCP Server On Cloudflare (CommandCodeAI/agent-skills, 133 stars), Nuxt Agent Ready Best Practices (vinayakkulkarni/nxui, 212 stars) and Nv Onboard Dcr MCP (novuhq/novu, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Add MCP Integration?

vellum-ai (a GitHub organization) maintains it in vellum-ai/vellum-assistant, which has 1,408 GitHub stars. The repository holds 108 skills in this directory. The repository was last updated on October 9, 2026.

Source: vellum-ai/vellum-assistant on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.