← All articles

Bocha MCP: Complete Setup Guide & Web Search Integration

July 5, 2026·22 min read·MCPForge

Bocha MCP: Complete Setup Guide & Web Search Integration

Bocha MCP Server gives any MCP-compatible AI client — Claude Desktop, Cursor, or your own custom agent — the ability to search the live web using Bocha AI's search API. In under 15 minutes you can configure a working setup where Claude answers questions with real-time data rather than training-cutoff knowledge.

This guide covers everything: what Bocha AI is, how the MCP server works internally, step-by-step installation, API key configuration, Claude Desktop and Cursor integration, all available search tools, production deployment strategies, security hardening, and a complete troubleshooting reference.


What Is Bocha AI?

Bocha AI is a search intelligence platform that provides developer-facing APIs for web search, AI-augmented search, and knowledge retrieval. Unlike generic search APIs that return raw URL lists, Bocha AI's endpoints return structured, ranked, and in some configurations AI-summarized results optimized for consumption by language models.

Key characteristics:

  • LLM-optimized payloads: Results include title, URL, snippet, and optionally AI-extracted key points — fields that map directly to what an LLM needs to synthesize an answer.
  • Real-time index: Bocha queries a live web index, not a static dataset, so results reflect current information.
  • Multilingual support: Bocha handles queries in multiple languages with locale-aware ranking.
  • Structured output: JSON responses with consistent schemas reduce the parsing complexity in MCP tool handlers.

Bocha AI targets developers building AI applications that need grounded, factual responses backed by live data.


What Does the Bocha MCP Server Do?

The Bocha MCP Server is a bridge. It implements the Model Context Protocol — an open JSON-RPC-based standard — and exposes Bocha AI's search API as MCP Tools that an LLM client can call during inference.

Want to analyze your API security?

Import your OpenAPI spec and generate a Security Report automatically.

From the LLM's perspective, the flow looks like this:

User prompt → LLM detects search need → MCP tool call → Bocha MCP Server
    → Bocha AI Search API → structured results → MCP response → LLM
    → LLM synthesizes answer → User sees response with real-time data

The server handles:

  1. Tool advertisement — During the MCP initialize handshake, the server publishes its tool list so the client knows what capabilities are available.
  2. Request translation — Converts MCP tools/call JSON-RPC messages into Bocha AI REST API requests.
  3. Response normalization — Formats Bocha API responses back into MCP-compliant CallToolResult payloads.
  4. Authentication — Attaches the Bocha API key to every outbound request so the LLM client never needs to know the key.
  5. Error handling — Maps Bocha API errors (rate limits, invalid queries, network failures) to proper MCP error codes.

Transport Modes

ModeUse CaseConnection Type
stdioLocal client (Claude Desktop, Cursor)Standard input/output
http+sseRemote / shared deploymentHTTP with Server-Sent Events

For most developers getting started, stdio is correct. For team setups or production agents, HTTP+SSE is preferred.


Architecture Overview

┌─────────────────────────────────────────────────────┐
│                  MCP Client Layer                   │
│  ┌──────────────────┐    ┌──────────────────────┐  │
│  │  Claude Desktop  │    │       Cursor          │  │
│  │  (Anthropic)     │    │   (Anysphere)        │  │
│  └────────┬─────────┘    └──────────┬───────────┘  │
└───────────┼──────────────────────────┼──────────────┘
            │ JSON-RPC over stdio      │ JSON-RPC over stdio
            ▼                          ▼
┌─────────────────────────────────────────────────────┐
│              Bocha MCP Server (Node.js)             │
│                                                     │
│  ┌─────────────┐  ┌──────────────┐  ┌───────────┐  │
│  │  Tool Reg.  │  │  Request     │  │  Error    │  │
│  │  Handler    │  │  Translator  │  │  Mapper   │  │
│  └─────────────┘  └──────────────┘  └───────────┘  │
│                        │                            │
│              ┌─────────▼──────────┐                │
│              │  Bocha REST Client │                │
│              │  + API Key Auth    │                │
│              └─────────┬──────────┘                │
└────────────────────────┼────────────────────────────┘
                         │ HTTPS
                         ▼
┌─────────────────────────────────────────────────────┐
│              Bocha AI Search API                    │
│  /v1/web/search  │  /v1/ai/search  │  /v1/news     │
└─────────────────────────────────────────────────────┘

