Sourcebot

by sourcebot-dev

399 downloads
Not rated
GitHub

About

Fetch code context from multiple code hosts (GitHub, GitLab, Bitbucket, etc)

Details

Author
sourcebot-dev
Downloads
399
Categories
Developer Tools

- One-command deployment using Docker.
- Multi-repo search across GitHub, GitLab, Bitbucket, Gitea, Gerrit.
- Lightning fast performance built on the Zoekt search engine.
- Modern web app with syntax highlighting, light/dark mode, vim-style navigation.
- Full file visualization showing the entire file for any search result.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Sourcebot
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Deploy Sourcebot in seconds using the official Docker image: create a config.json, run the provided docker run command, and start searching at http://localhost:3000. Full configuration details are available in the docs.

search_code

Searches for code that matches the provided search query as a substring by default, or as a regular expression if useRegex is true. Useful for exploring remote repositories by searching for exact symbols, functions, variables, or specific code patterns. To determine if a repository is indexed, use the `list_repos` tool. By default, searches are global and will search the default branch of all repositories. Searches can be scoped to specific repositories, languages, and branches. When referencing code outputted by this tool, always include the file's external URL as a link. This makes it easier for the user to view the file, even if they don't have it locally checked out.

list_commits

Get a list of commits for a given repository.

list_repos

Lists repositories in the organization with optional filtering and pagination.

read_file

Reads the source code for a given file.

list_tree

Lists files and directories from a repository path. This can be used as a repo tree tool or directory listing tool. Returns a flat list of entries with path metadata and depth relative to the requested path.

list_language_models

Lists the available language models configured on the Sourcebot instance. Use this to discover which models can be specified when calling ask_codebase.

ask_codebase

Ask a natural language question about the codebase. This tool uses an AI agent to autonomously search code, read files, and find symbol references/definitions to answer your question. The agent will: - Analyze your question and determine what context it needs - Search the codebase using multiple strategies (code search, symbol lookup, file reading) - Synthesize findings into a comprehensive answer with code references Returns a detailed answer in markdown format with code references, plus a link to view the full research session (including all tool calls and reasoning) in the Sourcebot web UI. When using this in shared environments (e.g., Slack), you can set the visibility parameter to 'PUBLIC' to ensure everyone can access the chat link. This is a blocking operation that may take 30-60+ seconds for complex questions as the agent researches the codebase.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "sourcebot": {
            "sourcebot": {
                "command": "npx",
                "args": [
                    "-y",
                    "@sourcebot/mcp@latest"
                ]
            }
        }
    }
}

McpServers

{
    "sourcebot": {
        "command": "npx",
        "args": [
            "-y",
            "@sourcebot/mcp@latest"
        ]
    }
}

Deploy Sourcebot

Sourcebot can be deployed in seconds using our official docker image. Visit our docs for more information.

1. Create a config

touch config.json
echo '{
"$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
"connections": {
// Comments are supported
"starter-connection": {
"type": "github",
"repos": [
"sourcebot-dev/sourcebot"
]
}
}
}' > config.json

2. Run the docker container

docker run \
-p 3000:3000 \
--pull=always \
--rm \
-v $(pwd):/data \
-e CONFIG_PATH=/data/config.json \
--name sourcebot \
ghcr.io/sourcebot-dev/sourcebot:latest

<details>
<summary>What does this command do?</summary>

- Pull and run the Sourcebot docker image from ghcr.io/sourcebot-dev/sourcebot:latest.
- Mount the current directory (-v $(pwd):/data) to allow Sourcebot to persist the .sourcebot cache.
- Clones sourcebot at HEAD into .sourcebot/github/sourcebot-dev/sourcebot.
- Indexes sourcebot into a .zoekt index file in .sourcebot/index/.
- Map port 3000 between your machine and the docker image.
- Starts the web server on port 3000.
</details>
</br>

3. Start searching at http://localhost:3000
</br>

To learn how to configure Sourcebot to index your own repos, please refer to our docs.

> [!NOTE]
> Sourcebot collects <a href="https://demo.sourcebot.dev/~/search?query=captureEvent%5C(%20repo%3Asourcebot">anonymous usage data</a> by default to help us improve the product. No sensitive data is collected, but if you'd like to disable this you can do so by setting the SOURCEBOT_TELEMETRY_DISABLED environment
> variable to true. Please refer to our telemetry docs for more information.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.