semantic-code-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SEMANTIC_CODE_MCP_DEBUG | No | Enable debug logging | false |
| SEMANTIC_CODE_MCP_PROFILE | No | Enable pyinstrument profiling | false |
| SEMANTIC_CODE_MCP_CACHE_DIR | No | Where indexes are stored | ~/.cache/semantic-code-mcp |
| SEMANTIC_CODE_MCP_LOCAL_INDEX | No | Store index in .semantic-code/ within each project | false |
| SEMANTIC_CODE_MCP_EMBEDDING_MODEL | No | Sentence-transformers model | all-MiniLM-L6-v2 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_codeA | Search for code semantically similar to the query. Finds code by meaning, not just text matching. Use this when you want to find code related to a concept without knowing exact variable/function names. Examples:
Automatically indexes the project if not already indexed, and re-indexes any files that have changed since the last search. Args: query: Natural language description of what you're looking for. project_path: Absolute path to the project root directory. limit: Maximum number of results to return (default 10). Returns: List of matching code chunks with file path, line numbers, content, and score. |
| index_codebaseA | Index a codebase for semantic search. Scans Python files, extracts functions/classes/methods, generates embeddings, and stores them for fast semantic search. Use force=True to re-index everything even if files haven't changed. Otherwise, only new and modified files are indexed (incremental). Args: project_path: Absolute path to the project root directory. force: If True, re-index all files regardless of changes. Returns: Statistics about the indexing operation. |
| index_statusA | Get the index status for a project. Returns information about whether the project is indexed, when it was last updated, and how many files and chunks are indexed. Note: search_code automatically re-indexes stale files before searching, so there is no need to check or act on staleness manually. Args: project_path: Absolute path to the project root directory. Returns: Index status including files count and chunks count. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
Each tool has a distinct purpose: indexing, status checking, and searching. There is no overlap or ambiguity between them.
All tool names follow a consistent verb_noun pattern in snake_case: index_codebase, index_status, search_code.
Three tools is well-scoped for a semantic code search server: one for building the index, one for checking its status, and one for querying it. Not too few, not too many.
The tools cover the core workflow (index, check, search). The search tool automatically re-indexes stale files, reducing the need for manual management. A minor gap is lack of an explicit delete or clear index tool, but it's not essential for basic usage.