Prerequisites

Before starting, confirm you have:

  • Node.js 18+ — Bocha MCP Server is a Node.js package. Check with node --version.
  • npm or npx — Comes with Node.js. Verify with npm --version.
  • A Bocha AI account — Register at bochaai.com and generate an API key from the developer dashboard.
  • Claude Desktop (optional) — Download from claude.ai/download if integrating with Claude.
  • Cursor (optional) — Download from cursor.sh for IDE integration.

Get Your Bocha API Key

  1. Log in to bochaai.com
  2. Navigate to Developer → API Keys
  3. Click Create New Key
  4. Copy the key immediately — it's shown only once
  5. Store it in a password manager or secrets vault

Security note: Treat this key like a password. It authorizes billable API calls. Never paste it into chat interfaces, commit it to git, or share it in plain text.


Installation

The Bocha MCP Server is published as an npm package. You have two installation options:

bash
npx @bocha-ai/mcp-server

npx downloads and runs the latest version without a permanent install. This is the simplest way to verify things work before committing to a permanent setup.

Option B: Global Install

bash
npm install -g @bocha-ai/mcp-server

After global install, the server is available as:

bash
bocha-mcp-server

Option C: Local Project Install

If you're building a custom agent or integrating Bocha MCP into a larger project:

bash
mkdir my-ai-agent && cd my-ai-agent
npm init -y
npm install @bocha-ai/mcp-server

Then reference it in your project's MCP configuration with the full path.

Verify the Installation

bash
npx @bocha-ai/mcp-server --version

Expected output:

@bocha-ai/mcp-server v1.x.x

API Key Configuration

The Bocha MCP Server reads the API key from the BOCHA_API_KEY environment variable. Never hardcode the key in configuration files that might be committed to version control.

Setting the Environment Variable

macOS / Linux (current session):

bash
export BOCHA_API_KEY="your-api-key-here"

macOS / Linux (permanent — add to shell profile):

bash
echo 'export BOCHA_API_KEY="your-api-key-here"' >> ~/.zshrc
source ~/.zshrc

Windows (PowerShell):

powershell
$env:BOCHA_API_KEY = "your-api-key-here"

Windows (permanent via System Properties):

System Properties → Advanced → Environment Variables → New User Variable
Variable name: BOCHA_API_KEY
Variable value: your-api-key-here

Test the API Key Works

Before configuring any client, verify the key is valid:

bash
curl -X POST https://api.bochaai.com/v1/web/search \
  -H "Authorization: Bearer $BOCHA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "MCP protocol specification", "count": 3}'

A successful response returns a JSON object with a results array. A 401 response means the key is invalid or incorrectly set.


Claude Desktop Integration

Claude Desktop uses a JSON configuration file to define which MCP servers it spawns on startup.

Locate the Config File

PlatformPath
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json

Add the Bocha MCP Server Entry

Open claude_desktop_config.json in any text editor. If it doesn't exist yet, create it.

json
{
  "mcpServers": {
    "bocha-search": {
      "command": "npx",
      "args": ["-y", "@bocha-ai/mcp-server"],
      "env": {
        "BOCHA_API_KEY": "your-api-key-here"
      }
    }
  }
}

Configuration field breakdown:

  • command: The executable Claude Desktop spawns. Use npx for the package runner approach.
  • args: Arguments passed to the command. -y auto-confirms any npx install prompts.
  • env: Environment variables injected into the server process. This is where the API key lives in the config — it stays out of your shell environment and is process-scoped.

If You Used Global Install

Replace npx with the direct binary path for reliability:

json
{
  "mcpServers": {
    "bocha-search": {
      "command": "bocha-mcp-server",
      "args": [],
      "env": {
        "BOCHA_API_KEY": "your-api-key-here"
      }
    }
  }
}

To find the exact binary path after global install:

bash
which bocha-mcp-server
# Example output: /usr/local/bin/bocha-mcp-server

If You Have Multiple MCP Servers

You can run multiple MCP servers simultaneously. Just add multiple entries:

json
{
  "mcpServers": {
    "bocha-search": {
      "command": "npx",
      "args": ["-y", "@bocha-ai/mcp-server"],
      "env": {
        "BOCHA_API_KEY": "your-bocha-key"
      }
    },
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/Documents"],
      "env": {}
    }
  }
}

