---
title: "Connect Claude Code to tools via MCP"
source: "https://code.claude.com/docs/en/mcp"
author:
published:
created: 2026-04-17
description: "Learn how to connect Claude Code to your tools with the Model Context Protocol."
tags:
  - "clippings"
---
Claude Code can connect to hundreds of external tools and data sources through the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction), an open source standard for AI-tool integrations. MCP servers give Claude Code access to your tools, databases, and APIs.

Connect a server when you find yourself copying data into chat from another tool, like an issue tracker or a monitoring dashboard. Once connected, Claude can read and act on that system directly instead of working from what you paste.

## What you can do with MCP

With MCP servers connected, you can ask Claude Code to:

- **Implement features from issue trackers**: “Add the feature described in JIRA issue ENG-4521 and create a PR on GitHub.”
- **Analyze monitoring data**: “Check Sentry and Statsig to check the usage of the feature described in ENG-4521.”
- **Query databases**: “Find emails of 10 random users who used feature ENG-4521, based on our PostgreSQL database.”
- **Integrate designs**: “Update our standard email template based on the new Figma designs that were posted in Slack”
- **Automate workflows**: “Create Gmail drafts inviting these 10 users to a feedback session about the new feature.”
- **React to external events**: An MCP server can also act as a [channel](https://code.claude.com/docs/en/channels) that pushes messages into your session, so Claude reacts to Telegram messages, Discord chats, or webhook events while you’re away.

## Popular MCP servers

Here are some commonly used MCP servers you can connect to Claude Code:

Use third party MCP servers at your own risk - Anthropic has not verified the correctness or security of all these servers. Make sure you trust MCP servers you are installing. Be especially careful when using MCP servers that could fetch untrusted content, as these can expose you to prompt injection risk.

[**Ticket Tailor**](https://help.tickettailor.com/en/articles/11892797-how-to-connect-ticket-tailor-to-your-favourite-ai-agent)

Event platform for managing tickets, orders & more

Command

`claude mcp add --transport http tickettailor https://mcp.tickettailor.ai/mcp`

[**Linear**](https://linear.app/docs/mcp)

Manage issues, projects & team workflows in Linear

Command

`claude mcp add --transport http linear https://mcp.linear.app/mcp`

[**Hugging Face**](https://huggingface.co/settings/mcp)

Access the Hugging Face Hub and thousands of Gradio Apps

Command

`claude mcp add --transport http hugging-face https://huggingface.co/mcp`

[**Amplitude**](https://amplitude.com/docs/analytics/amplitude-mcp)

Search, access, and get insights on your Amplitude data

Command

`claude mcp add --transport http amplitude https://mcp.amplitude.com/mcp`

[**Atlassian Rovo**](https://community.atlassian.com/forums/Atlassian-Platform-articles/Using-the-Atlassian-Remote-MCP-Server-beta/ba-p/3005104)

Access Jira & Confluence from Claude

Command

`claude mcp add --transport http atlassian https://mcp.atlassian.com/v1/mcp`

[**Blockscout**](https://github.com/blockscout/mcp-server)

Access and analyze blockchain data

Command

`claude mcp add blockscout --transport http https://mcp.blockscout.com/mcp`

[**Cloudflare Developer Platform**](https://www.support.cloudflare.com/)

Build applications with compute, storage, and AI

Command

`claude mcp add --transport http cloudflare https://bindings.mcp.cloudflare.com/mcp`

[**Egnyte**](https://developers.egnyte.com/docs/Remote_MCP_Server)

Securely access and analyze Egnyte content

Command

`claude mcp add --transport http egnyte https://mcp-server.egnyte.com/mcp`

[**Figma**](https://help.figma.com/hc/en-us/articles/32132100833559)

Generate diagrams and better code from Figma context

Command

`claude mcp add --transport http figma-remote-mcp https://mcp.figma.com/mcp`

[**Guru**](https://help.getguru.com/docs/connecting-gurus-mcp-server)

Search and interact with your company knowledge

Command

`claude mcp add guru --transport http https://mcp.api.getguru.com/mcp`

[**Jotform**](https://www.jotform.com/developers/mcp/)

Create forms & analyze submissions inside Claude

Command

`claude mcp add --transport http jotform https://mcp.jotform.com/mcp-app`

[**monday.com**](https://developer.monday.com/apps/docs/mondaycom-mcp-integration)

Manage projects, boards, and workflows in monday.com

Command

`claude mcp add --transport http monday https://mcp.monday.com/mcp`

[**Notion**](https://developers.notion.com/docs/mcp)

Connect your Notion workspace to search, update, and power workflows across tools

Command

`claude mcp add --transport http notion https://mcp.notion.com/mcp`

[**PayPal**](https://mcp.paypal.com/)

Access PayPal payments platform

Command

`claude mcp add --transport http paypal https://mcp.paypal.com/mcp`

[**Stripe**](https://docs.stripe.com/mcp)

Payment processing and financial infrastructure tools

Command

`claude mcp add --transport http stripe https://mcp.stripe.com `

[**Supabase**](https://supabase.com/docs/guides/getting-started/mcp)

Manage databases, authentication, and storage

Command

`claude mcp add --transport http supabase https://mcp.supabase.com/mcp `

[**Vercel**](https://vercel.com/docs/mcp/vercel-mcp)

Analyze, debug, and manage projects and deployments

Command

` claude mcp add --transport http vercel https://mcp.vercel.com`

[**Wix**](https://dev.wix.com/docs/sdk/articles/use-the-wix-mcp/about-the-wix-mcp)

Manage and build sites and apps on Wix

Command

`claude mcp add wix --transport http https://mcp.wix.com/mcp`

[**Coupler.io**](https://help.coupler.io/article/592-coupler-local-mcp-server)

Access business data from hundreds of sources

Command

`claude mcp add --transport http coupler https://mcp.coupler.io/mcp`

[**Dice**](https://www.dice.com/about/mcp)

Find active tech jobs on Dice

Command

`claude mcp add dice --transport http https://mcp.dice.com/mcp`

[**Airtable**](https://github.com/domdomegg/airtable-mcp-server)

Read and write Airtable databases

[**Miro**](https://developers.miro.com/docs/miro-mcp)

Access and create new content on Miro boards

Command

`claude mcp add --transport http miro https://mcp.miro.com/ `

[**Port IO**](https://docs.port.io/ai-interfaces/port-mcp-server/overview-and-installation)

Search your context lake and safely run actions

Requires user-specific URL. [Get your URL here](https://docs.port.io/ai-interfaces/port-mcp-server/overview-and-installation/?mcp-setup=claude&region=eu#installing-port-mcp).

[**Aiwyn Tax (formerly Column Tax)**](https://docs.columntax.com/page/aiwyn-tax-mcp-server)

Estimate your federal & state taxes with Aiwyn's tax engine

Command

`claude mcp add --transport http aiwyn-tax https://mcp.columnapi.com/mcp `

[**Circleback**](https://circleback.ai/docs/mcp)

Search and access context from meetings

Command

`claude mcp add circleback --transport http https://app.circleback.ai/api/mcp`

[**Clarify**](https://docs.clarify.ai/en/articles/13367278-clarify-mcp)

Query your CRM. Create records. Ask anything.

Command

`claude mcp add --transport http clarify https://api.clarify.ai/mcp `

[**Clarity AI**](https://clarity-sfdr20-mcp.pro.clarity.ai/)

Simulate fund classifications under proposed SFDR 2.0

Command

`claude mcp add --transport http clarity-ai https://clarity-sfdr20-mcp.pro.clarity.ai/mcp `

[**Day AI**](https://day.ai/mcp)

Know everything about your prospects & customers with CRMx

Command

`claude mcp add day-ai --transport http https://day.ai/api/mcp`

[**bioRxiv**](https://claude.com/resources/tutorials/using-the-biorxiv-and-medrxiv-connector-in-claude)

Access bioRxiv and medRxiv preprint data

Command

`claude mcp add biorxiv --transport http https://hcls.mcp.claude.com/biorxiv/mcp`

[**ChEMBL**](https://claude.com/resources/tutorials/using-the-chembl-connector-in-claude)

Access the ChEMBL Database

Command

`claude mcp add chembl --transport http https://hcls.mcp.claude.com/chembl/mcp`

[**Clinical Trials**](https://claude.com/resources/tutorials/using-the-clinicaltrials-gov-connector-in-claude)

Access ClinicalTrials.gov data

Command

`claude mcp add clinical-trials --transport http https://hcls.mcp.claude.com/clinical_trials/mcp`

[**CMS Coverage**](https://claude.com/resources/tutorials/using-the-cms-coverage-connector-in-claude)

Access the CMS Coverage Database

Command

`claude mcp add cms-coverage --transport http https://hcls.mcp.claude.com/cms_coverage/mcp`

[**ICD-10 Codes**](https://claude.com/resources/tutorials/using-the-icd-10-connector-in-claude)

Access ICD-10-CM and ICD-10-PCS code sets

Command

`claude mcp add icd-10-codes --transport http https://hcls.mcp.claude.com/icd10_codes/mcp`

[**NPI Registry**](https://claude.com/resources/tutorials/using-the-npi-registry-connector-in-claude)

Access US National Provider Identifier (NPI) Registry

Command

`claude mcp add npi-registry --transport http https://hcls.mcp.claude.com/npi_registry/mcp`

[**DevRev**](https://support.devrev.ai/en-US/devrev/article/ART-21859-remote-mcp-server)

Search and update your company's knowledge graph

Command

`claude mcp add devrev --transport http https://api.devrev.ai/mcp/v1`

[**Exa**](https://docs.exa.ai/reference/exa-mcp)

Web Search + Code Docs Search

Command

`claude mcp add --transport http exa https://mcp.exa.ai/mcp `

[**Fiscal.ai**](https://docs.fiscal.ai/docs/guides/mcp-integration)

Clean Public Equity Fundamental Data

Command

`claude mcp add --transport sse fiscal-ai https://api.fiscal.ai/mcp/sse `

[**Granola**](https://help.granola.ai/article/granola-mcp#set-up-guide)

The AI notepad for meetings

Command

`claude mcp add --transport http granola https://mcp.granola.ai/mcp `

[**Harmonic**](https://support.harmonic.ai/en/articles/12785899-harmonic-mcp-server-getting-started-guide)

Discover, research, and enrich companies and people

Command

`claude mcp add harmonic --transport http https://mcp.api.harmonic.ai`

[**Krisp**](https://help.krisp.ai/hc/en-us/articles/25416265429660-Krisp-MCP-Supported-tools)

Add your meetings context via transcripts and notes

Command

`claude mcp add --transport http krisp https://mcp.krisp.ai/mcp `

[**Lorikeet**](https://docs.lorikeetcx.ai/mcp/mcp-server)

A universal concierge for complex businesses

Command

`claude mcp add --transport http lorikeet https://api.lorikeetcx.ai/v1/mcp `

[**LunarCrush**](https://lunarcrush.com/developers/api/ai)

Add real-time social media data to your searches

Command

`claude mcp add lunarcrush --transport http https://lunarcrush.ai/mcp`

[**Mem**](https://docs.mem.ai/mcp/overview)

The AI notebook for everything on your mind

Command

`claude mcp add --transport http mem https://mcp.mem.ai/mcp `

[**Metaview**](https://support.metaview.ai/integrations/mcp-integration/mcp-overview.mdx)

The AI platform for recruiting.

Command

`claude mcp add --transport http metaview https://mcp.metaview.ai/mcp `

[**Midpage Legal Research**](https://midpage-docs.apidocumentation.com/documentation/integration/mcp-tools)

Conduct legal research and create work product

Command

`claude mcp add --transport http midpage https://app.midpage.ai/mcp `

[**Scholar Gateway**](https://docs.scholargateway.ai/)

Enhance responses with scholarly research and citations

Command

`claude mcp add scholar-gateway --transport http https://connector.scholargateway.ai/mcp`

[**Sprouts Data Intelligence**](https://support.sprouts.ai/en/articles/13384582-sprouts-mcp-server-documentation#h_541c149a52)

From query to qualified lead in seconds.

Command

`claude mcp add --transport http sprouts https://sprouts-mcp-server.kartikay-dhar.workers.dev `

[**Gainsight (Staircase AI)**](https://support.gainsight.com/Staircase_AI/Staircase_AI_Features/Connect_Staircase_AI_to_LLMs_Using_MCP#Install_Staircase_AI_MCP_for_Claude)

Power AI Workflows with Customer Context

Command

`claude mcp add --transport http gainsight-staircase-ai https://mcp.staircase.ai/mcp `

[**Sybill**](https://api.sybill.ai/docs/mcp.html)

Ask AI about your sales calls, deals & pipeline

Command

`claude mcp add sybill --transport http https://mcp.sybill.ai/mcp`

[**Vibe Prospecting**](https://developers.explorium.ai/mcp-docs/agentsource-mcp)

Find company & contact data

Command

`claude mcp add vibe-prospecting --transport http https://vibeprospecting.explorium.ai/mcp`

[**Windsor.ai**](https://windsor.ai/introducing-windsor-mcp/#method-1-using-claude-desktop-3)

Connect 325+ marketing, analytics and CRM data sources

Command

`claude mcp add windsor-ai --transport http https://mcp.windsor.ai`

[**Gamma**](https://gamma.app/docs/Gamma-MCP-Server-Documentation-m6p43kobgzy15zj?mode=doc)

Create presentations, docs, socials, and sites with AI

Command

`claude mcp add gamma --transport http https://mcp.gamma.app/mcp`

[**Lucid**](https://help.lucid.co/hc/en-us/articles/42578801807508-Integrate-Lucid-with-AI-tools-using-the-Lucid-MCP-server)

Ideate, diagram, and align teams

Command

`claude mcp add --transport http lucid https://mcp.lucid.app/mcp `

[**Netlify**](https://docs.netlify.com/build/build-with-ai/netlify-mcp-server/)

Create, deploy, manage, and secure websites on Netlify.

Command

`claude mcp add --transport http netlify https://netlify-mcp.netlify.app/mcp`

[**AWS Marketplace**](https://docs.aws.amazon.com/marketplace/latest/APIReference/marketplace-mcp-server.html)

Discover, evaluate, and buy solutions for the cloud

Command

`claude mcp add aws-marketplace --transport http https://marketplace-mcp.us-east-1.api.aws/mcp`

[**Kindora Funder Discovery**](https://kindora.co/mcp)

Find funders who support causes like yours

Command

`claude mcp add --transport http kindora-funder-discovery https://kindora-mcp.azurewebsites.net/mcp/ `

[**Omni Analytics**](https://docs.omni.co/ai/mcp)

Query your data using natural language through Omni's semantic model

Command

`claude mcp add --transport http omni-analytics https://callbacks.omniapp.co/callback/mcp `

[**ActiveCampaign**](https://developers.activecampaign.com/page/mcp)

Autonomous marketing to transform how you work

Requires user-specific URL. [Get your URL here](https://developers.activecampaign.com/page/mcp).

[**Ahrefs**](https://docs.ahrefs.com/docs/mcp/reference/introduction)

SEO & AI search analytics

Command

`claude mcp add ahrefs --transport http https://api.ahrefs.com/mcp/mcp`

[**AirOps**](https://docs.airops.com/mcp)

Craft content that wins AI search

Command

`claude mcp add airops --transport http https://app.airops.com/mcp`

[**Airwallex Developer**](https://www.airwallex.com/docs/developer-tools/ai/developer-mcp)

Integrate with the Airwallex Platform using Claude

Command

`claude mcp add --transport http airwallex-developer https://mcp-demo.airwallex.com/developer `

[**Asana**](https://developers.asana.com/docs/mcp-server)

Connect to Asana to coordinate tasks, projects, and goals

Command

`claude mcp add --transport http asana https://mcp.asana.com/v2/mcp`

[**Attio**](https://docs.attio.com/mcp/overview)

Search, manage, and update your Attio CRM from Claude

Command

`claude mcp add --transport http attio https://mcp.attio.com/mcp `

[**Aura**](https://docs.getaura.ai/)

Company intelligence & workforce analytics

Command

`claude mcp add --transport http auraintelligence https://mcp.auraintelligence.com/mcp`

[**Benchling**](https://help.benchling.com/hc/en-us/articles/40342713479437-Benchling-MCP)

Connect to R&D data, source experiments, and notebooks

Requires user-specific URL. [Get your URL here](https://help.benchling.com/hc/en-us/articles/40342713479437-Benchling-MCP).

[**BioRender**](https://help.biorender.com/hc/en-gb/articles/30870978672157-How-to-use-the-BioRender-MCP-connector)

Search for and use scientific templates and icons

Command

`claude mcp add biorender --transport http https://mcp.services.biorender.com/mcp`

[**Bitly**](https://dev.bitly.com/bitly-mcp/)

Shorten links, generate QR Codes, and track performance

Command

`claude mcp add bitly --transport http https://api-ssl.bitly.com/v4/mcp`

[**MT Newswires**](https://console.blueskyapi.com/docs/EDGE/news/MT_NEWSWIRES_Global#mcp)

Trusted real-time global financial news provider

Command

`claude mcp add --transport http mtnewswire `

[**Box**](https://developer.box.com/guides/box-mcp)

Search, access and get insights on your Box content

Command

`claude mcp add box --transport http https://mcp.box.com`

[**Canva**](https://www.canva.dev/docs/connect/canva-mcp-server-setup/)

Search, create, autofill, and export Canva designs

Command

`claude mcp add --transport http canva https://mcp.canva.com/mcp`

[**CB Insights**](https://mcp.cbinsights.com/)

Predictive intelligence on private companies

Command

`claude mcp add --transport http cb-insights https://mcp.cbinsights.com `

[**CData Connect AI**](https://cloud.cdata.com/docs/Claude-Client.html)

Managed MCP platform for 350 sources

Command

`claude mcp add cdata-connect-ai --transport http https://mcp.cloud.cdata.com/mcp`

[**PubMed**](https://support.claude.com/en/)

Search biomedical literature from PubMed

Command

`claude mcp add pubmed --transport http https://pubmed.mcp.claude.com/mcp`

[**Clay**](https://www.notion.so/clayrun/Clay-Claude-MCP-Server-Documentation-2ef7e66eb01480c9820de48041591aeb?showMoveTo=true&saveParent=true)

Find prospects. Research accounts. Personalize outreach

Command

`claude mcp add --transport http clay https://api.clay.com/v3/mcp `

[**Clerk**](https://clerk.com/docs/guides/ai/mcp/clerk-mcp-server)

Add authentication, organizations, and billing

Command

`claude mcp add --transport http clerk https://mcp.clerk.com/mcp `

[**ClickUp**](https://help.clickup.com/hc/en-us/articles/33335772678423-What-is-ClickUp-MCP)

Project management & collaboration for teams & agents

Command

`claude mcp add clickup --transport http https://mcp.clickup.com/mcp`

[**Cloudinary**](https://cloudinary.com/documentation/cloudinary_llm_mcp#available_mcp_servers)

Manage, transform and deliver your images & videos

Command

`claude mcp add --transport http cloudinary https://asset-management.mcp.cloudinary.com/sse`

[**Consensus**](https://docs.consensus.app/docs/mcp)

Explore scientific research

Command

`claude mcp add --transport http consensus https://mcp.consensus.app/mcp `

[**Context7**](https://context7.com/docs/overview)

Up-to-date docs for LLMs and AI code editors

Command

`claude mcp add --transport http context7 https://mcp.context7.com/mcp `

[**Crossbeam**](https://help.crossbeam.com/en/articles/12601327-crossbeam-mcp-server-beta)

Explore partner data and ecosystem insights in Claude

Command

`claude mcp add crossbeam --transport http https://mcp.crossbeam.com`

Real time prices, orders, charts, and more for crypto

Command

`claude mcp add --transport http crypto.com https://mcp.crypto.com/market-data/mcp`

[**Databricks**](https://docs.databricks.com/aws/en/generative-ai/mcp/connect-external-services)

Managed MCP servers with Unity Catalog and Mosaic AI

Requires user-specific URL. [Get your URL here](https://docs.databricks.com/aws/en/generative-ai/mcp/connect-external-services).

[**DataGrail**](https://docs.datagrail.io/docs/vera/vera-mcp/introduction-and-use)

Secure, production-ready AI orchestration for privacy

Requires user-specific URL. [Get your URL here](https://docs.datagrail.io/docs/vera/vera-mcp/introduction-and-use).

[**Enterpret Wisdom**](https://helpcenter.enterpret.com/en/articles/12665166-wisdom-mcp-server)

Get answers from unified feedback of your customers.

Command

`claude mcp add --transport http enterpret-wisdom https://wisdom-api.enterpret.com/server/mcp `

[**Fever Event Discovery**](https://developer.feverup.com/)

Discover live entertainment events worldwide

Command

`claude mcp add --transport http fever-event-discovery https://data-search.apigw.feverup.com/mcp `

[**Glean**](https://docs.glean.com/administration/platform/mcp/about)

Bring enterprise context to Claude and your AI tools

Requires user-specific URL. [Get your URL here](https://docs.glean.com/administration/platform/mcp/about).

[**GoCardless**](https://developer.gocardless.com/developer-tools/mcp/)

Build GoCardless payment API integrations

Command

`claude mcp add --transport http gocardless https://mcp.gocardless.com `

[**GoDaddy**](https://developer.godaddy.com/mcp)

Search domains and check availability

Command

`claude mcp add --transport http godaddy https://api.godaddy.com/v1/domains/mcp`

[**Google Cloud BigQuery**](https://cloud.google.com/bigquery/docs/use-bigquery-mcp)

BigQuery: Advanced analytical insights for agents

Command

`claude mcp add --transport http bigquery https://bigquery.googleapis.com/mcp `

[**Granted**](https://grantedai.com/mcp)

Discover every grant opportunity in existence.

Command

`claude mcp add --transport http granted https://grantedai.com/api/mcp/mcp `

[**IFTTT**](https://ift.tt/ai_assistants)

Connect, control, and automate 1,000+ apps with IFTTT

Command

`claude mcp add --transport http ifttt https://ifttt.com/mcp `

[**Medidata**](https://learn.medidata.com/en-US/bundle/mcp-server-documentation/page/medidata_mcp_server_documentation.html)

Clinical trial software and site ranking tools

Command

`claude mcp add medidata --transport http https://mcp.imedidata.com/mcp`

[**Intercom**](https://developers.intercom.com/docs/guides/mcp)

Access to Intercom data for better customer insights

Command

`claude mcp add --transport http intercom https://mcp.intercom.com/mcp`

[**PlayMCP**](https://www.notion.so/2189b97b4888803dbbdcef264e7eff58)

Connect and use PlayMCP servers in your toolbox

Command

`claude mcp add playmcp --transport http https://playmcp.kakao.com/mcp`

[**Klaviyo**](https://developers.klaviyo.com/en/docs/klaviyo_mcp_server)

Report, strategize & create with real-time Klaviyo data

Command

`claude mcp add klaviyo --transport http https://mcp.klaviyo.com/mcp?include-mcp-app=true`

Search, compare and book flights, dynamic packages (flight + hotel) and hotels across global airlines and hotel suppliers.

Command

`claude mcp add lastminute-com --transport http https://mcp.lastminute.com/mcp`

[**LILT**](https://support.lilt.com/kb/LILT-mcp)

High-quality translation with human verification

Command

`claude mcp add --transport http lilt https://mcp.lilt.com/mcp `

[**Local Falcon**](https://github.com/local-falcon/mcp)

AI visibility and local search intelligence platform

Command

`claude mcp add --transport sse local-falcon https://mcp.localfalcon.com `

[**Lumin**](https://github.com/luminpdf/lumin-mcp-server)

Manage documents, send signature requests, and convert Markdown to PDF

Command

`claude mcp add --transport http lumin https://mcp.luminpdf.com/mcp `

[**Magic Patterns**](https://www.magicpatterns.com/docs/documentation/features/mcp-server/overview)

Discuss and iterate on Magic Patterns designs

Command

`claude mcp add --transport http magic-patterns https://mcp.magicpatterns.com/mcp `

[**MailerLite**](https://developers.mailerlite.com/mcp/#how-mcp-works)

Turn Claude into your email marketing assistant

Command

`claude mcp add --transport http mailerlite https://mcp.mailerlite.com/mcp `

[**Make**](https://developers.make.com/mcp-server/)

Run Make scenarios and manage your Make account

Command

`claude mcp add --transport http make https://mcp.make.com `

[**Melon**](https://tech.kakaoent.com/ai/using-melon-mcp-server-en/)

Browse music charts & your personalized music picks

Command

`claude mcp add melon --transport http https://mcp.melon.com/mcp/`

[**Mercury**](https://docs.mercury.com/docs/connecting-mercury-mcp)

Search, analyze and understand your finances on Mercury

Command

`claude mcp add mercury --transport http https://mcp.mercury.com/mcp`

[**Microsoft Learn**](https://learn.microsoft.com/en-us/training/support/mcp)

Search trusted Microsoft docs to power your development

Command

`claude mcp add --transport http microsoft-learn https://learn.microsoft.com/api/mcp `

[**Mixpanel**](https://docs.mixpanel.com/docs/features/mcp)

Analyze, query, and manage your Mixpanel data

Command

`claude mcp add --transport http mixpanel https://mcp.mixpanel.com/mcp `

[**MotherDuck**](https://motherduck.com/docs/sql-reference/mcp/)

Get answers from your data

Command

`claude mcp add motherduck --transport http https://api.motherduck.com/mcp`

[**NetSuite**](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/article_7200233106.html)

Connect Claude to NetSuite data for analysis & insights

Requires user-specific URL. [Get your URL here](https://system.netsuite.com/mcp/mcpinfo.nl).

[**Owkin**](https://docs.owkin.com/core-features-and-usage)

Interact with AI agents built for biology

Command

`claude mcp add owkin --transport http https://mcp.k.owkin.com/mcp`

[**Pigment**](https://kb.pigment.com/docs/mcp-server)

Analyze business data

Requires user-specific URL. [Get your URL here](https://kb.pigment.com/docs/mcp-server).

[**Postman**](https://github.com/postmanlabs/postman-mcp-server)

Give API context to your coding agents

Command

`claude mcp add --transport http postman https://mcp.postman.com/minimal `

Financial data and AI infrastructure for company research.

Command

`claude mcp add --transport http quartr https://mcp.quartr.com/mcp `

[**Ramp**](https://docs.ramp.com/developer-api/v1/guides/ramp-mcp-remote)

Search, access, and analyze your Ramp financial data

Command

`claude mcp add --transport http ramp https://ramp-mcp-remote.ramp.com/mcp`

[**Similarweb**](https://docs.similarweb.com/api-v5/mcp/mcp-setup)

Real time web, mobile app, and market data.

Command

`claude mcp add --transport http similarweb https://mcp.similarweb.com `

[**Slack**](https://docs.slack.dev/ai/mcp-server)

Send messages, create canvases, and fetch Slack data

Command

`claude mcp add --transport http --client-id 1601185624273.8899143856786 --callback-port 3118 slack https://mcp.slack.com/mcp `

[**Smartsheet**](https://help.smartsheet.com/articles/2483663-use-smartsheet-connector-claude)

Analyze and manage Smartsheet data with Claude

Requires user-specific URL. [Get your URL here](https://help.smartsheet.com/articles/2483656-install-smartsheet-connector-claude#toc-get-started).

[**Snowflake**](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents-mcp)

Retrieve both structured and unstructured data

Requires user-specific URL. [Get your URL here](https://docs.snowflake.com/en/user-guide/admin-account-identifier#label-account-name-find).

[**AdisInsight**](https://adisinsight-mcp.springer.com/)

Pharmaceutical drug & clinical trial intelligence

Command

`claude mcp add --transport http adisinsight https://adisinsight-mcp.springer.com/mcp `

[**Square**](https://developer.squareup.com/docs/mcp)

Search and manage transaction, merchant, and payment data

Command

`claude mcp add --transport sse square https://mcp.squareup.com/sse `

[**Tavily**](https://docs.tavily.com/documentation/mcp)

Connect your AI agents to the web

Command

`claude mcp add --transport http tavily https://mcp.tavily.com/mcp `

[**pg-aiguide**](https://github.com/timescale/pg-aiguide)

Search pg and Tiger docs, learn database skills

Command

`claude mcp add --transport http pg-aiguide https://mcp.tigerdata.com/docs `

Find your ideal hotel at the best price.

Command

`claude mcp add --transport http trivago https://mcp.trivago.com/mcp`

[**Udemy Business**](https://business-support.udemy.com/hc/en-us/articles/34213384429335-How-to-Integrate-the-Udemy-Business-MCP-Server-With-Your-AI-Tool#h_01K9CA42YGCV1AVXPY1RKABKP1)

Search and explore skill-building resources

Command

`claude mcp add udemy-business --transport http https://api.udemy.com/mcp`

[**Pylon**](https://support.usepylon.com/articles/2407390554-connecting-to-the-pylon-mcp-server?lang=en)

Search and manage Pylon support issues

Command

`claude mcp add --transport http pylon https://mcp.usepylon.com/ `

[**Visier**](https://docs.visier.com/developer/agents/mcp/mcp-server.htm)

Find people, productivity and business impact insights

Requires user-specific URL. [Get your URL here](https://docs.visier.com/developer/agents/mcp/mcp-server-set-up.htm).

[**Webflow**](https://developers.webflow.com/mcp/v1.0.0/reference/overview)

Manage Webflow CMS, pages, assets and sites

Command

`claude mcp add --transport http webflow https://mcp.webflow.com/mcp `

[**WordPress.com**](https://developer.wordpress.com/docs/mcp/)

Secure AI access to manage your WordPress.com sites

Command

`claude mcp add wordpress-com --transport http https://public-api.wordpress.com/wpcom/v2/mcp/v1`

[**Workato**](https://docs.workato.com/en/mcp.html)

Automate workflows and connect your business apps

Requires user-specific URL. [Get your URL here](https://app.workato.com/ai_hub/mcp).

[**Wyndham Hotels and Resorts**](https://www.wyndhamhotels.com/mcp-doc)

Discover the right Wyndham Hotel for you, faster

Command

`claude mcp add --transport http wyndham-hotels https://mcp.wyndhamhotels.com/claude/mcp `

[**Zapier**](https://docs.zapier.com/mcp/home)

Automate workflows across thousands of apps via conversation

Command

`claude mcp add zapier --transport http https://mcp.zapier.com/api/v1/connect`

[**Zoho Books**](https://help.zoho.com/portal/en/kb/mcp/getting-started/articles/zoho-mcp-help-documentation-29-9-2025)

Zoho Books MCP for Smart Finance Ops

Command

`claude mcp add --transport http zoho-books {url} `

[**Zoho CRM**](https://help.zoho.com/portal/en/kb/mcp/getting-started/articles/zoho-mcp-help-documentation-29-9-2025)

MCP Server for Zoho CRM Workflows

Command

`claude mcp add --transport http zoho-crm {url} `

[**Zoho Desk**](https://help.zoho.com/portal/en/kb/mcp/getting-started/articles/zoho-mcp-help-documentation-29-9-2025)

Zoho Desk MCP for Customer Support Automation

Command

`claude mcp add --transport http zoho-desk {url} `

[**Zoho Projects**](https://help.zoho.com/portal/en/kb/mcp/getting-started/articles/zoho-mcp-help-documentation-29-9-2025)

Zoho Projects MCP for Task & Project Automation

Command

`claude mcp add --transport http zoho-projects {url} `

[**ZoomInfo**](https://docs.zoominfo.com/docs/zi-api-mcp-overview/)

Enrich contacts & accounts with GTM intelligence

Command

`claude mcp add --transport http zoominfo https://mcp.zoominfo.com/mcp`

[**Jam**](https://jam.dev/docs/debug-a-jam/mcp)

Record screen and collect automatic context for issues

Command

`claude mcp add --transport http jam https://mcp.jam.dev/mcp `

[**PlanetScale**](https://planetscale.com/docs/connect/mcp)

Authenticated access to your Postgres and MySQL DB's

Command

`claude mcp add --transport http planetscale https://mcp.pscale.dev/mcp/planetscale `

[**Sentry**](https://docs.sentry.io/product/sentry-mcp/)

Search, query, and debug errors intelligently

Command

`claude mcp add --transport http sentry https://mcp.sentry.dev/mcp`

[**Craft**](https://documents.craft.me/jWeCVJrSfxFRuA)

Notes & second brain

Command

`claude mcp add --transport http craft https://mcp.craft.do/my/mcp `

[**MoSPI**](https://www.datainnovation.mospi.gov.in/mospi-mcp)

India's official statistics via natural language

Command

`claude mcp add --transport http mospi https://mcp.mospi.gov.in/ `

[**GraphOS MCP Tools**](https://www.apollographql.com/docs/graphos/platform/graphos-mcp-tools)

Search Apollo docs, specs, and best practices

Command

`claude mcp add --transport http graphos-tools https://mcp.apollographql.com `

[**Customer.io**](https://docs.customer.io/ai/mcp-server/)

Explore customer data and generate insights via Claude

Requires user-specific URL. [Get your URL here](https://docs.customer.io/ai/mcp-server/).

[**PostHog**](https://posthog.com/docs/model-context-protocol)

Query, analyze, and manage your PostHog insights

Command

`claude mcp add --transport http posthog https://mcp.posthog.com/mcp `

[**Honeycomb**](https://docs.honeycomb.io/troubleshoot/product-lifecycle/beta/mcp/)

Query and explore observability data and SLOs

Command

`claude mcp add --transport http honeycomb https://mcp.honeycomb.io/mcp`

[**incident.io**](https://docs.incident.io/ai/remote-mcp)

See and manage everything in incident.io

Command

`claude mcp add incident-io --transport http https://mcp.incident.io/mcp`

[**n8n**](https://docs.n8n.io/advanced-ai/accessing-n8n-mcp-server/)

Access and run your n8n workflows

Requires user-specific URL. [Get your URL here](https://docs.n8n.io/advanced-ai/accessing-n8n-mcp-server/).

[**Outreach**](https://support.outreach.io/hc/en-us/articles/46370115253403-Outreach-MCP-Server)

Unleash your team's best performance with Outreach AI

Command

`claude mcp add --transport http outreach https://api.outreach.io/mcp/ `

[**Pendo**](https://support.pendo.io/hc/en-us/articles/41102236924955)

Connect to Pendo for product and user insights

Requires user-specific URL. [Get your URL here](https://support.pendo.io/hc/en-us/articles/41102236924955).

[**Sanity**](https://www.sanity.io/docs/ai/mcp-server)

Create, query, and manage structured content in Sanity

Command

`claude mcp add --transport http sanity https://mcp.sanity.io `

[**Starburst**](https://docs.starburst.io/starburst-galaxy/ai-workflows/mcp-server.html)

Securely retrieve data from your federated data sources

Requires user-specific URL. [Get your URL here](https://docs.starburst.io/starburst-galaxy/ai-workflows/mcp-server.html).

[**Unthread**](https://docs.unthread.io/docs/unthread-ai/unthread-mcp)

Manage and automate your support tickets

Command

`claude mcp add --transport http unthread https://app.unthread.io/api/mcp `

[**Zocks**](https://help.zocks.io/en/articles/14075856-connect-to-the-zocks-mcp-server)

Analyze client conversations, patterns, and insights.

Command

`claude mcp add --transport http zocks https://mcp.zocks.io/v1/mcp `

[**Candid**](https://support.claude.com/en/articles/12923235-using-the-candid-connector-in-claude)

Research nonprofits and funders using Candid's data

Command

`claude mcp add candid --transport http https://mcp.candid.org/mcp`

[**Open Targets**](https://github.com/opentargets/open-targets-platform-mcp)

Drug target discovery and prioritisation platform

Command

`claude mcp add open-targets --transport http https://mcp.platform.opentargets.org/mcp`

[**Synapse.org**](https://github.com/susheel/synapse-mcp?tab=readme-ov-file#synapse-mcp-server)

Search and metadata tools for Synapse scientific data

Command

`claude mcp add synapse-org --transport http https://mcp.synapse.org/mcp`

[**Chronograph**](https://lp-help.chronograph.pe/article/735-chronograph-mcp)

Interact with your Chronograph data directly in Claude

Command

`claude mcp add --transport http chronograph https://ai.chronograph.pe/mcp`

[**Hex**](https://learn.hex.tech/docs/administration/mcp-server)

Answer questions with the Hex agent

Requires user-specific URL. [Get your URL here](https://learn.hex.tech/docs/administration/mcp-server#connect-to-claude).

**Need a specific integration?** [Find hundreds more MCP servers on GitHub](https://github.com/modelcontextprotocol/servers), or build your own using the [MCP SDK](https://modelcontextprotocol.io/quickstart/server).

## Installing MCP servers

MCP servers can be configured in three different ways depending on your needs:

### Option 1: Add a remote HTTP server

HTTP servers are the recommended option for connecting to remote MCP servers. This is the most widely supported transport for cloud-based services.

```shellscript
# Basic syntax
claude mcp add --transport http <name> <url>

# Real example: Connect to Notion
claude mcp add --transport http notion https://mcp.notion.com/mcp

# Example with Bearer token
claude mcp add --transport http secure-api https://api.example.com/mcp \
  --header "Authorization: Bearer your-token"
```

### Option 2: Add a remote SSE server

The SSE (Server-Sent Events) transport is deprecated. Use HTTP servers instead, where available.

```shellscript
# Basic syntax
claude mcp add --transport sse <name> <url>

# Real example: Connect to Asana
claude mcp add --transport sse asana https://mcp.asana.com/sse

# Example with authentication header
claude mcp add --transport sse private-api https://api.company.com/sse \
  --header "X-API-Key: your-key-here"
```

### Option 3: Add a local stdio server

Stdio servers run as local processes on your machine. They’re ideal for tools that need direct system access or custom scripts.

```shellscript
# Basic syntax
claude mcp add [options] <name> -- <command> [args...]

# Real example: Add Airtable server
claude mcp add --transport stdio --env AIRTABLE_API_KEY=YOUR_KEY airtable \
  -- npx -y airtable-mcp-server
```

**Important: Option ordering**

All options (`--transport`, `--env`, `--scope`, `--header`) must come **before** the server name. The `--` (double dash) then separates the server name from the command and arguments that get passed to the MCP server.

For example:

- `claude mcp add --transport stdio myserver -- npx server` → runs `npx server`
- `claude mcp add --transport stdio --env KEY=value myserver -- python server.py --port 8080` → runs `python server.py --port 8080` with `KEY=value` in environment

This prevents conflicts between Claude’s flags and the server’s flags.

### Managing your servers

Once configured, you can manage your MCP servers with these commands:

```shellscript
# List all configured servers
claude mcp list

# Get details for a specific server
claude mcp get github

# Remove a server
claude mcp remove github

# (within Claude Code) Check server status
/mcp
```

### Dynamic tool updates

Claude Code supports MCP `list_changed` notifications, allowing MCP servers to dynamically update their available tools, prompts, and resources without requiring you to disconnect and reconnect. When an MCP server sends a `list_changed` notification, Claude Code automatically refreshes the available capabilities from that server.

### Automatic reconnection

If an HTTP or SSE server disconnects mid-session, Claude Code automatically reconnects with exponential backoff: up to five attempts, starting at a one-second delay and doubling each time. The server appears as pending in `/mcp` while reconnection is in progress. After five failed attempts the server is marked as failed and you can retry manually from `/mcp`. Stdio servers are local processes and are not reconnected automatically.

### Push messages with channels

An MCP server can also push messages directly into your session so Claude can react to external events like CI results, monitoring alerts, or chat messages. To enable this, your server declares the `claude/channel` capability and you opt it in with the `--channels` flag at startup. See [Channels](https://code.claude.com/docs/en/channels) to use an officially supported channel, or [Channels reference](https://code.claude.com/docs/en/channels-reference) to build your own.

Tips:

- Use the `--scope` flag to specify where the configuration is stored:
	- `local` (default): Available only to you in the current project (was called `project` in older versions)
		- `project`: Shared with everyone in the project via `.mcp.json` file
		- `user`: Available to you across all projects (was called `global` in older versions)
- Set environment variables with `--env` flags (for example, `--env KEY=value`)
- Configure MCP server startup timeout using the MCP\_TIMEOUT environment variable (for example, `MCP_TIMEOUT=10000 claude` sets a 10-second timeout)
- Claude Code will display a warning when MCP tool output exceeds 10,000 tokens. To increase this limit, set the `MAX_MCP_OUTPUT_TOKENS` environment variable (for example, `MAX_MCP_OUTPUT_TOKENS=50000`)
- Use `/mcp` to authenticate with remote servers that require OAuth 2.0 authentication

**Windows Users**: On native Windows (not WSL), local MCP servers that use `npx` require the `cmd /c` wrapper to ensure proper execution.

```shellscript
# This creates command="cmd" which Windows can execute
claude mcp add --transport stdio my-server -- cmd /c npx -y @some/package
```

Without the `cmd /c` wrapper, you’ll encounter “Connection closed” errors because Windows cannot directly execute `npx`. (See the note above for an explanation of the `--` parameter.)

### Plugin-provided MCP servers

[Plugins](https://code.claude.com/docs/en/plugins) can bundle MCP servers, automatically providing tools and integrations when the plugin is enabled. Plugin MCP servers work identically to user-configured servers.

**How plugin MCP servers work**:

- Plugins define MCP servers in `.mcp.json` at the plugin root or inline in `plugin.json`
- When a plugin is enabled, its MCP servers start automatically
- Plugin MCP tools appear alongside manually configured MCP tools
- Plugin servers are managed through plugin installation (not `/mcp` commands)

**Example plugin MCP configuration**:

In `.mcp.json` at plugin root:

```json
{
  "mcpServers": {
    "database-tools": {
      "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
      "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
      "env": {
        "DB_URL": "${DB_URL}"
      }
    }
  }
}
```

Or inline in `plugin.json`:

```json
{
  "name": "my-plugin",
  "mcpServers": {
    "plugin-api": {
      "command": "${CLAUDE_PLUGIN_ROOT}/servers/api-server",
      "args": ["--port", "8080"]
    }
  }
}
```

**Plugin MCP features**:

- **Automatic lifecycle**: At session startup, servers for enabled plugins connect automatically. If you enable or disable a plugin during a session, run `/reload-plugins` to connect or disconnect its MCP servers
- **Environment variables**: use `${CLAUDE_PLUGIN_ROOT}` for bundled plugin files and `${CLAUDE_PLUGIN_DATA}` for [persistent state](https://code.claude.com/docs/en/plugins-reference#persistent-data-directory) that survives plugin updates
- **User environment access**: Access to same environment variables as manually configured servers
- **Multiple transport types**: Support stdio, SSE, and HTTP transports (transport support may vary by server)

**Viewing plugin MCP servers**:

```shellscript
# Within Claude Code, see all MCP servers including plugin ones
/mcp
```

Plugin servers appear in the list with indicators showing they come from plugins.

**Benefits of plugin MCP servers**:

- **Bundled distribution**: Tools and servers packaged together
- **Automatic setup**: No manual MCP configuration needed
- **Team consistency**: Everyone gets the same tools when plugin is installed

See the [plugin components reference](https://code.claude.com/docs/en/plugins-reference#mcp-servers) for details on bundling MCP servers with plugins.

## MCP installation scopes

MCP servers can be configured at three scopes. The scope you choose controls which projects the server loads in and whether the configuration is shared with your team.

| Scope | Loads in | Shared with team | Stored in |
| --- | --- | --- | --- |
| [Local](#local-scope) | Current project only | No | `~/.claude.json` |
| [Project](#project-scope) | Current project only | Yes, via version control | `.mcp.json` in project root |
| [User](#user-scope) | All your projects | No | `~/.claude.json` |

### Local scope

Local scope is the default. A local-scoped server loads only in the project where you added it and stays private to you. Claude Code stores it in `~/.claude.json` under that project’s path, so the same server won’t appear in your other projects. Use local scope for personal development servers, experimental configurations, or servers with credentials you don’t want in version control.

The term “local scope” for MCP servers differs from general local settings. MCP local-scoped servers are stored in `~/.claude.json` (your home directory), while general local settings use `.claude/settings.local.json` (in the project directory). See [Settings](https://code.claude.com/docs/en/settings#settings-files) for details on settings file locations.

```shellscript
# Add a local-scoped server (default)
claude mcp add --transport http stripe https://mcp.stripe.com

# Explicitly specify local scope
claude mcp add --transport http stripe --scope local https://mcp.stripe.com
```

The command writes the server into the entry for your current project inside `~/.claude.json`. The example below shows the result when you run it from `/path/to/your/project`:

```json
{
  "projects": {
    "/path/to/your/project": {
      "mcpServers": {
        "stripe": {
          "type": "http",
          "url": "https://mcp.stripe.com"
        }
      }
    }
  }
}
```

### Project scope

Project-scoped servers enable team collaboration by storing configurations in a `.mcp.json` file at your project’s root directory. This file is designed to be checked into version control, ensuring all team members have access to the same MCP tools and services. When you add a project-scoped server, Claude Code automatically creates or updates this file with the appropriate configuration structure.

```shellscript
# Add a project-scoped server
claude mcp add --transport http paypal --scope project https://mcp.paypal.com/mcp
```

The resulting `.mcp.json` file follows a standardized format:

```json
{
  "mcpServers": {
    "shared-server": {
      "command": "/path/to/server",
      "args": [],
      "env": {}
    }
  }
}
```

For security reasons, Claude Code prompts for approval before using project-scoped servers from `.mcp.json` files. If you need to reset these approval choices, use the `claude mcp reset-project-choices` command.

### User scope

User-scoped servers are stored in `~/.claude.json` and provide cross-project accessibility, making them available across all projects on your machine while remaining private to your user account. This scope works well for personal utility servers, development tools, or services you frequently use across different projects.

```shellscript
# Add a user server
claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic
```

### Scope hierarchy and precedence

When the same server is defined in more than one place, Claude Code connects to it once, using the definition from the highest-precedence source:

1. Local scope
2. Project scope
3. User scope
4. [Plugin-provided servers](https://code.claude.com/docs/en/plugins)
5. [claude.ai connectors](#use-mcp-servers-from-claude-ai)

The three scopes match duplicates by name. Plugins and connectors match by endpoint, so one that points at the same URL or command as a server above is treated as a duplicate.

### Environment variable expansion in.mcp.json

Claude Code supports environment variable expansion in `.mcp.json` files, allowing teams to share configurations while maintaining flexibility for machine-specific paths and sensitive values like API keys.

**Supported syntax:**

- `${VAR}` - Expands to the value of environment variable `VAR`
- `${VAR:-default}` - Expands to `VAR` if set, otherwise uses `default`

**Expansion locations:** Environment variables can be expanded in:

- `command` - The server executable path
- `args` - Command-line arguments
- `env` - Environment variables passed to the server
- `url` - For HTTP server types
- `headers` - For HTTP server authentication

**Example with variable expansion:**

```json
{
  "mcpServers": {
    "api-server": {
      "type": "http",
      "url": "${API_BASE_URL:-https://api.example.com}/mcp",
      "headers": {
        "Authorization": "Bearer ${API_KEY}"
      }
    }
  }
}
```

If a required environment variable is not set and has no default value, Claude Code will fail to parse the config.

## Practical examples

### Example: Monitor errors with Sentry

```shellscript
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
```

Authenticate with your Sentry account:

```text
/mcp
```

Then debug production issues:

```text
What are the most common errors in the last 24 hours?
```

```text
Show me the stack trace for error ID abc123
```

```text
Which deployment introduced these new errors?
```

### Example: Connect to GitHub for code reviews

```shellscript
claude mcp add --transport http github https://api.githubcopilot.com/mcp/
```

Authenticate if needed by selecting “Authenticate” for GitHub:

```text
/mcp
```

Then work with GitHub:

```text
Review PR #456 and suggest improvements
```

```text
Create a new issue for the bug we just found
```

```text
Show me all open PRs assigned to me
```

### Example: Query your PostgreSQL database

```shellscript
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
  --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"
```

Then query your database naturally:

```text
What's our total revenue this month?
```

```text
Show me the schema for the orders table
```

```text
Find customers who haven't made a purchase in 90 days
```

## Authenticate with remote MCP servers

Many cloud-based MCP servers require authentication. Claude Code supports OAuth 2.0 for secure connections.

Tips:

- Authentication tokens are stored securely and refreshed automatically
- Use “Clear authentication” in the `/mcp` menu to revoke access
- If your browser doesn’t open automatically, copy the provided URL and open it manually
- If the browser redirect fails with a connection error after authenticating, paste the full callback URL from your browser’s address bar into the URL prompt that appears in Claude Code
- OAuth authentication works with HTTP servers

### Use a fixed OAuth callback port

Some MCP servers require a specific redirect URI registered in advance. By default, Claude Code picks a random available port for the OAuth callback. Use `--callback-port` to fix the port so it matches a pre-registered redirect URI of the form `http://localhost:PORT/callback`.

You can use `--callback-port` on its own (with dynamic client registration) or together with `--client-id` (with pre-configured credentials).

```shellscript
# Fixed callback port with dynamic client registration
claude mcp add --transport http \
  --callback-port 8080 \
  my-server https://mcp.example.com/mcp
```

### Use pre-configured OAuth credentials

Some MCP servers don’t support automatic OAuth setup via Dynamic Client Registration. If you see an error like “Incompatible auth server: does not support dynamic client registration,” the server requires pre-configured credentials. Claude Code also supports servers that use a Client ID Metadata Document (CIMD) instead of Dynamic Client Registration, and discovers these automatically. If automatic discovery fails, register an OAuth app through the server’s developer portal first, then provide the credentials when adding the server.

Tips:

- The client secret is stored securely in your system keychain (macOS) or a credentials file, not in your config
- If the server uses a public OAuth client with no secret, use only `--client-id` without `--client-secret`
- `--callback-port` can be used with or without `--client-id`
- These flags only apply to HTTP and SSE transports. They have no effect on stdio servers
- Use `claude mcp get <name>` to verify that OAuth credentials are configured for a server

### Override OAuth metadata discovery

Point Claude Code at a specific OAuth authorization server metadata URL to bypass the default discovery chain. Set `authServerMetadataUrl` when the MCP server’s standard endpoints error, or when you want to route discovery through an internal proxy. By default, Claude Code first checks RFC 9728 Protected Resource Metadata at `/.well-known/oauth-protected-resource`, then falls back to RFC 8414 authorization server metadata at `/.well-known/oauth-authorization-server`.

Set `authServerMetadataUrl` in the `oauth` object of your server’s config in `.mcp.json`:

```json
{
  "mcpServers": {
    "my-server": {
      "type": "http",
      "url": "https://mcp.example.com/mcp",
      "oauth": {
        "authServerMetadataUrl": "https://auth.example.com/.well-known/openid-configuration"
      }
    }
  }
}
```

The URL must use `https://`. `authServerMetadataUrl` requires Claude Code v2.1.64 or later. The metadata URL’s `scopes_supported` overrides the scopes the upstream server advertises.

### Restrict OAuth scopes

Set `oauth.scopes` to pin the scopes Claude Code requests during the authorization flow. This is the supported way to restrict an MCP server to a security-team-approved subset when the upstream authorization server advertises more scopes than you want to grant. The value is a single space-separated string, matching the `scope` parameter format in RFC 6749 §3.3.

```json
{
  "mcpServers": {
    "slack": {
      "type": "http",
      "url": "https://mcp.slack.com/mcp",
      "oauth": {
        "scopes": "channels:read chat:write search:read"
      }
    }
  }
}
```

`oauth.scopes` takes precedence over both `authServerMetadataUrl` and the scopes the server discovers at `/.well-known`. Leave it unset to let the MCP server determine the requested scope set.

If the authorization server advertises `offline_access` in `scopes_supported`, Claude Code appends it to the pinned scopes so the access token can be refreshed without a new browser sign-in.

If the server later returns a 403 `insufficient_scope` for a tool call, Claude Code re-authenticates with the same pinned scopes. Widen `oauth.scopes` when a tool you need requires a scope outside the pin.

### Use dynamic headers for custom authentication

If your MCP server uses an authentication scheme other than OAuth (such as Kerberos, short-lived tokens, or an internal SSO), use `headersHelper` to generate request headers at connection time. Claude Code runs the command and merges its output into the connection headers.

```json
{
  "mcpServers": {
    "internal-api": {
      "type": "http",
      "url": "https://mcp.internal.example.com",
      "headersHelper": "/opt/bin/get-mcp-auth-headers.sh"
    }
  }
}
```

The command can also be inline:

```json
{
  "mcpServers": {
    "internal-api": {
      "type": "http",
      "url": "https://mcp.internal.example.com",
      "headersHelper": "echo '{\"Authorization\": \"Bearer '\"$(get-token)\"'\"}'"
    }
  }
}
```

**Requirements:**

- The command must write a JSON object of string key-value pairs to stdout
- The command runs in a shell with a 10-second timeout
- Dynamic headers override any static `headers` with the same name

The helper runs fresh on each connection (at session start and on reconnect). There is no caching, so your script is responsible for any token reuse.

Claude Code sets these environment variables when executing the helper:

| Variable | Value |
| --- | --- |
| `CLAUDE_CODE_MCP_SERVER_NAME` | the name of the MCP server |
| `CLAUDE_CODE_MCP_SERVER_URL` | the URL of the MCP server |

Use these to write a single helper script that serves multiple MCP servers.

`headersHelper` executes arbitrary shell commands. When defined at project or local scope, it only runs after you accept the workspace trust dialog.

## Add MCP servers from JSON configuration

If you have a JSON configuration for an MCP server, you can add it directly:

Tips:

- Make sure the JSON is properly escaped in your shell
- The JSON must conform to the MCP server configuration schema
- You can use `--scope user` to add the server to your user configuration instead of the project-specific one

## Import MCP servers from Claude Desktop

If you’ve already configured MCP servers in Claude Desktop, you can import them:

Tips:

- This feature only works on macOS and Windows Subsystem for Linux (WSL)
- It reads the Claude Desktop configuration file from its standard location on those platforms
- Use the `--scope user` flag to add servers to your user configuration
- Imported servers will have the same names as in Claude Desktop
- If servers with the same names already exist, they will get a numerical suffix (for example, `server_1`)

## Use MCP servers from Claude.ai

If you’ve logged into Claude Code with a [Claude.ai](https://claude.ai/) account, MCP servers you’ve added in Claude.ai are automatically available in Claude Code:

To disable claude.ai MCP servers in Claude Code, set the `ENABLE_CLAUDEAI_MCP_SERVERS` environment variable to `false`:

```shellscript
ENABLE_CLAUDEAI_MCP_SERVERS=false claude
```

## Use Claude Code as an MCP server

You can use Claude Code itself as an MCP server that other applications can connect to:

```shellscript
# Start Claude as a stdio MCP server
claude mcp serve
```

You can use this in Claude Desktop by adding this configuration to claude\_desktop\_config.json:

```json
{
  "mcpServers": {
    "claude-code": {
      "type": "stdio",
      "command": "claude",
      "args": ["mcp", "serve"],
      "env": {}
    }
  }
}
```

**Configuring the executable path**: The `command` field must reference the Claude Code executable. If the `claude` command is not in your system’s PATH, you’ll need to specify the full path to the executable.

To find the full path:

```shellscript
which claude
```

Then use the full path in your configuration:

```json
{
  "mcpServers": {
    "claude-code": {
      "type": "stdio",
      "command": "/full/path/to/claude",
      "args": ["mcp", "serve"],
      "env": {}
    }
  }
}
```

Without the correct executable path, you’ll encounter errors like `spawn claude ENOENT`.

Tips:

- The server provides access to Claude’s tools like View, Edit, LS, etc.
- In Claude Desktop, try asking Claude to read files in a directory, make edits, and more.
- Note that this MCP server is only exposing Claude Code’s tools to your MCP client, so your own client is responsible for implementing user confirmation for individual tool calls.

## MCP output limits and warnings

When MCP tools produce large outputs, Claude Code helps manage the token usage to prevent overwhelming your conversation context:

- **Output warning threshold**: Claude Code displays a warning when any MCP tool output exceeds 10,000 tokens
- **Configurable limit**: you can adjust the maximum allowed MCP output tokens using the `MAX_MCP_OUTPUT_TOKENS` environment variable
- **Default limit**: the default maximum is 25,000 tokens
- **Scope**: the environment variable applies to tools that don’t declare their own limit. Tools that set [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) use that value instead for text content, regardless of what `MAX_MCP_OUTPUT_TOKENS` is set to. Tools that return image data are still subject to `MAX_MCP_OUTPUT_TOKENS`

To increase the limit for tools that produce large outputs:

```shellscript
export MAX_MCP_OUTPUT_TOKENS=50000
claude
```

This is particularly useful when working with MCP servers that:

- Query large datasets or databases
- Generate detailed reports or documentation
- Process extensive log files or debugging information

### Raise the limit for a specific tool

If you’re building an MCP server, you can allow individual tools to return results larger than the default persist-to-disk threshold by setting `_meta["anthropic/maxResultSizeChars"]` in the tool’s `tools/list` response entry. Claude Code raises that tool’s threshold to the annotated value, up to a hard ceiling of 500,000 characters.

This is useful for tools that return inherently large but necessary outputs, such as database schemas or full file trees. Without the annotation, results that exceed the default threshold are persisted to disk and replaced with a file reference in the conversation.

```json
{
  "name": "get_schema",
  "description": "Returns the full database schema",
  "_meta": {
    "anthropic/maxResultSizeChars": 200000
  }
}
```

The annotation applies independently of `MAX_MCP_OUTPUT_TOKENS` for text content, so users don’t need to raise the environment variable for tools that declare it. Tools that return image data are still subject to the token limit.

If you frequently encounter output warnings with specific MCP servers you don’t control, consider increasing the `MAX_MCP_OUTPUT_TOKENS` limit. You can also ask the server author to add the `anthropic/maxResultSizeChars` annotation or to paginate their responses. The annotation has no effect on tools that return image content; for those, raising `MAX_MCP_OUTPUT_TOKENS` is the only option.

## Respond to MCP elicitation requests

MCP servers can request structured input from you mid-task using elicitation. When a server needs information it can’t get on its own, Claude Code displays an interactive dialog and passes your response back to the server. No configuration is required on your side: elicitation dialogs appear automatically when a server requests them.

Servers can request input in two ways:

- **Form mode**: Claude Code shows a dialog with form fields defined by the server (for example, a username and password prompt). Fill in the fields and submit.
- **URL mode**: Claude Code opens a browser URL for authentication or approval. Complete the flow in the browser, then confirm in the CLI.

To auto-respond to elicitation requests without showing a dialog, use the [`Elicitation` hook](https://code.claude.com/docs/en/hooks#elicitation).

If you’re building an MCP server that uses elicitation, see the [MCP elicitation specification](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) for protocol details and schema examples.

## Use MCP resources

MCP servers can expose resources that you can reference using @ mentions, similar to how you reference files.

### Reference MCP resources

Tips:

- Resources are automatically fetched and included as attachments when referenced
- Resource paths are fuzzy-searchable in the @ mention autocomplete
- Claude Code automatically provides tools to list and read MCP resources when servers support them
- Resources can contain any type of content that the MCP server provides (text, JSON, structured data, etc.)

## Scale with MCP Tool Search

Tool search keeps MCP context usage low by deferring tool definitions until Claude needs them. Only tool names load at session start, so adding more MCP servers has minimal impact on your context window.

### How it works

Tool search is enabled by default. MCP tools are deferred rather than loaded into context upfront, and Claude uses a search tool to discover relevant ones when a task needs them. Only the tools Claude actually uses enter context. From your perspective, MCP tools work exactly as before.

If you prefer threshold-based loading, set `ENABLE_TOOL_SEARCH=auto` to load schemas upfront when they fit within 10% of the context window and defer only the overflow. See [Configure tool search](#configure-tool-search) for all options.

### For MCP server authors

If you’re building an MCP server, the server instructions field becomes more useful with Tool Search enabled. Server instructions help Claude understand when to search for your tools, similar to how [skills](https://code.claude.com/docs/en/skills) work.

Add clear, descriptive server instructions that explain:

- What category of tasks your tools handle
- When Claude should search for your tools
- Key capabilities your server provides

Claude Code truncates tool descriptions and server instructions at 2KB each. Keep them concise to avoid truncation, and put critical details near the start.

### Configure tool search

Tool search is enabled by default: MCP tools are deferred and discovered on demand. When `ANTHROPIC_BASE_URL` points to a non-first-party host, tool search is disabled by default because most proxies do not forward `tool_reference` blocks. Set `ENABLE_TOOL_SEARCH` explicitly if your proxy does. This feature requires models that support `tool_reference` blocks: Sonnet 4 and later, or Opus 4 and later. Haiku models do not support tool search.

Control tool search behavior with the `ENABLE_TOOL_SEARCH` environment variable:

| Value | Behavior |
| --- | --- |
| (unset) | All MCP tools deferred and loaded on demand. Falls back to loading upfront when `ANTHROPIC_BASE_URL` is a non-first-party host |
| `true` | All MCP tools deferred, including for non-first-party `ANTHROPIC_BASE_URL` |
| `auto` | Threshold mode: tools load upfront if they fit within 10% of the context window, deferred otherwise |
| `auto:<N>` | Threshold mode with a custom percentage, where `<N>` is 0-100 (e.g., `auto:5` for 5%) |
| `false` | All MCP tools loaded upfront, no deferral |

```shellscript
# Use a custom 5% threshold
ENABLE_TOOL_SEARCH=auto:5 claude

# Disable tool search entirely
ENABLE_TOOL_SEARCH=false claude
```

Or set the value in your [settings.json `env` field](https://code.claude.com/docs/en/settings#available-settings).

You can also disable the `ToolSearch` tool specifically:

```json
{
  "permissions": {
    "deny": ["ToolSearch"]
  }
}
```

## Use MCP prompts as commands

MCP servers can expose prompts that become available as commands in Claude Code.

### Execute MCP prompts

Tips:

- MCP prompts are dynamically discovered from connected servers
- Arguments are parsed based on the prompt’s defined parameters
- Prompt results are injected directly into the conversation
- Server and prompt names are normalized (spaces become underscores)

## Managed MCP configuration

For organizations that need centralized control over MCP servers, Claude Code supports two configuration options:

1. **Exclusive control with `managed-mcp.json`**: Deploy a fixed set of MCP servers that users cannot modify or extend
2. **Policy-based control with allowlists/denylists**: Allow users to add their own servers, but restrict which ones are permitted

These options allow IT administrators to:

- **Control which MCP servers employees can access**: Deploy a standardized set of approved MCP servers across the organization
- **Prevent unauthorized MCP servers**: Restrict users from adding unapproved MCP servers
- **Disable MCP entirely**: Remove MCP functionality completely if needed

### Option 1: Exclusive control with managed-mcp.json

When you deploy a `managed-mcp.json` file, it takes **exclusive control** over all MCP servers. Users cannot add, modify, or use any MCP servers other than those defined in this file. This is the simplest approach for organizations that want complete control.

System administrators deploy the configuration file to a system-wide directory:

- macOS: `/Library/Application Support/ClaudeCode/managed-mcp.json`
- Linux and WSL: `/etc/claude-code/managed-mcp.json`
- Windows: `C:\Program Files\ClaudeCode\managed-mcp.json`

These are system-wide paths (not user home directories like `~/Library/...`) that require administrator privileges. They are designed to be deployed by IT administrators.

The `managed-mcp.json` file uses the same format as a standard `.mcp.json` file:

```json
{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    },
    "sentry": {
      "type": "http",
      "url": "https://mcp.sentry.dev/mcp"
    },
    "company-internal": {
      "type": "stdio",
      "command": "/usr/local/bin/company-mcp-server",
      "args": ["--config", "/etc/company/mcp-config.json"],
      "env": {
        "COMPANY_API_URL": "https://internal.company.com"
      }
    }
  }
}
```

### Option 2: Policy-based control with allowlists and denylists

Instead of taking exclusive control, administrators can allow users to configure their own MCP servers while enforcing restrictions on which servers are permitted. This approach uses `allowedMcpServers` and `deniedMcpServers` in the [managed settings file](https://code.claude.com/docs/en/settings#settings-files).

**Choosing between options**: Use Option 1 (`managed-mcp.json`) when you want to deploy a fixed set of servers with no user customization. Use Option 2 (allowlists/denylists) when you want to allow users to add their own servers within policy constraints.

#### Restriction options

Each entry in the allowlist or denylist can restrict servers in three ways:

1. **By server name** (`serverName`): Matches the configured name of the server
2. **By command** (`serverCommand`): Matches the exact command and arguments used to start stdio servers
3. **By URL pattern** (`serverUrl`): Matches remote server URLs with wildcard support

**Important**: Each entry must have exactly one of `serverName`, `serverCommand`, or `serverUrl`.

#### Example configuration

```json
{
  "allowedMcpServers": [
    // Allow by server name
    { "serverName": "github" },
    { "serverName": "sentry" },

    // Allow by exact command (for stdio servers)
    { "serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem"] },
    { "serverCommand": ["python", "/usr/local/bin/approved-server.py"] },

    // Allow by URL pattern (for remote servers)
    { "serverUrl": "https://mcp.company.com/*" },
    { "serverUrl": "https://*.internal.corp/*" }
  ],
  "deniedMcpServers": [
    // Block by server name
    { "serverName": "dangerous-server" },

    // Block by exact command (for stdio servers)
    { "serverCommand": ["npx", "-y", "unapproved-package"] },

    // Block by URL pattern (for remote servers)
    { "serverUrl": "https://*.untrusted.com/*" }
  ]
}
```

#### How command-based restrictions work

**Exact matching**:

- Command arrays must match **exactly** - both the command and all arguments in the correct order
- Example: `["npx", "-y", "server"]` will NOT match `["npx", "server"]` or `["npx", "-y", "server", "--flag"]`

**Stdio server behavior**:

- When the allowlist contains **any** `serverCommand` entries, stdio servers **must** match one of those commands
- Stdio servers cannot pass by name alone when command restrictions are present
- This ensures administrators can enforce which commands are allowed to run

**Non-stdio server behavior**:

- Remote servers (HTTP, SSE, WebSocket) use URL-based matching when `serverUrl` entries exist in the allowlist
- If no URL entries exist, remote servers fall back to name-based matching
- Command restrictions do not apply to remote servers

#### How URL-based restrictions work

URL patterns support wildcards using `*` to match any sequence of characters. This is useful for allowing entire domains or subdomains.

**Wildcard examples**:

- `https://mcp.company.com/*` - Allow all paths on a specific domain
- `https://*.example.com/*` - Allow any subdomain of example.com
- `http://localhost:*/*` - Allow any port on localhost

**Remote server behavior**:

- When the allowlist contains **any** `serverUrl` entries, remote servers **must** match one of those URL patterns
- Remote servers cannot pass by name alone when URL restrictions are present
- This ensures administrators can enforce which remote endpoints are allowed

Example: URL-only allowlist

```json
{
  "allowedMcpServers": [
    { "serverUrl": "https://mcp.company.com/*" },
    { "serverUrl": "https://*.internal.corp/*" }
  ]
}
```

**Result**:

- HTTP server at `https://mcp.company.com/api`: ✅ Allowed (matches URL pattern)
- HTTP server at `https://api.internal.corp/mcp`: ✅ Allowed (matches wildcard subdomain)
- HTTP server at `https://external.com/mcp`: ❌ Blocked (doesn’t match any URL pattern)
- Stdio server with any command: ❌ Blocked (no name or command entries to match)

Example: Command-only allowlist

```json
{
  "allowedMcpServers": [
    { "serverCommand": ["npx", "-y", "approved-package"] }
  ]
}
```

**Result**:

- Stdio server with `["npx", "-y", "approved-package"]`: ✅ Allowed (matches command)
- Stdio server with `["node", "server.js"]`: ❌ Blocked (doesn’t match command)
- HTTP server named “my-api”: ❌ Blocked (no name entries to match)

Example: Mixed name and command allowlist

```json
{
  "allowedMcpServers": [
    { "serverName": "github" },
    { "serverCommand": ["npx", "-y", "approved-package"] }
  ]
}
```

**Result**:

- Stdio server named “local-tool” with `["npx", "-y", "approved-package"]`: ✅ Allowed (matches command)
- Stdio server named “local-tool” with `["node", "server.js"]`: ❌ Blocked (command entries exist but doesn’t match)
- Stdio server named “github” with `["node", "server.js"]`: ❌ Blocked (stdio servers must match commands when command entries exist)
- HTTP server named “github”: ✅ Allowed (matches name)
- HTTP server named “other-api”: ❌ Blocked (name doesn’t match)

Example: Name-only allowlist

```json
{
  "allowedMcpServers": [
    { "serverName": "github" },
    { "serverName": "internal-tool" }
  ]
}
```

**Result**:

- Stdio server named “github” with any command: ✅ Allowed (no command restrictions)
- Stdio server named “internal-tool” with any command: ✅ Allowed (no command restrictions)
- HTTP server named “github”: ✅ Allowed (matches name)
- Any server named “other”: ❌ Blocked (name doesn’t match)

#### Allowlist behavior (allowedMcpServers)

- `undefined` (default): No restrictions - users can configure any MCP server
- Empty array `[]`: Complete lockdown - users cannot configure any MCP servers
- List of entries: Users can only configure servers that match by name, command, or URL pattern

#### Denylist behavior (deniedMcpServers)

- `undefined` (default): No servers are blocked
- Empty array `[]`: No servers are blocked
- List of entries: Specified servers are explicitly blocked across all scopes

#### Important notes

- **Option 1 and Option 2 can be combined**: If `managed-mcp.json` exists, it has exclusive control and users cannot add servers. Allowlists/denylists still apply to the managed servers themselves.
- **Denylist takes absolute precedence**: If a server matches a denylist entry (by name, command, or URL), it will be blocked even if it’s on the allowlist
- Name-based, command-based, and URL-based restrictions work together: a server passes if it matches **either** a name entry, a command entry, or a URL pattern (unless blocked by denylist)

**When using `managed-mcp.json`**: Users cannot add MCP servers through `claude mcp add` or configuration files. The `allowedMcpServers` and `deniedMcpServers` settings still apply to filter which managed servers are actually loaded.