A Model Context Protocol (MCP) server that allows AI assistants to search code repositories using natural language queries through the Sourcegraph API. The server also provides advanced code pattern research capabilities.
- Natural Language Code Search: Search using plain English queries
- Code Search: Search for code across Sourcegraph repositories
- Commit Search: Find commits with various filters
- Diff Search: Find code changes/PRs
- GitHub-specific Search: Search in specific GitHub repositories
- Deep Code Research: Analyze code patterns and architecture across repositories
# Run directly with npx (simplest way)
npx sourcegraph-mcp-server
# Or install globally
npm install -g sourcegraph-mcp-server
sourcegraph-mcp-server
Create a .env
file with your Sourcegraph credentials before running:
SOURCEGRAPH_URL=https://your-sourcegraph-instance.com
SOURCEGRAPH_TOKEN=your_api_token
- In Claude Desktop, go to Settings > MCP Servers
- Add MCP Server
- For STDIO: Process:
npx -y sourcegraph-mcp-server
- For HTTP: URL:
http://localhost:3002
- For STDIO: Process:
- Start using tools by typing "/tool" in Claude
npx @modelcontextprotocol/inspector node dist/stdio-server.js
-
search-code
: Search code with Sourcegraph query syntax -
search-commits
: Find commits with filters -
search-diffs
: Find code changes/PRs -
search-github-repos
: Search in specific GitHub repositories
-
get-definition
: Find the definition of a symbol in code -
get-references
: Find all references to a symbol -
get-implementations
: Find implementations of interfaces or methods -
get-hover-documentation
: Get documentation for a symbol -
get-document-symbols
: List all symbols in a file
-
get-file-content
: Get the content of a file from a repository -
get-file-blame
: Get git blame information for a file
-
lookup-cve
: Search for CVEs affecting repositories or packages -
lookup-package-vulnerability
: Check packages for vulnerabilities -
search-exploits
: Find exploit code for known vulnerabilities -
find-vendor-advisory
: Find vendor security advisories
-
test-connection
: Test connection to Sourcegraph API -
echo
: Simple test tool -
debug
: Show available tools
Sourcegraph MCP Server provides access to advanced code intelligence features:
- Symbol Navigation: Jump to definitions and find references across repositories
- Code Documentation: Get hover documentation for functions, classes, and variables
- Repository Analysis: Examine file content and git blame history
- Security Analysis: Find vulnerabilities and security advisories
These tools help you understand codebases more efficiently by providing context about code symbols, relationships, and vulnerabilities.
Sourcegraph has a powerful search syntax you can use with the search tools:
-
Repository filtering:
repo:^github\.com/owner/repo$
-
Language filtering:
lang:javascript
-
File path filtering:
file:\.js$
-
Content filtering:
content:"exact phrase"
-
Boolean operators:
term1 AND term2
,term1 OR term2
,term1 NOT term2
-
Regular expressions:
/pattern/
-
Commit search:
type:commit message:"fix bug" author:username
-
Diff search:
type:diff select:commit.diff.added term
If you encounter issues:
- Environment Variables: Ensure SOURCEGRAPH_URL and SOURCEGRAPH_TOKEN are correctly set
- Connectivity: Verify your Sourcegraph instance is accessible
-
Tool Errors: Use the
debug
tool to verify available tools
For detailed troubleshooting help, see the DEBUGGING.md file.
.
├── src/ - TypeScript source files
│ ├── index.ts - Main Express server entry point
│ ├── mcp-server.ts - Model Context Protocol implementation
│ ├── mcp-server-debug.ts - Debug version of MCP server
│ ├── mcp-server-connect.ts - Connection testing implementation
│ ├── http-server.ts - HTTP transport for MCP
│ └── stdio-server.ts - STDIO transport for MCP
├── scripts/ - Utility scripts for testing and development
│ ├── debug-server.js - Debug server utility
│ └── test-search.js - Test search functionality
├── dist/ - Compiled JavaScript output
├── docs/ - Documentation files
└── .env.example - Example environment configuration
# Clone the repository
git clone https://github.com/madhukarkumar/sg-ts-mcp-server.git
cd sg-ts-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Start the HTTP MCP server
npm run start:mcp
# Or start the STDIO server
npm run start:stdio
MIT