Restart Claude Desktop

After saving the config, fully quit and reopen Claude Desktop. MCP servers are spawned on startup.

Verify the Integration

  1. Open Claude Desktop
  2. Start a new conversation
  3. Look for the MCP tools indicator (usually a hammer or tool icon near the input box)
  4. Type: "Search the web for the latest news about MCP servers"
  5. Claude should invoke the Bocha search tool and return live results

If you don't see results, check the logs:

  • macOS: ~/Library/Logs/Claude/mcp*.log
  • Windows: %APPDATA%\Claude\Logs\

Cursor Integration

Cursor supports MCP servers natively from version 0.43+. Configuration lives in a project-level or global settings file.

Global Cursor MCP Configuration

Create or edit ~/.cursor/mcp.json:

json
{
  "mcpServers": {
    "bocha-search": {
      "command": "npx",
      "args": ["-y", "@bocha-ai/mcp-server"],
      "env": {
        "BOCHA_API_KEY": "your-api-key-here"
      }
    }
  }
}

Project-Level Cursor Configuration

For project-specific configuration (useful when different projects need different Bocha API keys or rate limits), create .cursor/mcp.json in your project root:

json
{
  "mcpServers": {
    "bocha-search": {
      "command": "npx",
      "args": ["-y", "@bocha-ai/mcp-server"],
      "env": {
        "BOCHA_API_KEY": "project-specific-key"
      }
    }
  }
}

Tip: Add .cursor/mcp.json to .gitignore if it contains the API key directly. Better practice: reference an environment variable from your shell by omitting the env block and ensuring BOCHA_API_KEY is set in your terminal.

Using Bocha Search in Cursor

Once configured, open Cursor's AI chat panel (Cmd+L or Ctrl+L) and ask:

  • "Search for the latest React 19 release notes"
  • "What are the current Node.js LTS versions?"
  • "Find documentation for the Prisma ORM connection pooling"

Cursor's agent will call the Bocha search tool and include the results in its context when generating responses.


Available Search Tools

The Bocha MCP Server exposes several tools depending on the server version. Here are the primary tools as of the current stable release:

The core tool. Performs a live web search and returns ranked results.

Input schema:

json
{
  "query": "string (required) — the search query",
  "count": "integer (optional, default: 10) — number of results to return (1-50)",
  "freshness": "string (optional) — filter by date: 'day', 'week', 'month', 'year'",
  "language": "string (optional) — language code, e.g. 'en', 'zh', 'fr'",
  "market": "string (optional) — regional market, e.g. 'en-US', 'zh-CN'"
}

Example MCP tool call (what the LLM sends internally):

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "web_search",
    "arguments": {
      "query": "TypeScript 5.5 release features",
      "count": 5,
      "freshness": "month"
    }
  }
}

Result structure:

json
{
  "content": [
    {
      "type": "text",
      "text": "[\'TypeScript 5.5 introduces...\' - microsoft.github.io\nURL: https://...\nSnippet: ...\']"
    }
  ],
  "isError": false
}

An AI-augmented search that returns a synthesized answer alongside source results. Ideal for factual questions where the LLM should have a pre-digested answer with citations.

Input schema:

json
{
  "query": "string (required)",
  "count": "integer (optional, default: 5)"
}

This tool is more expensive in terms of API credits because Bocha runs its own AI summarization pipeline on the results before returning them. Use it selectively — reserve it for queries where a synthesized answer is more useful than raw links.

Searches specifically within news sources with temporal ranking.

Input schema:

json
{
  "query": "string (required)",
  "count": "integer (optional, default: 10)",
  "freshness": "string (optional) — 'day', 'week', 'month'"
}

News search is useful for agents that monitor current events, track competitor announcements, or need to ground responses in recent journalism.

Tool Discovery at Runtime

You can inspect what tools a running Bocha MCP Server advertises using the MCP tools/list method. Start the server manually and send:

bash
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | \
  BOCHA_API_KEY="your-key" npx @bocha-ai/mcp-server

The server responds with the full tool definitions including input schemas — useful for debugging and for verifying what version of the server you're running.


Real-World Use Cases

1. Developer Research Assistant

