Getting Started
1
Launch Sourcebot
Follow the deployment guide to launch Sourcebot and get your code indexed. The host url of your instance (e.g.,
http://localhost:3000
) is passed to the MCP server via the SOURCEBOT_HOST
url.If a host is not provided, then the server will fallback to using the demo instance hosted at https://demo.sourcebot.dev. You can see the list of repositories indexed here. Add additional repositories by opening a PR.2
Create an API key
Create an API key to allow the MCP server to query your Sourcebot instance. To create an API key, login to your Sourcebot instance and navigate to Settings -> API Keys:
Copy the API key and set it as the

SOURCEBOT_API_KEY
environment variable.3
Install the MCP server
Ensure you have Node.js >= v18.0.0 installed.
Cursor
Cursor
Cursor MCP docsGo to: Replace
Settings
-> Cursor Settings
-> MCP
-> Add new global MCP server
Paste the following into your ~/.cursor/mcp.json
file. This will install Sourcebot globally within Cursor:http://localhost:3000
with wherever your Sourcebot instance is hosted.Windsurf
Windsurf
Windsurf MCP docsGo to: Replace
Windsurf Settings
-> Cascade
-> Add Server
-> Add Custom Server
Paste the following into your mcp_config.json
file:http://localhost:3000
with wherever your Sourcebot instance is hosted.VS Code
VS Code
VS Code MCP docsAdd the following to your .vscode/mcp.json file:Replace
http://localhost:3000
with wherever your Sourcebot instance is hosted.Claude Code
Claude Code
Claude Code MCP docsRun the following command:Replace
http://localhost:3000
with wherever your Sourcebot instance is hosted.Claude Desktop
Claude Desktop
Claude Desktop MCP docsAdd the following to your Replace
claude_desktop_config.json
:http://localhost:3000
with wherever your Sourcebot instance is hosted.4
Prompt the LLM
Tell your LLM to
use sourcebot
when prompting.Available Tools
search_code
Fetches code that matches the provided regex pattern in query
.
Parameters:
Name | Required | Description |
---|---|---|
query | yes | Regex pattern to search for. Escape special characters and spaces with a single backslash (e.g., βconsole.logβ, βconsole\ logβ). |
filterByRepoIds | no | Restrict search to specific repository IDs (from βlist_reposβ). Leave empty to search all. |
filterByLanguages | no | Restrict search to specific languages (GitHub linguist format, e.g., Python, JavaScript). |
caseSensitive | no | Case sensitive search (default: false). |
includeCodeSnippets | no | Include code snippets in results (default: false). |
maxTokens | no | Max tokens to return (default: env.DEFAULT_MINIMUM_TOKENS). |
list_repos
Lists all repositories indexed by Sourcebot.
get_file_source
Fetches the source code for a given file.
Parameters:
Name | Required | Description |
---|---|---|
fileName | yes | The file to fetch the source code for. |
repoId | yes | The Sourcebot repository ID. |
Environment Variables
Name | Default | Description |
---|---|---|
SOURCEBOT_HOST | http://localhost:3000 | URL of your Sourcebot instance. |
SOURCEBOT_API_KEY | - | Sourcebot API key. |
DEFAULT_MINIMUM_TOKENS | 10000 | Minimum number of tokens to return in responses. |
DEFAULT_MATCHES | 10000 | Number of code matches to fetch per search. |
DEFAULT_CONTEXT_LINES | 5 | Lines of context to include above/below matches. |