Claude Code Academy

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-app

Or via the CLI:

claude mcp add

This 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.json

For MCP servers distributed as npm packages:

claude mcp add --transport stdio npx @modelcontextprotocol/server-filesystem /allowed/path

Option 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-plugin

Step 2 — Add it to Claude Code settings

# Open settings
claude settings
 
# Or edit directly
nano ~/.claude/settings.json

Add 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 list

Inside 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

ScopeFileWhen to use
Global~/.claude/mcp_servers.jsonMCPs you want everywhere (GitLab, Slack)
Project.claude/mcp_servers.jsonMCPs specific to one repo (local DB, internal API)
Plugin~/.claude/settings.jsonPlugins 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 list

If 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.sh

Permission 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.