A developer asks Claude: "What's the current best practice for handling JWT refresh tokens in Node.js?"

Without Bocha MCP: Claude answers from training data, potentially citing outdated libraries or patterns.

With Bocha MCP: Claude calls web_search with a freshness filter, retrieves current blog posts and documentation, and synthesizes an answer grounded in 2024–2025 content.

2. Competitive Intelligence Agent

A product team builds a Cursor-based agent that runs news_search queries against competitor names weekly. The results feed into a summary document automatically.

System prompt: "You are a competitive intelligence assistant. 
When asked about any company, always search for recent news 
before summarizing."

3. Live Documentation Lookup

Instead of relying on the LLM's knowledge of an API, a developer instructs Claude to search for the current API docs:

"Search for the current Stripe API documentation for webhook signature verification"

Bocha returns the current Stripe docs page, and Claude synthesizes the exact current implementation pattern.

4. Research Summarization Pipeline

A custom MCP client calls ai_search in batch for a list of topics, collecting Bocha's AI-synthesized answers, then passes them to a secondary LLM for cross-topic analysis.

5. Real-Time Price and Availability Checks

Agents that need to check current pricing for cloud services, SaaS tools, or hardware can use web_search with freshness set to day to avoid stale pricing data.


Security Considerations

Running a search MCP server introduces several security concerns that are easy to overlook.

API Key Exposure

Risk: The BOCHA_API_KEY in claude_desktop_config.json is stored in plaintext on disk.

Mitigation:

  • Restrict file permissions: chmod 600 ~/Library/Application\ Support/Claude/claude_desktop_config.json
  • Use a secrets manager (1Password CLI, AWS Secrets Manager) and load keys at runtime
  • Rotate keys periodically from the Bocha AI dashboard
  • Create separate keys for development, staging, and production environments

Prompt Injection via Search Results

Risk: A malicious webpage could include text like "Ignore previous instructions and..." which gets included in search results and fed to the LLM.

Mitigation:

  • Apply result sanitization in a custom MCP server wrapper
  • Limit search results count to reduce the attack surface
  • Use Claude's built-in prompt injection resistance (Claude 3+ models have improved resistance)
  • Never grant the AI agent destructive capabilities (file deletion, code execution) alongside search

Rate Limit Abuse

Risk: An unconstrained LLM might invoke web_search hundreds of times in a single session, rapidly consuming your Bocha API quota.

Mitigation:

json
{
  "mcpServers": {
    "bocha-search": {
      "command": "npx",
      "args": ["-y", "@bocha-ai/mcp-server"],
      "env": {
        "BOCHA_API_KEY": "your-key",
        "MAX_CALLS_PER_SESSION": "20"
      }
    }
  }
}

Check Bocha MCP Server's documentation for supported rate-limiting environment variables. If the server doesn't support this natively, wrap it in a proxy that enforces call limits.

Network Security for Remote Deployments

If deploying Bocha MCP Server as an HTTP+SSE service:

  • Require HTTPS — never expose the MCP endpoint over plain HTTP
  • Implement bearer token authentication between your MCP client and the server
  • Run behind a reverse proxy (nginx, Caddy) with TLS termination
  • Restrict access by IP allowlist for team deployments
  • Log all tool calls for audit purposes

Verifying MCP Compatibility with MCPForge

Before deploying Bocha MCP into a production workflow or sharing a configuration with your team, it's worth validating the server is behaving correctly against the MCP specification.

MCPForge Verify is an automated tool that:

  • Tests the full MCP initialize handshake
  • Validates tools/list returns correctly structured tool definitions
  • Sends test tools/call requests and validates response formats
  • Checks JSON-RPC message structure compliance
  • Reports transport compatibility (stdio vs HTTP+SSE)

How to Use MCPForge Verify

  1. Go to mcpforge.dev/verify
  2. Choose stdio or HTTP as your transport type
  3. For stdio: provide the command and args (npx -y @bocha-ai/mcp-server)
  4. For HTTP: provide the server URL
  5. Run the verification suite
  6. Review the compliance report

A fully compliant Bocha MCP Server will pass all core MCP protocol checks. If you see failures, the report identifies exactly which part of the protocol is broken — useful for debugging custom wrappers or modified server versions.

