An MCP (Model Context Protocol) server providing hybrid semantic search over code across a set of GitHub repositories that you list in `config.yaml`.
Most developer tooling work still happens through a UI a human drives. Semcode MCP server moves it into the conversation instead. An MCP (Model Context Protocol) server providing hybrid semantic search over code across a set of GitHub repositories that you list in config.yaml. It parses symbols with Tree-sitter and indexes both code and git commit history, so AI.
The server publishes 11 tools. What each one is for:
search_code — Hybrid (dense + BM25) search by query, with optional filters for language, service, symbol typefind_symbol — Look up a symbol by name — exact match, or case-insensitive substring when exact=falsefind_usages — Find code that references a given symbol name (semantic search, then excludes the definition itself)get_code_context — Fetch the full source of a file — or a specific symbol within it — directly from GitHubreindex — Trigger code indexing of one or all services (incremental by default; force to re-embed)index_history — Index git commit history; automatically fetches diffs for commits missing themsearch_commits — Search git commit history with natural languageget_commit — Get full details for a specific commit including changed files and diffslist_indexed_services — List indexed services with chunk and file counts, languages, and last-indexed timeindex_stats — Show Qdrant collection statistics and configured servicesEndpoint — BodyBecause this one is hosted, setup is mostly authentication — you point your client at the endpoint and approve access. Nothing runs on your machine, so there is no runtime to keep patched.
Configuration is passed through the environment: MCP_TRANSPORT, GITHUB_TOKEN, CONFIG_PATH, QDRANT_URL, JINA_URL, JINA_API_KEY, VOYAGE_API_KEY, OPENAI_API_KEY. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.
Among the developer tooling options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Semcode's toolset — search_code, find_symbol, find_usages and 8 more — is a fair guide to whether it matches your workflow. It is maintained by goodbyeplanet; worth a glance at recent repository activity before you build anything load-bearing on it.
This entry was verified against Semcode's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.
| Tool | What it does |
|---|---|
| search_code | Hybrid (dense + BM25) search by query, with optional filters for language, service, symbol type |
| find_symbol | Look up a symbol by name — exact match, or case-insensitive substring when exact=false |
| find_usages | Find code that references a given symbol name (semantic search, then excludes the definition itself) |
| get_code_context | Fetch the full source of a file — or a specific symbol within it — directly from GitHub |
| reindex | Trigger code indexing of one or all services (incremental by default; force to re-embed) |
| index_history | Index git commit history; automatically fetches diffs for commits missing them |
| search_commits | Search git commit history with natural language |
| get_commit | Get full details for a specific commit including changed files and diffs |
| list_indexed_services | List indexed services with chunk and file counts, languages, and last-indexed time |
| index_stats | Show Qdrant collection statistics and configured services |
| Endpoint | Body |
| Variable | Description | Required |
|---|---|---|
| MCP_TRANSPORT | Configuration value read at startup. | Optional |
| GITHUB_TOKEN | Credential the server authenticates with. | Yes |
| CONFIG_PATH | Filesystem location the server is allowed to use. | Optional |
| QDRANT_URL | Endpoint or connection string the server talks to. | Yes |
| JINA_URL | Endpoint or connection string the server talks to. | Yes |
| JINA_API_KEY | Credential the server authenticates with. | Yes |
| VOYAGE_API_KEY | Credential the server authenticates with. | Yes |
| OPENAI_API_KEY | Credential the server authenticates with. | Yes |
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.