> For the complete documentation index, see [llms.txt](https://codemash.gitbook.io/codemash/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://codemash.gitbook.io/codemash/cloud/ai/mcp/providers/brave-search.md).

# Brave Search

Connect the Brave Search MCP server.

The Brave Search MCP server gives the chat web, image, news and video search. Transport: **HttpStream**.

## Get your credentials

1. Open the [Brave Search API](https://brave.com/search/api/) page, sign up and choose a plan (the free plan is enough to try).
2. In the [API dashboard → API Keys](https://api-dashboard.search.brave.com/app/keys) create a key and copy it (it starts with `BSA`).
3. Run the Brave Search MCP server where Norbix can reach it over HTTPS, in HTTP mode: `docker run -e BRAVE_API_KEY=<key> -e BRAVE_MCP_TRANSPORT=http -p 8080:8080 mcp/brave-search` (it listens on port 8080, path `/mcp`). Put it behind HTTPS.
4. Note the address, for example `https://brave-mcp.example.com/mcp`.

More in the server's own guide: [Brave Search MCP server](https://github.com/brave/brave-search-mcp-server).

## Connect it in Cloud

**Where:** Project → Integrations → MCP → **Add New Integration** → Brave Search → **Connect** · `/projects/<project>/ai/mcps/integrations/new/bravesearch`

| Field            | Required | What it does                                                                                                              | Example                             |
| ---------------- | -------- | ------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| Server URL       | yes      | The address of your Brave Search MCP server.                                                                              | `https://brave-mcp.example.com/mcp` |
| API Key          | yes      | Your Brave Search API key. Norbix sends it as `Authorization: Bearer <key>`. Stored encrypted, asked again on every save. | `BSA-placeholder-not-real`          |
| Integration Name | yes      | How the integration is listed in Norbix.                                                                                  | `Web search`                        |

<figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-5082e45fbde7d76c9ec3cdc1deff3918d79ff543%2Fbrave-search-form-1.png?alt=media" alt="New Brave Search Integration form filled with placeholder values"><figcaption><p>The filled form (secrets are made-up placeholders).</p></figcaption></figure>

Press **Save**. The title becomes *Editing Brave Search integration*, the badges say **ENABLED** and **NOT TESTED**, the id (`int_…`) appears, the secret field is empty again with the note that it will not be displayed, and the test panel appears.

<figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-1feb4ad3baed136348e6f99ed91d25c7f0ba5ebc%2Fbrave-search-saved-2.png?alt=media" alt="The Brave Search integration after save: badges ENABLED and NOT TESTED, the id, and the Test integration panel"><figcaption><p>After save.</p></figcaption></figure>

## Test and set as default

**Test integration** only checks that Norbix can read the stored secret; it does not start or call the server — see [Test an MCP integration](/codemash/cloud/ai/mcp/test.md). MCP integrations have no default: every enabled one is offered to the end-user chat — see [Default MCP integration](/codemash/cloud/ai/mcp/set-default.md). To keep it away from the chat: [Disable or delete](/codemash/cloud/ai/mcp/disable.md).

## Common errors

| Message                                                     | Cause                                                                                       | Fix                                                    |
| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| *Required* under **Server URL** or the secret               | The field is empty; the secret is asked again on every save.                                | Fill it in again.                                      |
| *Domain URL format is invalid* (`CM-ERRORS-DOMAIN-002`)     | **Server URL** is not a full address.                                                       | Write it with `https://`.                              |
| No tools of this server in the chat, though **Test** passed | The test only checks the stored secret; the URL or the key is wrong, or the server is down. | Check the URL and the key at the provider; save again. |