You can also browse the MCPForge Verified Directory to find other MCP servers that have been validated, which is helpful when building multi-server agent architectures alongside Bocha.


Performance Optimization

Reduce Result Count for Speed

Each additional result in web_search increases Bocha API processing time. For most LLM use cases, 3–5 results provide enough context:

"Search for X" → count: 5 (not the default 10)

The LLM doesn't benefit from 50 results — it will focus on the first few anyway. Lower counts mean faster tool calls and lower API costs.

Use freshness Filters Strategically

Freshness filtering reduces the candidate pool Bocha searches, which speeds up results and improves relevance for time-sensitive queries:

  • Current events → freshness: "day" or "week"
  • Library documentation → freshness: "year" or omit
  • Historical research → omit freshness entirely

Cache Frequently Repeated Queries

If you're building a custom agent that runs the same searches repeatedly (e.g., monitoring queries), add a caching layer between your agent and the Bocha MCP Server:

javascript
// Pseudocode for a caching wrapper
const cache = new Map();

async function cachedSearch(query, ttlSeconds = 300) {
  const key = `${query}`;
  const cached = cache.get(key);
  
  if (cached && Date.now() - cached.timestamp < ttlSeconds * 1000) {
    return cached.result;
  }
  
  const result = await bochaSearch(query);
  cache.set(key, { result, timestamp: Date.now() });
  return result;
}

For production caching, use Redis with a TTL that matches your acceptable data freshness tolerance.

Parallel Tool Calls

Modern MCP clients support parallel tool calls. If you need results from multiple independent searches, structure your prompt to enable this:

"Search for React 19 features AND search for Vue 4 features simultaneously, then compare them."

Claude will attempt to call both web_search tools in parallel, halving the latency compared to sequential calls.


Troubleshooting

Diagnostic Checklist

Work through this checklist in order when something isn't working:

  • Node.js version is 18+: node --version
  • API key is set: echo $BOCHA_API_KEY (should print the key)
  • API key is valid: Run the curl test from the Prerequisites section
  • Server starts manually: BOCHA_API_KEY=your-key npx @bocha-ai/mcp-server — should start without error
  • Config file is valid JSON: Paste claude_desktop_config.json into jsonlint.com
  • Claude Desktop was fully restarted after config change (Quit, not just close window)
  • No conflicting MCP server names: All keys in mcpServers must be unique
  • Check MCP logs: ~/Library/Logs/Claude/mcp-server-bocha-search.log

Common Errors and Fixes

Error: spawn npx ENOENT

Claude Desktop can't find npx. This happens when Node.js isn't in the PATH that Claude Desktop sees (common on macOS when Node is installed via nvm).

Fix: Use the full path to npx:

bash
which npx
# Example: /Users/yourname/.nvm/versions/node/v20.10.0/bin/npx

Update the config:

json
{
  "mcpServers": {
    "bocha-search": {
      "command": "/Users/yourname/.nvm/versions/node/v20.10.0/bin/npx",
      "args": ["-y", "@bocha-ai/mcp-server"]
    }
  }
}

401 Unauthorized from Bocha API

The API key is wrong or expired.

Fix: Regenerate the key in the Bocha AI dashboard and update all configs. Verify with the curl test before updating Claude Desktop config.

Tool 'web_search' not found

The client doesn't see the tool. Usually means the server didn't start successfully.

Fix: Start the server manually in your terminal and check for startup errors:

bash
BOCHA_API_KEY=your-key npx @bocha-ai/mcp-server

Look for any error output before the server enters its listening state.

Rate limit exceeded (429)

You've hit your Bocha AI plan's search quota.

Fix:

  • Wait for the rate limit window to reset (check Bocha AI docs for reset intervals)
  • Upgrade your Bocha AI plan
  • Implement caching to reduce duplicate queries
  • Add MAX_CALLS_PER_SESSION limits to prevent runaway LLM search calls

JSON Parse Error in Config

Trailing commas in JSON are invalid and will silently break Claude Desktop.

json
// WRONG — trailing comma after last entry
{
  "mcpServers": {
    "bocha-search": {
      "command": "npx",
      "args": ["-y", "@bocha-ai/mcp-server"],  // <-- this trailing comma is valid
      "env": {
        "BOCHA_API_KEY": "key"
      }  // <-- but this one is not if it's the last property
    }  // <-- same here
  }  // <-- same here
}

