Skip to main content
BB

Bahrul Bangsawan

AvailableMakassar, Indonesia
BB

Bahrul Bangsawan

Growth Hacker at the intersection of Data, Marketing, and Tech. Helping brands scale with data-driven strategies and modern technology.

Available for HireMakassar, Indonesia ๐Ÿ‡ฎ๐Ÿ‡ฉ
Book a Call

Blog ยท Guides

MCP Server Setup for Claude Code: A Complete Guide

This guide walks you through configuring MCP servers for Claude Code by editing ~/.claude.json, including HTTP and bunx connections, API key setup, and shadcn registries.

MCP Configuration4 min read
Share
On this page

Ready to turn Claude Code from a brilliant chatterbox into a full-blown action hero? You've come to the right place. By configuring MCP servers, you're essentially handing Claude the keys to your entire toolkit โ€” databases, design systems, search engines, you name it. Let's make it happen.

Wait, What Actually Is MCP?

MCP stands for Model Context Protocol. Think of it as the universal translator between Claude Code and every external service or tool you love โ€” web search APIs, Postgres databases, UI component libraries, browser dev tools, and way more. Suddenly, your AI assistant goes from just chatting to actually doing things.

flowchart TD
    A[Claude Code Tool Request] --> B{MCP Config ~/.claude.json};
    B -- HTTP URL --> C[External API / Database];
    B -- Bunx Command --> D[Local Node.js Package];
    C --> E[Relevant Data / Action];
    D --> E;
    E --> A;
    style A fill:#3b82f6,color:#fff
    style B fill:#f59e0b,color:#fff
    style C fill:#10b981,color:#fff
    style D fill:#6366f1,color:#fff
    style E fill:#ec4899,color:#fff

Let's Get Our Hands Dirty: The Setup

Time to crack open your config file. Fire up your favorite editor and run one of these commands:

# Open with your preferred editor
zed ~/.claude.json
# or
code ~/.claude.json
# or
nano ~/.claude.json

Now paste in the mcpServers block below โ€” it's your command center for wiring up all the coolest tools in one place:

{
  "mcpServers": {
    "exa": {
      "command": "bunx",
      "args": [
        "--bun",
        "mcp-remote",
        "https://mcp.exa.ai/mcp?tools=web_search_exa,get_code_context_exa,crawling_exa,company_research_exa,linkedin_search_exa,deep_researcher_start,deep_researcher_check&exaApiKey=YOUR_API_KEY"
      ]
    },
    "neon": {
      "type": "http",
      "url": "https://mcp.neon.tech/mcp"
    },
    "shadcn": {
      "command": "bunx",
      "args": ["--bun", "shadcn@latest", "mcp"]
    },
    "context7": {
      "type": "http",
      "url": "https://mcp.context7.com/mcp",
      "headers": { "CONTEXT7_API_KEY": "YOUR_API_KEY" }
    },
    "kibo-ui": {
      "command": "bunx",
      "args": ["--bun", "mcp-remote", "https://www.kibo-ui.com/api/mcp/mcp"]
    },
    "chrome-devtools": {
      "command": "bunx",
      "args": ["--bun", "chrome-devtools-mcp@latest"]
    },
    "Astro docs": {
      "type": "http",
      "url": "https://mcp.docs.astro.build/mcp"
    }
  }
}

warning API Key Alert!

Don't leave YOUR_API_KEY in there like a digital time capsule. Swap those placeholders with your actual keys, or the Exa and Context7 servers will stay locked up tight.

Your MCP Server Command Center

Here's a glance at what each server brings to the table โ€” and the superpower it unlocks for Claude:

MCP Server Quick Reference
ServerSuperpower
exaSearch the web, crawl pages, pull code context, research companies, and peek at LinkedIn profiles
neonHook directly into Neon PostgreSQL databases
shadcnInstall shadcn/ui components like magic
context7Instantly search Context7 documentation
kibo-uiPull in beautiful Kibo UI components on the fly
chrome-devtoolsDebug your app right from the Claude interface using Chrome DevTools
Astro docsLook up Astro framework docs without leaving your editor

Server Connection Styles (Show Me the Code!)

You've got a few ways to connect your servers โ€” choose the one that fits your vibe. For HTTP, it's clean and direct. Need authentication? Just add headers.

{
  "neon": {
    "type": "http",
    "url": "https://mcp.neon.tech/mcp"
  },
  "context7": {
    "type": "http",
    "url": "https://mcp.context7.com/mcp",
    "headers": { "CONTEXT7_API_KEY": "YOUR_API_KEY" }
  }
}

Prefer working with local packages? Use the Bunx Command style. Need to hit a remote server? Bunx Remote is your friend:

{
  "shadcn": {
    "command": "bunx",
    "args": ["--bun", "shadcn@latest", "mcp"]
  },
  "kibo-ui": {
    "command": "bunx",
    "args": ["--bun", "mcp-remote", "https://www.kibo-ui.com/api/mcp/mcp"]
  }
}

Supercharging shadcn/ui with Community Registries

If you're riding the shadcn/ui wave โ€” and honestly, who isn't? โ€” you can supercharge your components.json with extra registries. This pulls in components from dozens of community libraries, instantly expanding your design system beyond the defaults.

{
  "$schema": "https://ui.shadcn.com/schema.json",
  "style": "base-lyra",
  "rsc": false,
  "tsx": true,
  "tailwind": {
    "config": "",
    "css": "src/index.css",
    "baseColor": "neutral",
    "cssVariables": true,
    "prefix": ""
  },
  "iconLibrary": "lucide",
  "aliases": {
    "components": "@/components",
    "utils": "@/lib/utils",
    "ui": "@/components/ui",
    "lib": "@/lib",
    "hooks": "@/hooks"
  },
  "registries": {
    "@reui": "https://reui.io/r/{name}.json",
    "@formcn": "https://formcn.dev/r/{name}.json",
    "@abui": "https://abui.io/r/{name}.json",
    "@better-upload": "https://better-upload.com/r/{name}.json",
    "@assistant-ui": "https://r.assistant-ui.com/{name}.json",
    "@billingsdk": "https://billingsdk.com/r/{name}.json",
    "@coss": "https://coss.com/ui/r/{name}.json",
    "@diceui": "https://diceui.com/r/{name}.json",
    "@hextaui": "https://hextaui.com/r/{name}.json",
    "@kibo-ui": "https://www.kibo-ui.com/r/{name}.json",
    "@kokonutui": "https://kokonutui.com/r/{name}.json",
    "@lucide-animated": "https://lucide-animated.com/r/{name}.json",
    "@magicui": "https://magicui.design/r/{name}",
    "@manifest": "https://ui.manifest.build/r/{name}.json",
    "@plate": "https://platejs.org/r/{name}.json",
    "@react-bits": "https://reactbits.dev/r/{name}.json",
    "@shadcn-editor": "https://shadcn-editor.vercel.app/r/{name}.json",
    "@tour": "https://onboarding-tour.vercel.app/r/{name}.json",
    "@uitripled": "https://ui.tripled.work/r/{name}.json",
    "@wandry-ui": "https://ui.wandry.com.ua/r/{name}.json"
  }
}

Here's what all those registries unlock for you:

  • @reui โ€“ ReUI components
  • @formcn โ€“ Form components
  • @abui โ€“ AB UI components
  • @better-upload โ€“ File upload components
  • @assistant-ui โ€“ AI assistant UI
  • @billingsdk โ€“ Billing components
  • @coss โ€“ COSS UI
  • @diceui โ€“ Dice UI components
  • @hextaui โ€“ Hexta UI components
  • @kibo-ui โ€“ Kibo UI components
  • @kokonutui โ€“ Kokonut UI
  • @lucide-animated โ€“ Animated Lucide icons
  • @magicui โ€“ Magic UI effects
  • @manifest โ€“ Manifest UI
  • @plate โ€“ Rich text editor
  • @react-bits โ€“ React components
  • @shadcn-editor โ€“ Code editor
  • @tour โ€“ Onboarding tours
  • @uitripled โ€“ Tripled UI
  • @wandry-ui โ€“ Wandry UI

Install from Any Registry

Once you've got those registries wired up, installing components is as easy as pointing the CLI to the right namespace. Watch how effortless this is:

# From the default registry
bunx shadcn@latest add button

# From a custom registry
bunx shadcn@latest add @kibo-ui/kanban
bunx shadcn@latest add @magicui/bento-grid
bunx shadcn@latest add @plate/editor

Uh Oh, Something Went Wrong (Troubleshooting)

Ran into a wall? Don't worry โ€” here's how to knock it down.

MCP server not connecting?

Double-check the server URL in your config. Make sure your API keys are correct and haven't expired. And yes, you'll need to restart Claude Code after changing the config โ€” it's one of those things.

Bunx command failing?

First, verify Bun is installed by running bun --version. If it's missing, grab it with:

Registry component not found?

Confirm the registry URL in components.json is exactly right. Check that the component name actually exists in that registry. Then update your shadcn CLI with bun add -g shadcn@latest.

What's Next? The World Is Your Oyster

You've got your MCP servers humming along. Claude is talking to databases, pulling components, searching the web, and debugging like a pro. So what's next? Go deeper. Explore custom plugins. Build your own server. The toolkit is yours now.

  • Set up custom aliases for faster workflows
  • Dive into Claude Plugin Development
  • Contribute your own registry to the community