code-search-mcp
This server provides semantic code search capabilities for AI assistants, letting them find relevant code by meaning rather than exact keywords.
code_search: Perform natural language semantic searches across indexed code, with optional filters for path, language, result limit, and code-only mode (excluding docs).code_search_status: Check indexing status, progress percentage, total files, and chunk count.code_search_reindex: Trigger a background re-index or force a full rebuild of the vector database.code_search_guide: Retrieve usage tips and best practices for effectively using the search tool.Initialization & indexing: Set up semantic search in a repository, run interactive/non-interactive init, and manage the LanceDB vector index.
Dormant MCP mode: Connects instantly and stays idle with zero CPU usage until the repository is initialized.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@code-search-mcpwhere is the morning drink discount calculated?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ code-search-mcp
Zero-daemon local semantic code search MCP server and CLI powered by LanceDB and in-process ONNX embeddings.
Stop grepping for exact words. Give your AI coding assistant the power to search your codebase by meaning.
Works out-of-the-box with Claude Code, Gemini CLI, Antigravity (agy), and Cursor on macOS, Windows, and Linux.
โก๏ธ Quick Start (30-Second Setup)
1. Install Globally
npm install -g github:genautkin/code-search-mcp2. Connect to Your AI Assistant (One-Time)
Claude Code:
claude mcp add code-search -s user -- code-search-mcpAntigravity CLI (
agy):mkdir -p ~/.gemini/config/plugins/code-search && cat << 'EOF' > ~/.gemini/config/plugins/code-search/mcp_config.json { "mcpServers": { "code-search": { "command": "code-search-mcp" } } } EOFCursor / Claude Desktop / Gemini CLI: Add
"code-search": { "command": "code-search-mcp" }to your MCP configuration file.
3. Initialize in Any Project
Navigate to any repository and run:
code-search-mcp init(Or run code-search-mcp init -y for 1-second automated setup with smart defaults)
Now you and your AI coding assistant can search your codebase by meaning! ๐
Related MCP server: claude-context-local
๐ Detailed Guide
๐ฆ 1. Installation
You can install code-search-mcp globally or run it on demand:
Global Installation (Recommended):
npm install -g github:genautkin/code-search-mcpPlaces the fast
code-search-mcpbinary into your system PATH.On-Demand Execution (No global install):
npx github:genautkin/code-search-mcp init
๐ 2. Connecting to MCP Clients
code-search-mcp operates as a high-speed stdio MCP server. When registered globally, it works across all your projects without draining battery or running background daemons on uninitialized repos.
๐ง Claude Code
# Available globally across all projects:
claude mcp add code-search -s user -- code-search-mcp
# Or scoped to a single specific project directory:
claude mcp add code-search -- code-search-mcp --path /path/to/your/project๐ค Antigravity CLI (agy)
Register the plugin in your user settings:
mkdir -p ~/.gemini/config/plugins/code-search && cat << 'EOF' > ~/.gemini/config/plugins/code-search/plugin.json
{ "name": "code-search" }
EOF
cat << 'EOF' > ~/.gemini/config/plugins/code-search/mcp_config.json
{
"mcpServers": {
"code-search": {
"command": "code-search-mcp"
}
}
}
EOF๐ช Gemini CLI
Add to ~/.gemini/settings.json (or workspace .gemini/settings.json):
{
"mcpServers": {
"code-search": {
"command": "code-search-mcp",
"trust": true
}
}
}๐ป Cursor / Claude Desktop / Windsurf
Add to .cursor/mcp.json or claude_desktop_config.json:
{
"mcpServers": {
"code-search": {
"command": "code-search-mcp",
"args": ["--path", "${workspaceFolder}"]
}
}
}๐ช 3. Initializing a Project (init)
To activate semantic search for a repository, run the interactive setup wizard:
code-search-mcp initInteractive Wizard Features:
๐ Index Storage Location:
node_modules/.cache/code-search/lancedb(Default for JavaScript/TypeScript projects โ Zero Git Noise).code-search/lancedb(Automatically added to.gitignoreto keep your repo clean)Custom path
๐ก Respect
.gitignore: Automatically skips build outputs, bundles, and vendor folders already in your.gitignore.๐ Search Ignore File (
.codesearchignore): Automatically skips asking if.codesearchignorealready exists. If missing, offers recommended exclude patterns for test fixtures and mock snapshots.๐ File Extension Auto-detection: Scans repository contents to detect active extensions (e.g.
.ts,.tsx,.py,.go,.json,.md), with the option to customize.๐ Initial Indexing: Builds initial vector index immediately with live progress and status summary.
Non-Interactive / CI Setup:
Pass -y to skip questions and apply smart defaults:
code-search-mcp init -yTip: You can change your configuration anytime by editing
.codesearchrc.jsonor.codesearchignore.
๐ป 4. CLI Command Reference
code-search-mcp is both an MCP server and a fast terminal utility:
Command | Description |
| Interactive setup wizard (use |
| Remove configuration and clean vector database index |
| Check index health, total indexed files, chunk counts, and database path |
| Rebuild or update the vector index with live progress (use |
| Run semantic search directly from your terminal with syntax highlighting |
โ๏ธ Imagine a Coffee Shop App
Imagine you are building software for a busy local coffee shop.
In your codebase, you have a file that handles what happens when a customer orders an extra oat milk latte and gets a morning discount:
// Apply a 15% promotional deduction if the customer visits before 9 AM
export function calculateEarlyBirdReward(bill: OrderSummary): number {
if (bill.orderHour < 9) {
return bill.subtotal * 0.85;
}
return bill.subtotal;
}Now imagine you open your AI coding assistant (like Claude Code, Cursor, or Gemini CLI) and ask:
"Where is the morning drink discount calculated?"
If your tool relies only on traditional text search (like grep), it searches for the exact word "discount".
Did it find
calculateEarlyBirdReward? No.Why? Because the code used the words
promotional deductionandEarlyBirdReward, but never the exact word"discount".
This is where Semantic Search changes everything.
๐ง What is Semantic Search (In Plain English)?
Traditional search looks for exact letters and words.
Semantic search looks for the meaning behind your words.
How It Works: The Map of Meaning
Numbers instead of letters: An AI model takes a piece of text (or code) and translates it into a list of numbers called an embedding (or vector).
Coordinates on a map: Think of these numbers like GPS coordinates on a giant map of human concepts.
"discount"and"promotional deduction"end up sitting right next to each other on the map."espresso shot"and"latte"sit together."database migration"sits far away on the other side of the map.
Finding nearest neighbors: When you ask a question in plain English, the search engine turns your question into coordinates and simply finds the pieces of code sitting closest to it on the map.
[ Map of Meaning ]
โ๏ธ "morning drink discount" ๐ (Your Question)
โ (Close match!)
โผ
๐ท "calculateEarlyBirdReward" ๐ (Your Code)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ "sql database migration" ๐ (Far Away - Ignored)๐ Why Semantic Search is a Game-Changer for AI Coding
When AI coding assistants work on large repositories with thousands of files, they cannot read every single file on every prompt โ it is too slow and costs too many tokens.
Instead, the AI needs to find the exact 2 or 3 relevant files instantly.
In real-world projects, our codebases are full of rich context:
Markdown documentation (
.md): Architecture decision records, API guides, onboarding docs.Code comments: Explaining why a business rule exists (e.g.
// Deduct beans from bean hopper inventory).Function and variable names: Naming patterns that may differ across libraries.
Semantic search connects your natural language thoughts directly to those markdown docs, comments, and code snippets โ even when you do not remember the exact function names.
๐ Architecture & Dormant MCP Mode
Many existing semantic search tools for developers require heavy setups (Python, virtual environments, external background daemons).
code-search-mcp is designed around Explicit Opt-In & Zero Resource Waste:
Dormant by Default: If a repository does not have
.codesearchrc.json, the MCP server connects instantly in <10ms and stays dormant โ zero background workers, zero file watchers, and zero CPU usage until initialized.On-Demand AI Initialization: If an AI assistant calls
code_searchin an uninitialized repo, it receives clear instructions or can callcode_search_initdirectly.In-Process ONNX Embeddings: Runs
@huggingface/transformersin-process withall-MiniLM-L6-v2. 100% private, zero network calls.Embedded LanceDB: Serverless, embedded vector database.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AI Client โ
โ (Claude Code / Gemini CLI / Antigravity / Cursor) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP Protocol (JSON-RPC over stdio)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ code-search-mcp โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโ โ
โ โ Scanner & โ โ EmbeddingEngine โ โ Watcher โ โ
โ โ Layered Ignores โ โ (all-MiniLM-L6) โ โ(chokidar) โ โ
โ โโโโโโโโโโฌโโโโโโโโโโ โโโโโโโโโโฌโโโโโโโโโโ โโโโโโโฌโโโโโโ โ
โ โ โ โ โ
โ โโโโโโโโโโโโโฌโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโ โ
โ โผ โ
โ VectorStore (LanceDB) โ
โ node_modules/.cache/code-search/ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๏ธ Configuration Reference
.codesearchrc.json
Full repository configuration with JSON Schema support:
{
"$schema": "https://raw.githubusercontent.com/genautkin/code-search-mcp/main/schema.json",
"version": 1,
"indexPath": "node_modules/.cache/code-search/lancedb",
"respectGitignore": true,
"supportedExtensions": [".ts", ".tsx", ".js", ".vue", ".py", ".md"],
"customExcludes": [
"legacy_vendor/**",
"docs/archive/**"
],
"maxFileSizeKb": 500,
"embeddingModel": "Xenova/all-MiniLM-L6-v2"
}.codesearchignore
Standard .gitignore style glob file for search exclusions:
# Test fixtures and mocks
**/fixtures/**
**/mocks/**
*.snap
# Auto-generated code
*.generated.*
locales/**๐ค AI Agent Guide & Tool Reference
If you are an AI assistant (Claude Code, Gemini CLI, Cursor, Antigravity, or Windsurf) reading this repository:
๐ ๏ธ Available MCP Tools
Tool Name | Arguments | Description | When to Call |
|
| Performs hybrid semantic + lexical search across indexed repository files. Returns line-numbered code chunks with similarity scores. | Primary tool for natural language & conceptual queries: Call whenever locating concepts, business logic, workflows, UI components, or features described in natural language, before attempting blind greps. |
|
| Initializes semantic search for the repository and builds initial index. | When repository is not yet initialized. |
| (none) | Returns current indexing progress ( | Check indexing progress. |
|
| Triggers a background re-index or complete database rebuild. | After massive merges or when user requests rebuild. |
| (none) | Returns inline agent usage best practices and tips. | Call to self-discover best practices during tool invocation. |
๐ก Strongly Recommended Scenarios for code_search:
Natural Language & Conceptual Questions: When searching for concepts, domain rules, business workflows, UI components, or features (e.g. "where are authentication tokens refreshed", "how is discount calculated", "dark mode toggle component").
Exploring Unfamiliar Codebases: When you do not know the exact file names, functions, or variable names.
Finding Meaning Behind Code: When exact keyword search / grep returns too many noisy results or misses synonyms.
๐งช Verification & Testing
To run the automated test suite:
npm testAll 45 unit & integration tests verify the MCP protocol handshake, ONNX vector generation, LanceDB storage, watcher lifecycle, word stemming, typo correction, init wizard, and dormant server mode.
๐ก Summary
โ Explicit Opt-in: Dormant until initialized, saving battery and CPU.
โ Interactive
initWizard: Discovers file types and configures settings with smart defaults.โ No background daemons: Zero external background services or Python dependencies.
โ Zero Git noise: Default storage in
node_modules/.cache.โ Handles typos & word variations automatically.
โ Instant search by meaning, connecting natural language questions to the exact code you need.
Happy coding! โ๏ธ๐
Available Tools
4 toolscode_searchA
Search the codebase semantically using natural language queries (e.g. "how is payment verified", "calculate discount rate"). Returns relevant code snippets with file paths and line numbers. Supports filtering by directory path, programming language, or codeOnly (to exclude markdown docs).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default: 10) | |
| query | Yes | The natural language or identifier search query | |
| codeOnly | No | If true, excludes markdown documentation files (.md) to prioritize actual code formulas and logic | |
| language | No | Optional programming language filter (e.g. "typescript", "javascript", "vue") | |
| pathFilter | No | Optional directory or file path substring to restrict search (e.g. "src/auth", "src/billing") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states that the tool returns 'relevant code snippets with file paths and line numbers' and describes supported filters, which conveys a read-only, non-destructive behavior. It does not mention any side effects or limitations, but for a search tool this level of detail is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and efficient, consisting of two sentences that front-load the primary action with examples, then cover the return format and filters. There is zero filler, and every sentence contributes to the agent's ability to invoke the tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description appropriately explains the return value ('relevant code snippets with file paths and line numbers'). It also covers all parameters implicitly through the filtering descriptions and the query example, making the tool fully usable without needing to inspect the schema or other sources.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description adds minimal extra meaning beyond what the schema providesโit merely echoes the filtering options (directory path, language, codeOnly) without introducing new syntax or details. This is the baseline score for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('search'), a resource ('the codebase'), and a method ('semantically'), with concrete examples of natural language queries. It also differentiates from sibling tools by implying this is the actual search operation, while siblings are status, reindex, and guide tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (searching the codebase semantically) and mentions filtering options that shape usage. It does not explicitly name alternatives or state when not to use it, but the sibling tools are so distinct (status, reindex, guide) that exclusion guidance is not strictly necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
code_search_guideA
Get best practices and usage instructions for AI agents on how and when to use code_search.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It clearly implies a read-only retrieval of guidance, but does not disclose output format, size, or any side effects. For a simple guide tool, the lack of explicit behavioral detail is acceptable but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and the target resource with zero redundancy. Every word contributes to clarity, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless guide with no output schema, the description sufficiently conveys the tool's purpose and content. It could explicitly state that the returned instructions should be followed before using code_search, but the sibling context and the description's phrasing make this largely self-evident, so the gap is minimal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema coverage is 100% (vacuously). Since the tool takes no inputs, the description need not add parameter-specific meaning; the baseline of 4 for no-parameter tools applies without deduction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('get') and a clear resource ('best practices and usage instructions for AI agents on code_search'). It distinguishes itself from sibling tools like code_search (which performs the search), code_search_status, and code_search_reindex, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states it provides guidance on how and when to use code_search, which implicitly tells an agent to use this tool when needing to decide on code_search usage. However, it does not explicitly contrast with sibling tools or state 'use this before calling code_search', leaving that inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
code_search_reindexA
Trigger a background re-index of the repository. Can be used to force a full reindex.
| Name | Required | Description | Default |
|---|---|---|---|
| forceFull | No | If true, clears existing vector database and rebuilds index from scratch |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It mentions 'background' indicating asynchronicity and 'force a full reindex' implying destructive potential, but it omits details like whether an incremental reindex is available, idempotency, or cancellation behavior. It provides some useful context but is not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, focused sentences with no filler. It front-loads the core action ('Trigger a background re-index') and adds the optional force behavior succinctly. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single optional parameter and no output schema, the description covers the essentials but leaves gaps: it does not clarify what happens when forceFull is false (e.g., incremental indexing) nor mention the sibling code_search_status for checking reindex progress. These are minor gaps given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the forceFull parameter is fully documented in the schema ('clears existing vector database and rebuilds index from scratch'). The description's mention of 'force a full reindex' adds minimal value beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Trigger a background re-index of the repository') with a specific verb and resource. It also hints at the forceFull parameter. This distinguishes it from siblings like code_search, code_search_status, and code_search_guide, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. It implies usage through the tool's purpose but lacks explicit context such as 'use after schema changes' or 'when index is stale'. No exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
code_search_statusA
Get the current indexing status, progress percentage, total files, and indexed chunk count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It correctly implies a read-only operation via 'Get' and enumerates the output fields. It does not mention side effects, authentication, or rate limits, but for a simple status check these are not critical. It does not contradict any annotations (there are none) and gives sufficient behavioral context for expectation setting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that lists the key outputs without any fluff. It is front-loaded with the verb and resource, making it instantly scannable. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters, no annotations, and no output schema, the description is fully sufficient. It states exactly what information will be retrieved. An agent can call it without needing additional context or clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema coverage is trivially 100%. Baseline for 0 parameters is 4. The description adds no parameter-specific details (none needed), and it correctly explains what the tool returns, which is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('current indexing status'), and lists specific fields (progress percentage, total files, indexed chunk count). The verb and resource differentiate it from siblings like code_search, code_search_reindex, and code_search_guide. It unambiguously describes what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use for checking indexing status but provides no explicit guidance on when to choose this over the sibling tools (e.g., 'use this to check, not to trigger reindexing'). No exclusions or alternative references are given. While the purpose is clear, the tool lacks explicit routing compared to the high-standard examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v0.1.0- First observed
code_search - First observed
code_search_guide - First observed
code_search_reindex - First observed
code_search_status
TDQS
Each tool has a unique, clearly defined purpose: search, status, reindex, and guide. There is no overlap or ambiguity between them, and the descriptions make it obvious which tool to use for each task.
All tool names follow the same convention: 'code_search_' followed by a simple action verb (search, status, reindex, guide). This is perfectly consistent and makes the tool set easy to predict and use.
With 4 tools, the set is tightly scoped and every tool serves a necessary function for a code search server. This is an ideal countโnot too thin or over-bloatedโfor the domain.
The tool surface covers the full lifecycle of a code search server: performing searches, checking index status, triggering reindexes, and providing usage guidance. There are no obvious gaps in functionality.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Shared memory for coding agents. Stop re-explaining your codebase every session.
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Project memory, semantic code search, and grounded agent context.
Code intelligence for LLMs. Analyze, search, and retrieve code from any public git repository.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to index and search codebases using semantic search powered by multiple embedding providers (OpenAI, VoyageAI, Gemini, Ollama) and vector database storage.-
- AlicenseNot gradedqualityCmaintenanceProvides Claude Code with local semantic search and indexing of your codebase using AST-aware chunking and hybrid search, enabling deep code understanding without sending data to the cloud.MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to perform intelligent semantic code search across codebases using local AI embeddings for meaning-based retrieval.639MIT
- FlicenseNot gradedqualityDmaintenanceEnables semantic code search across codebases using AI embeddings and vector similarity, integrated with Claude Desktop and Cursor.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/genautkin/code-search-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server