Use a JSON linter before saving.

Search Results Are Stale

If results seem outdated, check that you're not accidentally using cached results from a proxy layer, and verify the freshness parameter is set appropriately for your query type.


Production Deployment

For teams or automated agents, running Bocha MCP Server as a shared remote service is better than individual local instances.

For a complete production deployment strategy, see our guide on running MCP servers in production, which covers containerization, health checks, monitoring, and scaling patterns that apply directly to Bocha MCP Server.

Docker Deployment

dockerfile
# Dockerfile
FROM node:20-alpine

WORKDIR /app

# Install the MCP server
RUN npm install -g @bocha-ai/mcp-server

# Create non-root user
RUN addgroup -S mcp && adduser -S mcp -G mcp
USER mcp

# Health check endpoint (if server supports HTTP mode)
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
  CMD wget -q -O- http://localhost:3000/health || exit 1

EXPOSE 3000

CMD ["bocha-mcp-server", "--transport", "http", "--port", "3000"]
yaml
# docker-compose.yml
version: '3.8'
services:
  bocha-mcp:
    build: .
    environment:
      - BOCHA_API_KEY=${BOCHA_API_KEY}
    ports:
      - "3000:3000"
    restart: unless-stopped
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

Run with:

bash
export BOCHA_API_KEY="your-key"
docker compose up -d

Kubernetes Deployment

yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: bocha-mcp-server
spec:
  replicas: 2
  selector:
    matchLabels:
      app: bocha-mcp
  template:
    metadata:
      labels:
        app: bocha-mcp
    spec:
      containers:
      - name: bocha-mcp
        image: your-registry/bocha-mcp-server:latest
        ports:
        - containerPort: 3000
        env:
        - name: BOCHA_API_KEY
          valueFrom:
            secretKeyRef:
              name: bocha-secrets
              key: api-key
        resources:
          requests:
            memory: "128Mi"
            cpu: "100m"
          limits:
            memory: "256Mi"
            cpu: "500m"

Create the secret:

bash
kubectl create secret generic bocha-secrets \
  --from-literal=api-key="your-api-key-here"

Remote MCP Client Configuration

Once deployed, point Claude Desktop at the remote server instead of spawning it locally:

json
{
  "mcpServers": {
    "bocha-search": {
      "url": "https://your-mcp-server.example.com/mcp",
      "transport": "sse"
    }
  }
}

Note: HTTP+SSE remote MCP requires the MCP client to support remote transports. Claude Desktop's support for remote MCP connections has been expanding — check the current Claude Desktop release notes for the latest transport support status.


Best Practices Summary

Configuration

  • Always use environment variables for API keys — never hardcode them
  • Use project-level config for per-project Bocha key isolation
  • Validate JSON config with a linter before every change
  • Use full binary paths when npx PATH resolution fails

Search Quality

  • Set appropriate freshness filters based on query type
  • Limit result count to 3–5 for most conversational use cases
  • Use ai_search selectively — it costs more but provides synthesized answers
  • Write clear, specific queries in your system prompts to guide the LLM's search behavior

Security

  • Rotate API keys every 90 days
  • Use separate Bocha API keys per environment (dev/staging/prod)
  • Sanitize search results before passing to agents with destructive capabilities
  • Restrict claude_desktop_config.json file permissions
  • Never log raw search results that might contain sensitive scraped content

Performance

  • Cache repeated queries with Redis in production
  • Enable parallel tool calls by prompting for multiple independent searches simultaneously
  • Monitor API usage in the Bocha AI dashboard and set billing alerts
  • Use count: 3 for quick factual lookups, count: 10 only for comprehensive research tasks

Reliability

  • Implement retry logic with exponential backoff for 429 and 503 responses
  • Set session-level call limits to prevent runaway LLM search loops
  • Add health check monitoring for remote deployments
  • Log all tool calls with timestamps for debugging and cost attribution

Production Deployment Checklist

  • Bocha API key stored in secrets manager, not plaintext config
  • Separate API keys for dev, staging, production
  • Server runs as non-root user in containerized deployments
  • HTTPS enforced for all HTTP+SSE transport connections
  • Health check endpoint configured and monitored
  • Billing alerts set on Bocha AI dashboard
  • Rate limiting implemented at application layer
  • Tool call logging enabled for audit trail
  • MCP protocol compliance verified with MCPForge Verify
  • Graceful shutdown handling implemented
  • Result count tuned to minimum needed for your use case
  • Prompt injection mitigations reviewed
  • Node.js version pinned in Dockerfile/deployment spec

