@sourcebot_dev: Give agents context across your entire codebase. Open source, 1 min install.

X AI KOLs Following Tools

Summary

Sourcebot has launched an open-source MCP (Model Context Protocol) server that connects AI coding agents like Cursor, Claude Code, and Copilot to an entire codebase for search, file reading, and reference resolution. It supports OAuth 2.0 and API key authorization with a quick 1-minute install.

Give agents context across your entire codebase. Open source, 1 min install.
Original Article
View Cached Full Text

Cached at: 04/21/26, 07:07 AM

# Sourcebot MCP server - Sourcebot Source: [https://docs.sourcebot.dev/docs/features/mcp-server?twclid=24ur7m6qrna8fzx0l5w88rsgef](https://docs.sourcebot.dev/docs/features/mcp-server?twclid=24ur7m6qrna8fzx0l5w88rsgef) The Sourcebot MCP Server connects AI tools to your[Sourcebot deployment](https://docs.sourcebot.dev/docs/deployment/docker-compose)\. This gives AI agents and automations the ability to search, read files, resolve references & definitions, and more across all of your code hosted on Sourcebot\. ## Use cases - **Context for local agents:**Plug the MCP into coding agents like Cursor, Claude Code, or Copilot to give them context across your entire codebase, not just the open workspace\. - **Building autonomous AI agents:**Use Sourcebot as a code context layer for multi\-agent systems that review PRs, auto\-fix bugs, and answer questions across the company\. ## Getting Started Sourcebot MCP uses a[Streamable HTTP](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#streamable-http)transport hosted at the`/api/mcp`route\. Two authorization mechanisms are supported: - **OAuth \(preferred\)**: MCP clients that support OAuth 2\.0 will automatically handle the authorization flow and issue a short lived access token\. No API key or manual token management required\. Only available with an active[Enterprise license](https://docs.sourcebot.dev/docs/license-key)\. - **API key**: Any MCP client can authorize using a Sourcebot API key passed as a`Authorization: Bearer <key\>`header\. Create one in**Settings → API Keys**\. You can read more about the options in the[authorization](https://docs.sourcebot.dev/docs/features/mcp-server?twclid=24ur7m6qrna8fzx0l5w88rsgef#authorization)section\. The Sourcebot MCP server supports two authorization methods, OAuth and API keys\. If[anonymous access](https://docs.sourcebot.dev/docs/configuration/auth/access-settings#anonymous-access)is enabled on your instance, no authorization is required\.Regardless of which method you use, all MCP requests are scoped to the associated Sourcebot user and inherit the[user’s role and permissions](https://docs.sourcebot.dev/docs/configuration/auth/roles-and-permissions)\. When[permission syncing](https://docs.sourcebot.dev/docs/features/permission-syncing)is configured, this includes repository permissions \- the MCP server will only surface results from repositories the user has access to\. ### OAuth 2\.0 Sourcebot implements an OAuth 2\.0 authorization server with support for dynamic client registration \(RFC 7591\)\. This means MCP clients can register themselves automatically without any manual setup\. Just point your client at the MCP endpoint and it will handle the full authorization flow, prompting you to log in and approve access in your browser the first time you connect\. No API key or manual token management is required\.Once authorized, Sourcebot issues a short\-lived access token \(valid for 1 hour\) and a refresh token \(valid for 90 days\)\. The MCP client handles token refresh automatically, so you stay connected without needing to re\-authorize\. ### API Key \(Bearer token\) API keys provide a simpler alternative to OAuth that works with any MCP client\. Each key is scoped to the user who created it and inherits their permissions\. To create one, navigate to**Settings → API Keys**and click**Create API Key**\.Pass the key as an`Authorization: Bearer <key\>`header when connecting to the MCP server\. ### `grep` Searches for code matching a regular expression pattern across repositories, similar to`grep`/`ripgrep`\. Always case\-sensitive\. Results are grouped by file and include line numbers\.Parameters: NameRequiredDescription`pattern`yesThe regex pattern to search for in file contents\.`path`noDirectory path to scope the search to\. Defaults to the repository root\.`include`noFile glob pattern to include in the search \(e\.g\.`\*\.ts`,`\*\.\{ts,tsx\}`\)\.`repo`noRepository name to search in\. If not provided, searches all repositories\. Use the full name including host \(e\.g\.`github\.com/org/repo`\)\.`ref`noCommit SHA, branch or tag name to search on\. If not provided, defaults to the default branch\.`limit`noMaximum number of matching files to return \(default: 100\)\. ### `list\_repos` Lists repositories indexed by Sourcebot with optional filtering and pagination\.Parameters: NameRequiredDescription`query`noFilter repositories by name \(case\-insensitive\)\.`page`noPage number for pagination \(min 1, default: 1\)\.`perPage`noResults per page for pagination \(min 1, max 100, default: 30\)\.`sort`noSort repositories by ‘name’ or ‘pushed’ \(most recent commit\)\. Default: ‘name’\.`direction`noSort direction: ‘asc’ or ‘desc’ \(default: ‘asc’\)\. ### `read\_file` Reads the source code for a given file, with optional line range control for large files\.Parameters: NameRequiredDescription`repo`yesThe repository name\.`path`yesThe path to the file\.`ref`noCommit SHA, branch or tag name to fetch the source code for\. If not provided, uses the default branch\.`offset`noLine number to start reading from \(1\-indexed\)\. Omit to start from the beginning\.`limit`noMaximum number of lines to read \(max: 500\)\. Omit to read up to 500 lines\. ### `list\_tree` Lists files and directories from a repository path\. Directories are shown before files at each level\.Parameters: NameRequiredDescription`repo`yesThe name of the repository to list files from\.`path`noDirectory path \(relative to repo root\)\. If omitted, the repo root is used\.`ref`noCommit SHA, branch or tag name to list files from\. If not provided, uses the default branch\.`depth`noNumber of directory levels to traverse below`path`\(min 1, max 10, default: 1\)\.`includeFiles`noWhether to include file entries in the output \(default: true\)\.`includeDirectories`noWhether to include directory entries in the output \(default: true\)\.`maxEntries`noMaximum number of entries to return before truncating \(min 1, max 10000, default: 1000\)\. ### `list\_commits` Get a list of commits for a given repository\.Parameters: NameRequiredDescription`repo`yesThe name of the repository to list commits for\.`query`noSearch query to filter commits by message content \(case\-insensitive\)\.`since`noShow commits more recent than this date\. Supports ISO 8601 \(e\.g\., ‘2024\-01\-01’\) or relative formats \(e\.g\., ‘30 days ago’\)\.`until`noShow commits older than this date\. Supports ISO 8601 \(e\.g\., ‘2024\-12\-31’\) or relative formats \(e\.g\., ‘yesterday’\)\.`author`noFilter commits by author name or email \(case\-insensitive\)\.`ref`noCommit SHA, branch or tag name to list commits of\. If not provided, uses the default branch\.`page`noPage number for pagination \(min 1, default: 1\)\.`perPage`noResults per page for pagination \(min 1, max 100, default: 50\)\. ### `glob` Finds files whose paths match a glob pattern across repositories \(e\.g\.`\*\*/\*\.ts`,`src/\*\*/\*\.test\.\{ts,tsx\}`\)\. Results are grouped by repository\.Parameters: NameRequiredDescription`pattern`yesGlob pattern to match file paths against \(e\.g\.`\*\*/\*\.ts`,`src/\*\*/\*\.test\.\{ts,tsx\}`\)\.`path`noRestrict results to files under this subdirectory\.`repo`noRepository name to search in\. If not provided, searches all repositories\. Use the full name including host \(e\.g\.`github\.com/org/repo`\)\.`ref`noCommit SHA, branch or tag name to search on\. If not provided, defaults to the default branch\.`limit`noMaximum number of files to return \(default: 100\)\. ### `find\_symbol\_definitions` Finds where a symbol \(function, class, variable, etc\.\) is defined in a repository\.Parameters: NameRequiredDescription`symbol`yesThe symbol name to find definitions of\.`repo`yesRepository name to scope the search to\. Use the full name including host \(e\.g\.`github\.com/org/repo`\)\. ### `find\_symbol\_references` Finds all usages of a symbol \(function, class, variable, etc\.\) across a repository\.Parameters: NameRequiredDescription`symbol`yesThe symbol name to find references to\.`repo`yesRepository name to scope the search to\. Use the full name including host \(e\.g\.`github\.com/org/repo`\)\. ### `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`\.Parameters:This tool takes no parameters\. ### `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\. Returns a detailed answer in markdown format with code references, plus a link to view the full research session in the Sourcebot web UI\.Parameters: NameRequiredDescription`query`yesThe query to ask about the codebase\.`repos`noThe repositories that are accessible to the agent during the chat\. If not provided, all repositories are accessible\.`languageModel`noThe language model to use for answering the question\. Object with`provider`and`model`\. If not provided, defaults to the first model in the config\. Use`list\_language\_models`to see available options\.`visibility`noThe visibility of the chat session \(`'PRIVATE'`or`'PUBLIC'`\)\. Defaults to`PRIVATE`for authenticated users and`PUBLIC`for anonymous users\. Set to`PUBLIC`to make the chat viewable by anyone with the link \(useful in shared environments like Slack\)\.

Similar Articles

ColeMurray/background-agents

GitHub Trending (daily)

Open-Inspect is an open-source background coding agent system inspired by Ramp's Inspect, allowing developers to run background tasks in sandboxed environments with integrations like Slack, GitHub, and webhooks, supporting multiple AI models and multiplayer sessions.

@geekbb: An open-source AI agent meta-orchestration framework that provides a unified orchestration layer for multiple agents including Claude Code, Codex, Cursor, OpenCode, Hermes, and Pi. Users can seamlessly switch sessions across devices (terminal, browser, mobile, desktop app) to enable multi-agent...

X AI KOLs Timeline

Omnigent is an open-source meta-orchestration framework that provides a unified orchestration layer over multiple AI agents like Claude Code, Codex, and Cursor. It enables seamless cross-device session switching, multi-agent collaboration, policy enforcement, and cloud sandbox execution.

@swyx: explain this

X AI KOLs Following

This article explains the Model Context Protocol (MCP) for building pluggable AI agent architectures, detailing lessons from building an MCP server at Sentry, including OAuth 2.1 integration, designing agent-friendly tool interfaces, and current ecosystem limitations.