How to Add MCPs and Plugins to Claude Code
Claude Code becomes significantly more powerful when you extend it. There are two extension mechanisms:
- MCP servers — connect Claude to external tools (databases, APIs, Git providers)
- Plugins — pre-packaged sets of agents, skills, commands, hooks, and rules
What is MCP?
MCP stands for Model Context Protocol — an open standard that lets Claude talk to external services using a unified tool interface.
When you add an MCP server, Claude gains new tools it can call. For example:
- A GitLab MCP gives Claude tools like
get_issue,create_merge_request - A database MCP lets Claude run queries directly
- A Slack MCP lets Claude read and post messages
Claude doesn't have these by default — you install the MCP server, and it exposes tools Claude can use autonomously.
Option 1 — Install from the Claude Code Marketplace
The simplest way. The marketplace lists verified MCP servers and plugins.
# Open Claude Code and run:
/install-github-appOr via the CLI:
claude mcp addThis opens an interactive prompt where you can search and install.
Option 2 — Install via URL (one-liner)
If you have a direct link to a plugin or MCP config:
claude plugin install https://example.com/plugin.jsonFor MCP servers distributed as npm packages:
claude mcp add --transport stdio npx @modelcontextprotocol/server-filesystem /allowed/pathOption 3 — Install Manually (local path)
Useful for internal plugins (like the fintech stack plugin) or ones under active development.
Step 1 — Clone the plugin repo
git clone git@github.com:your-org/your-plugin.git ~/plugins/your-pluginStep 2 — Add it to Claude Code settings
# Open settings
claude settings
# Or edit directly
nano ~/.claude/settings.jsonAdd under plugins:
{
"plugins": [
"~/plugins/your-plugin/plugin.json"
]
}Step 3 — Verify it loaded
Start Claude Code in your project. Run:
/status
You should see the plugin's agents, skills, and commands listed.
Option 4 — Add an MCP Server Manually
MCP servers are configured in ~/.claude/mcp_servers.json (global) or .claude/mcp_servers.json (project-level).
Example — adding the GitLab MCP:
{
"mcpServers": {
"gitlab": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-gitlab"],
"env": {
"GITLAB_TOKEN": "your-pat-here",
"GITLAB_URL": "https://gitlab.com"
}
}
}
}Save the file. On the next Claude Code session, the gitlab server starts automatically and exposes its tools.
Checking What's Installed
# List all active MCP servers
claude mcp list
# List installed plugins
claude plugin listInside a Claude Code session:
What MCP servers do you have access to?
Claude will list every available tool and where it came from.
Project-Level vs Global
| Scope | File | When to use |
|---|---|---|
| Global | ~/.claude/mcp_servers.json | MCPs you want everywhere (GitLab, Slack) |
| Project | .claude/mcp_servers.json | MCPs specific to one repo (local DB, internal API) |
| Plugin | ~/.claude/settings.json | Plugins that add agents/skills/rules |
Project-level config takes precedence over global for the same server name.
Troubleshooting
MCP server not showing up
Check it's running:
claude mcp listIf it shows disconnected, check the command path and env vars.
Plugin agents not activating
Make sure your plugin.json has the correct paths. Run the plugin's own test suite:
bash tests/run-all.shPermission denied on install
Claude Code may ask for permission to run the MCP server command. Accept it once, or add it to your allowedTools in settings.