Sourcerer Mcp
@st3v3nmw
An MCP server for semantic code search & navigation that helps AI agents work efficiently without burning through costly tokens. Instead of reading entire files, agents can search conceptually and jump directly to the specific functions, classes, and code chunks they need.
Overview
What is Sourcerer MCP?
Sourcerer MCP is an MCP server for semantic code search and navigation. It helps AI agents find specific functions, classes, and code chunks using conceptual search instead of reading entire files, reducing token usage and cognitive load.
How to use Sourcerer MCP?
Install via go install or Homebrew. Configure with an OpenAI API key and workspace root path, then add the server to your MCP client (e.g., Claude Code or mcp.json). Once configured, agents can call tools like semantic_search and get_source_code to query and retrieve code.
Key features of Sourcerer MCP
- Semantic search by concept and functionality
- Retrieve specific code chunks by stable ID
- Uses Tree-sitter for AST-based code parsing
- Automatically re-indexes changed files via file watching
- Respects
.gitignorerules - Stores embeddings persistently in
.sourcerer/db/
Use cases of Sourcerer MCP
- AI agents finding relevant code without scanning entire files
- Navigating directly to functions, classes, or methods by name or purpose
- Reducing token consumption during code comprehension tasks
- Conceptually searching a codebase for patterns and dependencies
FAQ from Sourcerer MCP
What are the requirements to run Sourcerer MCP?
An OpenAI API Key is required for generating embeddings. The project must be a Git repository, and you should add .sourcerer/ to your .gitignore to ignore the vector database directory.
What MCP tools does Sourcerer MCP provide?
It provides semantic_search (find code by concept), get_source_code (retrieve a chunk by ID), index_workspace (manually trigger re-indexing), and get_index_status (check indexing progress).
What programming languages are currently supported?
Only Go is currently supported. Python, TypeScript, and JavaScript are planned. Adding support for new languages requires writing Tree-sitter queries.
How does Sourcerer MCP handle file changes?
It watches for file changes using fsnotify, respects .gitignore via git check-ignore, and automatically re-indexes changed files while tracking modification times.
Where is the vector database stored?
The vector database is stored persistently in the .sourcerer/db/ directory within the workspace root.