Claude Code MCP Integration: Connect AI to Your Entire Toolchain
Master Model Context Protocol (MCP) with Claude Code. Connect to GitHub, Slack, Jira, and custom tools. Complete setup guide with examples.
Claude Code MCP Integration: Connect AI to Your Entire Toolchain
MCP (Model Context Protocol) is the game-changer that makes Claude Code actually useful in production. Let me show you how to connect it to everything.
What is MCP?
MCP (Model Context Protocol) is an open standard from Anthropic that lets Claude Code connect to external tools and data sources.
Think of it like plugins, but standardized. Instead of each AI tool having its own integration format, MCP provides a universal protocol.
MCP vs Traditional Integrations
| Aspect | Traditional | MCP |
|---|---|---|
| Setup time | Hours | Minutes |
| Compatibility | Tool-specific | Universal |
| Configuration | Custom JSON | Standard format |
| Updates | Manual | Automatic |
Quick Start
Install a Pre-built MCP Server
# Using clawhub (recommended)
px clawhub@latest install github
# Or manually via npm
npm install -g @modelcontextprotocol/server-github
Configure in Claude Code
Add to .claude/settings.json:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"]
}
}
}
Restart Claude Code
/claude restart
Essential MCP Integrations
1. GitHub Integration
What it does:
- Create and review pull requests
- Manage issues
- Review code
- Automate CI/CD
Installation:
px clawhub@latest install github
Configuration:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "your-token-here"
}
}
}
}
Usage Examples:
"Create a PR for the new authentication feature"
"Review this PR and check for security issues"
"List all open issues and assign them based on labels"
2. Slack Integration
What it does:
- Post messages to channels
- Create threads
- Share code snippets
- Get notifications
Installation:
px clawhub@latest install slack
Configuration:
You'll need a Slack app with these permissions:
chat:writechannels:read
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token",
"SLACK_TEAM_ID": "T0123456789"
}
}
}
}
Usage Examples:
"Post a summary of today's progress to #engineering"
"Create a thread in #bugs with details about the reported issue"
3. Jira Integration
What it does:
- Create and update tickets
- Search issues
- Transition workflows
- Generate reports
Installation:
px clawhub@latest install jira
Configuration:
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-jira"],
"env": {
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_TOKEN": "your-api-token",
"JIRA_EMAIL": "your-email@example.com"
}
}
}
}
Usage Examples:
"Create a ticket for the database migration task"
"Move all 'In Progress' bugs to 'To Do'"
4. Google Drive Integration
What it does:
- Read documents
- Search files
- Create folders
- Share access
Installation:
px clawhub@latest install google-drive
Configuration:
{
"mcpServers": {
"google-drive": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-google-drive"],
"env": {
"GOOGLE_CLIENT_ID": "your-client-id",
"GOOGLE_CLIENT_SECRET": "your-client-secret"
}
}
}
}
5. Filesystem Integration
What it does:
- Advanced file operations
- Directory management
- File searching
- Permissions
Installation:
Built into Claude Code, but can be configured for specific directories:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem"],
"allow": ["/projects/**", "/docs/**"],
"deny": ["/secrets/**", "/.env"]
}
}
}
Building Your Own MCP Server
When to Build Custom
Build a custom MCP server when:
- You have proprietary APIs
- Existing servers don't fit your workflow
- You need specific business logic
Quick Example: Weather MCP Server
1. Create the server:
// weather-mcp.js
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
const server = new Server(
{ name: 'weather-server', version: '1.0.0' },
{ capabilities: { tools: {} } }
);
const tools = [
{
name: 'get_weather',
description: 'Get weather for a location',
inputSchema: {
type: 'object',
properties: {
location: { type: 'string', description: 'City name' },
units: { type: 'string', enum: ['celsius', 'fahrenheit'], default: 'celsius' }
},
required: ['location']
}
}
];
server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools }));
server.setRequestHandler(CallToolRequestSchema, async (request) => {
if (request.params.name === 'get_weather') {
const { location, units } = request.params.arguments;
// Your weather API call here
const weather = await fetchWeather(location, units);
return { content: [{ type: 'text', text: JSON.stringify(weather) }] };
}
throw new Error('Unknown tool');
});
const transport = new StdioServerTransport();
server.connect(transport);
2. Configure Claude Code:
{
"mcpServers": {
"weather": {
"command": "node",
"args": ["/path/to/weather-mcp.js"]
}
}
}
3. Use it:
"What's the weather in Tokyo?"
MCP Best Practices
Security
- Never commit tokens to git
- Use environment variables
- Restrict file access
- Review tool permissions
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem"],
"allow": ["/projects/**"],
"deny": ["/secrets/**"]
}
}
}
Performance
- Limit concurrent requests
- Cache responses where possible
- Use pagination for large lists
- Timeout long operations
Error Handling
Always wrap MCP calls in try/catch:
try {
const result = await callMcpTool('github', 'createPullRequest', {
owner: 'user',
repo: 'project',
title: 'New Feature'
});
} catch (error) {
console.error('MCP call failed:', error.message);
}
MCP Server Discovery
Find Servers
- ClawHub - Community server registry
- MCP GitHub - Official and community servers
- npm - Search for
@modelcontextprotocol/server-*
Install from ClawHub
# Search for servers
px clawhub@latest search jira
# Install
px clawhub@latest install jira
# List installed
px clawhub@latest list
Common Issues
Issue: "Server not found"
# Update clawhub
px clawhub@latest update
# Reinstall server
px clawhub@latest install <server-name>
Issue: "Authentication failed"
- Check token is valid
- Verify permissions
- Ensure env vars are set
Issue: "Tool not available"
- Restart Claude Code
- Check settings.json syntax
- Verify server is running
Advanced: MCP in Production
CI/CD Integration
# GitHub Actions
- name: Claude Code Security Review
run: |
claude -p "Review the PR for security vulnerabilities"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Scheduled Tasks with MCP
/schedule daily "Sync Jira tickets to our dashboard"
Summary
- MCP is essential - Connects Claude Code to your tools
- Start with GitHub - Best ROI for most teams
- Build custom servers - When existing ones don't fit
- Secure your tokens - Never commit to git
- Use clawhub - Easiest server management
Try These MCP Servers
| Server | Use Case | Install |
|---|---|---|
| GitHub | PRs, issues | clawhub install github |
| Slack | Notifications | clawhub install slack |
| Jira | Task management | clawhub install jira |
| Filesystem | File ops | Built-in |
| Brave Search | Web search | clawhub install brave-search |
Get Started
# Install clawhub
npm install -g clawhub
# Install GitHub integration
px clawhub@latest install github
# Configure in .claude/settings.json
# Restart Claude Code
Built 10+ MCP integrations. Questions? Leave a comment.