This script automates the installation and configuration of various Model Context Protocol (MCP) servers for use with Claude Desktop. It handles the installation of dependencies (Homebrew, Node.js, Python, uv) and sets up multiple MCP servers.
The script integrates with 1Password to securely retrieve API keys and credentials. This approach avoids hardcoding sensitive information in the script or configuration files.
- 1Password CLI (
op
) must be installed and accessible - You must be signed in to 1Password CLI
- A vault named
MCP
must exist in your 1Password account - Required credentials must be stored in this vault as described below
If 1Password is not available or properly set up, the script will use empty placeholders and notify you to manually update the credentials later.
Each MCP server requires specific credentials to be stored in the 1Password MCP
vault:
-
Firecrawl
- Item name:
Firecrawl
- Fields:
api_key
: Your Firecrawl API key
- Item name:
-
Zendesk
- Item name:
Zendesk
- Fields:
username
: Your Zendesk emailapi_token
: Your Zendesk API tokensubdomain
: Your Zendesk subdomain (e.g.,company.zendesk.com
)
- Item name:
-
Slack
- Item name:
Slack
- Fields:
bot_token
: Your Slack bot tokenteam_id
: Your Slack team ID
- Item name:
-
Gmail
- Item name:
Gmail
- Fields:
client_id
: Your Google API client IDclient_secret
: Your Google API client secret
- Item name:
-
Atlassian
- Item name:
Atlassian
- Fields:
url
: Your Jira URLusername
: Your Jira username/emailtoken
: Your Jira API token
- Item name:
-
Notion
- Item name:
Notion
- Fields:
token
: Your Notion API token
- Item name:
-
Rootly
- Item name:
Rootly
- Fields:
api_token
: Your Rootly API token
- Item name:
If you don't have 1Password or prefer to configure credentials manually:
- Run the script without 1Password integration
- Edit the generated
.env
files in each MCP server's directory - Edit the Claude Desktop configuration file at
~/Library/Application Support/Claude/claude_desktop_config.json
This section provides detailed instructions on how to obtain API tokens and credentials for each MCP server.
MCP Server | Token Creation Method | Token Type | API Documentation |
---|---|---|---|
Firecrawl | Manual via Dashboard | API Key | Docs |
Slack | Manual via Developer Portal | Bot Token (OAuth) | Docs |
Zendesk | Manual via Admin Console | API Token | Docs |
Gmail | Manual via Google Cloud Console | OAuth Client ID/Secret | Docs |
Atlassian | Manual via Account Settings | API Token | Docs |
Figma | Manual via User Settings | Personal Access Token | Docs |
Notion | Manual via Integrations Portal | Integration Token | Docs |
Sentry | Manual or API | Auth Token | Docs |
Datadog | Manual or API | API Key & App Key | Docs |
Rootly | Manual via Organization Settings | API Key | Docs |
- Sign in to your Firecrawl account at https://firecrawl.dev
- Navigate to Account Settings → API Keys
- Click "Create New API Key"
- Enter a name for your key (e.g., "Claude MCP")
- Select the appropriate permissions based on your needs
- Copy the generated API key and store it securely (it will only be shown once)
- Add the key to your 1Password vault with item name "Firecrawl" and field name "api_key"
- Go to https://api.slack.com/apps
- Click "Create New App" and select "From scratch"
- Name your app (e.g., "Claude MCP") and select your workspace
- Click "Create App"
- In the left sidebar, navigate to "OAuth & Permissions"
- Under "Bot Token Scopes", add the following scopes:
channels:history
channels:read
chat:write
files:read
groups:history
groups:read
im:history
im:read
mpim:history
mpim:read
team:read
users:read
- Scroll to the top and click "Install to Workspace"
- After installing, copy the "Bot User OAuth Token" (starts with
xoxb-
) - To get your Team ID, right-click on your workspace name in Slack and select "Copy link"
- The link will look like
https://app.slack.com/client/T01234ABCDE/...
- Your Team ID is the part that starts with T (e.g.,
T01234ABCDE
)
- The link will look like
- Add these to your 1Password vault with item name "Slack" and field names "bot_token" and "team_id"
- Sign in to your Zendesk account as an admin
- Click on the Admin icon (gear) in the sidebar
- Under "Channels", select "API"
- Click the "Add API Token" button
- Enter a descriptive name for the token (e.g., "Claude MCP")
- Copy the generated token (it will only be shown once)
- Note your Zendesk subdomain from your URL (e.g.,
company.zendesk.com
) - Add these to your 1Password vault with item name "Zendesk" and field names "api_token", "username" (your Zendesk email), and "subdomain"
- Go to Google Cloud Console
- Create a new project
- Enable the Gmail API for your project:
- Navigate to "APIs & Services" → "Library"
- Search for "Gmail API" and enable it
- Set up OAuth consent screen:
- Go to "APIs & Services" → "OAuth consent screen"
- Select "User Type" (Internal or External)
- Fill in the required information
- Add necessary scopes for Gmail (e.g.,
https://www.googleapis.com/auth/gmail.readonly
) - Add test users if using External
- Create OAuth client ID:
- Go to "APIs & Services" → "Credentials"
- Click "Create Credentials" → "OAuth client ID"
- Select "Web application" as the application type
- Add authorized redirect URIs (e.g.,
http://localhost:4100/code
) - Click "Create"
- Download the JSON file containing your client ID and client secret
- Add these to your 1Password vault with item name "Gmail" and field names "client_id" and "client_secret"
- Sign in to your Atlassian account
- Go to https://id.atlassian.com/manage-profile/security/api-tokens
- Click "Create API token"
- Enter a label for your token (e.g., "Claude MCP")
- Click "Create"
- Copy the generated token (it will only be shown once)
- Note your Jira URL (e.g.,
https://your-company.atlassian.net
) - Add these to your 1Password vault with item name "Atlassian" and field names "url", "username" (your Atlassian email), and "token"
- Log in to your Figma account
- Click on your profile picture in the top-right corner
- Select "Settings"
- Scroll to the "Personal access tokens" section
- Click "Generate new token"
- Enter a name for your token (e.g., "Claude MCP")
- Click "Generate token"
- Copy the generated token (it will only be shown once)
- Add the token to your 1Password vault with item name "Figma" and field name "api_key"
- Log in to your Notion account
- Go to https://www.notion.so/my-integrations
- Click "New integration"
- Fill in the following information:
- Name your integration (e.g., "Claude MCP")
- Select the workspace to associate with this integration
- Upload an icon (optional)
- Click "Submit"
- On the next page, find your "Internal Integration Token"
- Copy the token
- Important: You will need to share any Notion pages/databases with your integration for it to access them
- Open the Notion page you want to share
- Click "Share" in the top-right corner
- Use the "@" symbol to mention your integration and invite it
- Add the token to your 1Password vault with item name "Notion" and field name "token"
- Sign in to your Sentry account
- Navigate to Settings (the gear icon) → Account → API Keys
- Click "Create New API Key"
- Enter a name for the key (e.g., "Claude MCP")
- Select the appropriate scopes based on your needs
- Click "Create Key"
- Copy the generated auth token (it will only be shown once)
- Add the token to your 1Password vault with item name "Sentry" and field names "auth_token", "project" and "organization" (your Sentry organization slug)
- Sign in to your Datadog account
- Navigate to Organization Settings → API Keys
- Click "New Key"
- Enter a name for the key (e.g., "Claude MCP API Key")
- Click "Create"
- Copy the generated API key
- Navigate to Organization Settings → Application Keys
- Click "New Key"
- Enter a name for the key (e.g., "Claude MCP Application Key")
- Click "Create"
- Copy the generated Application key
- Add these to your 1Password vault with item name "Datadog" and field names "api_key" and "app_key"
- Sign in to your Rootly account
- Click on the Organization dropdown in the top navigation
- Select "Organization Settings"
- Navigate to the "API Keys" section
- Click "Generate New API Key"
- Enter a descriptive name for your token (e.g., "Claude MCP")
- Copy the generated API key (it will only be shown once)
- Add the token to your 1Password vault with item name "Rootly" and field name "api_token"
If you're not using 1Password, you can store your tokens in the following locations:
-
For Productivity MCPs (Claude Desktop):
- Edit
~/Library/Application Support/Claude/claude_desktop_config.json
- Update the environment variables in each MCP server's configuration
Example for Slack:
"slack": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-slack" ], "env": { "SLACK_BOT_TOKEN": "xoxb-your-token-here", "SLACK_TEAM_ID": "T01234ABCDE" } }
- Edit
-
For Engineering MCPs (Cursor IDE):
- Edit
~/.cursor/mcp.json
- Update the environment variables in each MCP server's configuration
Example for Figma:
"figma": { "command": "npx", "args": [ "-y", "figma-developer-mcp", "--figma-api-key=your-api-key-here", "--stdio" ] }
- Edit
-
For Repository-based MCP servers:
- Update the
.env
file in the server's directory
Example for Atlassian (
~/mcp-atlassian/.env
):JIRA_URL="https://your-company.atlassian.net" JIRA_USERNAME="your.email@example.com" JIRA_TOKEN="your-api-token"
- Update the
Remember to keep your tokens secure and never share them publicly.
- macOS (works on both Intel and Apple Silicon)
-
Download the script to your local machine
curl -s https://raw.githubusercontent.com/drdee/mcp-installer/refs/heads/main/mcp.sh | bash
-
The script will:
- Install or update Homebrew
- Install Python 3.12+ and uv
- Install Node.js v23+ via NVM
- Download and install Claude Desktop (if not already installed)
- Install 1Password CLI (if not already installed)
- Install and configure all MCP servers
- Create the necessary configuration files
-
Review the installation summary at the end for any warnings or issues
The script logs all operations to ~/Library/Logs/mcp_installation_script.log
. Check this file if you encounter any issues.
- Start Claude Desktop from the Applications folder
- The MCP servers will be available for use with Claude
- If any credentials were missing, update them in the appropriate
.env
files or in the Claude Desktop configuration
- If the script fails to install any dependencies, try installing them manually
- Ensure you have proper permissions for directories being accessed
- Check the log file for specific error messages
- If a specific MCP server fails to install, you can try running that portion of the script manually