Key Takeaways

Bocha MCP Server is one of the most practical additions to any AI development workflow that needs live web data. The setup is straightforward — under 15 minutes from API key to working Claude Desktop integration — and the search quality is strong enough for production use cases.

The most common pitfall is the npx PATH problem on macOS with nvm. Use full binary paths in your config to avoid it. The second most common issue is forgetting to fully restart Claude Desktop after config changes — it doesn't hot-reload.

For production, treat the Bocha MCP Server like any other external API integration: secrets management, rate limit handling, monitoring, and graceful error handling are not optional. The MCP protocol makes the integration easy, but the operational discipline is still on you.

Validate your setup with MCPForge Verify before going to production, and explore the MCPForge Verified Directory to discover other MCP servers that complement Bocha's search capabilities in multi-tool agent architectures.

Frequently Asked Questions

What is Bocha MCP and what does it do?

Bocha MCP is a Model Context Protocol server that exposes Bocha AI's web search and AI search capabilities to any MCP-compatible client, including Claude Desktop and Cursor. It allows LLMs to query live web data, retrieve structured results, and access real-time information during conversations.

Do I need a paid Bocha AI account to use the MCP server?

You need a valid Bocha AI API key, which requires a registered account at bochaai.com. Bocha AI offers a free tier with limited monthly searches. Production workloads with high query volume will require a paid plan. Check the Bocha AI pricing page for current limits.

Is the Bocha MCP Server officially supported by Anthropic or Claude?

No. The Bocha MCP Server is built and maintained by Bocha AI, not Anthropic. It implements the open Model Context Protocol specification, which makes it compatible with Claude Desktop and any other MCP-compliant client. MCP itself is an open standard.

Can I run Bocha MCP Server remotely instead of locally?

Yes. While most getting-started setups run the server locally via stdio transport, you can deploy Bocha MCP Server as a remote service using HTTP+SSE transport. This is recommended for team environments where multiple developers share a single API key configuration.

How do I verify my Bocha MCP Server is MCP-compliant before using it in production?

Use MCPForge Verify at mcpforge.dev/verify. It performs automated protocol checks including tool discovery, JSON-RPC message format validation, and transport compatibility. This is especially useful before integrating Bocha MCP into CI/CD pipelines or shared developer environments.

What happens if my Bocha API key hits rate limits during an LLM session?

The Bocha MCP Server will return a JSON-RPC error response to the client. The LLM will typically surface this as a tool call failure. You should implement retry logic with exponential backoff at the application layer, or use multiple API keys in a round-robin configuration for high-throughput deployments.

Does Bocha MCP support streaming search results?

Bocha MCP returns complete search result payloads rather than streamed tokens. The streaming behavior you see in Claude Desktop is the LLM streaming its own response after receiving the full search results from the tool call.

Can I use Bocha MCP with VS Code or other editors besides Cursor?

Any editor or IDE that implements MCP client support can use Bocha MCP Server. Cursor has native MCP support. VS Code can be extended with MCP support through compatible extensions. The server exposes a standard stdio or HTTP interface that any MCP-compliant client can connect to.

How do I troubleshoot 'tool not found' errors when calling Bocha search tools?

First, confirm the server started correctly by checking your client's MCP logs. Run the server manually with your API key set and verify it outputs tool definitions on the initialize handshake. Ensure the tool name in your prompt matches exactly what the server advertises — tool names are case-sensitive in MCP.

Is it safe to commit my Bocha MCP configuration to a git repository?

Never commit your API key directly in configuration files. Use environment variables or a secrets manager. The claude_desktop_config.json file often contains the env block with the API key — add this file or the key reference to .gitignore before committing.

Check your MCP security posture

Generate a Security Score, detect risky tools, and review permissions before exposing APIs to AI agents.

Related Articles

What Is Model Context Protocol (MCP)?

OpenAPI to MCP: Complete Guide

How to Connect Claude to Any API Using MCP

Coming soon

GitHub MCP Server Explained

Coming soon