Gemini Embedding 2 MCP Server
Allows connection to Windsurf (Cascade) for searching and retrieving local multimodal documents.
Uses Google's Gemini Embedding 2 model for multimodal embedding and search.
Click on "Deploy 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., "@Gemini Embedding 2 MCP Serverfind PDF pages about design tokens"
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.
Connect your local documents, code, PDFs, images, audio, and video directly to Claude, Cursor, or VS Code using Google's gemini-embedding-2-preview model and a strictly local ChromaDB vector database.
Unlike text-only local RAG tools, this server keeps one local memory layer across text, visual PDF pages, images, audio, and video, then returns exact file paths and page or chunk context back to your agent.
Why This Is Different
One embedding space across modalities: Search code, PDFs, images, audio, and video from the same memory layer.
Local-first persistence: Your index stays in
~/.gemini_mcp_db, not in a hosted vector database.Agent-friendly retrieval: Search results include exact paths, types, modalities, and page-aware context.
Zero-config by default: The server uses built-in guardrails and sensible indexing defaults so most users do not need a config file.
Related MCP server: Mnemos
What You Can Ask
Find the PDF page that explains our design tokens.Search my image library for screenshots of dashboards with dark sidebars.Find the audio or video clip where we talked about pricing changes.Search only my work docs folder for onboarding notes about incident response.Give me the surrounding context for result 2 so I can cite the original file correctly.
โจ Key Features
Feature | Description |
๐ง Unified Multimodal Search | Stores text, visual PDF pages, images, audio, and video in one local semantic memory so a single query can retrieve across modalities. |
๐ Visual PDF Retrieval | Renders PDFs page-by-page as images for Gemini Embedding 2 while retaining extracted text for agent-readable citations and context. |
๐ฏ Precision Retrieval Controls | Supports compact filters for scope, path prefix, type, extension, and modality so agents can search precisely without heavy configuration. |
๐ Preview Before Indexing |
|
๐งพ Context-Aware Results |
|
๐ก๏ธ Local Privacy + Guardrails | Uses a local ChromaDB store, skips junk folders by default, blocks dangerous root scans, and handles deduplication and ghost-file cleanup automatically. |
๐ Installation & Setup
We support two ways to run this server: Zero-Install (Recommended) or Local Developer Clone.
Make sure you have uv installed on your machine (pip install uv).
Method 1: Zero-Install (Recommended)
You can point your AI assistant to run the server directly from GitHub without ever cloning the repository locally. uvx acts like npx for Python, downloading and caching the server in a secure ephemeral environment automatically.
PyPI is configured as the long-term stable distribution channel for tagged releases. Until the first PyPI publish completes, use the pinned Git release-tag install below.
For a stable install, pin to a release tag:
uvx --from git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@<release-tag> gemini-embedding-2-mcpExample:
uvx --from git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@v1.2.1 gemini-embedding-2-mcpFor an edge install, omit the tag and track the latest main branch state.
Once PyPI publishing is live, the stable install command becomes:
uvx gemini-embedding-2-mcp-server๐ Getting your Gemini API Key
To power the embedding model, you need a free API key from Google.
Go to Google AI Studio.
Click Create API key.
Copy the key and use it in your client configurations below as
GEMINI_API_KEY.
๐ Client Connection Guides
๐ค Claude Code (CLI)
You can attach this server to the Claude Code CLI natively. Run the following command in your terminal:
claude mcp add gemini-embedding-2-mcp \
--env GEMINI_API_KEY="your-api-key-here" \
-- uvx --from git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@v1.2.1 gemini-embedding-2-mcp๐ฆ Claude Desktop
Open your Claude Desktop config file (usually ~/Library/Application Support/Claude/claude_desktop_config.json on macOS) and add:
{
"mcpServers": {
"gemini-embedding-2-mcp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@v1.2.1",
"gemini-embedding-2-mcp"
],
"env": {
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}๐ป Cursor IDE
Go to Settings > Features > MCP
Click + Add new MCP server
Choose command as the type.
Name:
gemini-embeddingCommand:
GEMINI_API_KEY="your-api-key" uvx --from git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@v1.2.1 gemini-embedding-2-mcp
๐โโ๏ธ Windsurf (Cascade)
Open your ~/.codeium/windsurf/mcp_config.json file and add:
{
"mcpServers": {
"gemini-embedding-2-mcp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@v1.2.1",
"gemini-embedding-2-mcp"
],
"env": {
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}โก Zed Editor
Open your ~/.config/zed/settings.json and append the MCP server block:
{
"experimental.mcp": {
"gemini-embedding-2-mcp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@v1.2.1",
"gemini-embedding-2-mcp"
],
"env": {
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}๐ป VS Code (with Cline / RooCode)
Open ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json and append:
{
"mcpServers": {
"gemini-embedding": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git@v1.2.1",
"gemini-embedding-2-mcp"
],
"env": {
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}Method 2: Local Developer Clone
If you want to modify the source code:
# 1. Clone the repository
git clone https://github.com/AlaeddineMessadi/gemini-embedding-2-mcp-server.git
cd gemini-embedding-2-mcp-server
# 2. Install dependencies
uv sync(If you use this method, you can add it directly to Claude Code CLI locally by running:)
claude mcp add gemini-embedding-local --env GEMINI_API_KEY="your-api-key" -- uv --directory "$(pwd)" run gemini-embedding-2-mcpMethod 3: Docker
If you need a containerized MCP server for registry validation or deployment, build and run the included image:
docker build -t gemini-embedding-2-mcp-server .
docker run --rm -i \
-e GEMINI_API_KEY="your-api-key-here" \
-v "$HOME/.gemini_mcp_db:/root/.gemini_mcp_db" \
gemini-embedding-2-mcp-serverThe container communicates over standard I/O like any other local MCP server and persists ChromaDB data in the mounted volume.
๐ ๏ธ Exposed MCP Capabilities
Once connected, your AI assistant instantly gains the following tools:
โ๏ธ Tools
index_directory(path: str, ignore: list = None): Scan and formally embed a completely new local folder into the DB. Safely supports wildcardignorepatterns.preview_directory(path: str, ignore: list = None): Dry-run a scan and see what would be indexed, grouped by modality and skip reason.search_my_documents(query: str, limit: int, scope: str = None, types: list[str] = None, path_prefix: str = None, extensions: list[str] = None, modalities: list[str] = None): Run semantic search with compact retrieval filters.get_result_context(source: str, locator: str = None, window: int = 1): Fetch nearby chunk or page context for a previously indexed result.list_indexed_directories(): See which directory roots the AI already knows about.sync_indexed_directories(): Automatically forces the DB to find new, updated, or recently deleted (ghost) files and cleans up vectors.remove_directory_from_index(path: str): Clears a specific trajectory of vectors.
๐ Precision Filters
The main search tool stays simple by default, but supports a few high-value filters when you need exactness:
scope: Limit matches to a broad directory scope such as/Users/me/workpath_prefix: Limit matches to a more exact path prefixtypes: Restrict by stored item type such astextorpdf_visual_pageextensions: Restrict by file extension such as.pdfor.mdmodalities: Restrict by modality such astext,pdf,image,audio, orvideo
๐ Resources
gemini://database-stats: Real-time observability! Exposes the exact scale of the vector segments inside ChromaDB directly to the assistant's context.
๐ Technical Documentation
๐ License
MIT ยฉ Alaeddine Messadi
Available Tools
7 toolsget_result_contextC
Returns nearby chunks or pages for a previously indexed result.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| locator | No | ||
| window | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool 'returns' data, implying read-only, but does not disclose any behavioral traits such as performance, error handling, or what happens if the result is not found.
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, concise but missing critical details. It is not verbose, but the conciseness comes at the cost of completeness.
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?
Given the moderate complexity (3 parameters, 1 required) and presence of an output schema, the description is insufficient. It fails to explain how to use the parameters or when this tool is appropriate.
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 0%, and the description does not explain any of the three parameters (source, locator, window). The agent gets no additional meaning beyond the raw schema.
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 tool returns nearby chunks or pages for a previously indexed result, using a specific verb and resource. It distinguishes from sibling tools like index_directory or search_my_documents.
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?
No guidance is provided on when to use this tool versus alternatives like search_my_documents or preview_directory. There is no indication of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
index_directoryB
Scans a local directory, extracts text from files (PDF, DOCX, TXT, MD) AND raw video/audio/image bytes, generates semantic embeddings using Gemini 2 and stores them for searching.
Args: directory_path: Absolute path to the directory. ignore: Optional list of glob patterns to ignore (e.g., [".log", "drafts", "temp"]).
| Name | Required | Description | Default |
|---|---|---|---|
| directory_path | Yes | ||
| ignore | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavioral traits. It mentions that it generates embeddings and stores them, but fails to disclose side effects such as overwriting behavior, performance implications for large directories, or whether it modifies files. Important safety and idempotency details are missing.
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 concise (three lines) and front-loaded with the main action. It includes a structured 'Args' section. No unnecessary words, but could be slightly more compact.
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?
Given the tool's medium complexity and the presence of an output schema, the description covers the basic functionality well but omits constraints like directory existence, permission requirements, and handling of nested directories. It is adequate but not fully comprehensive.
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 description adds significant meaning beyond the schema by specifying that directory_path must be an absolute path and providing examples for the ignore parameter (e.g., '*.log', 'drafts'). This compensates for the schema's lack of property descriptions (0% 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 the tool scans a local directory, extracts text from multiple file types (PDF, DOCX, TXT, MD, and raw media bytes), generates semantic embeddings using Gemini 2, and stores them for searching. It uses specific verbs and resources, and the function is distinct from siblings like listing or removing indexes.
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?
No explicit guidance is provided about when to use this tool versus alternatives. It does not mention prerequisites (e.g., directory existence, permissions) or edge cases like re-indexing. The description only explains what it does, not when it should or should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_indexed_directoriesA
Lists indexed parent directories known to the database.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description indicates a read-only operation but does not explicitly state safety, side effects, or permissions. For a simple listing, it is adequate but could be more explicit.
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 one clear sentence with no extraneous information. It is front-loaded and efficiently communicates the tool's purpose.
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?
The tool is simple with no parameters and an output schema present. The description covers the basic function. Some additional context about what 'indexed parent directories' entails could improve completeness, but it is sufficient for a list operation.
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 description does not need to add parameter details. Baseline 4 is appropriate as there is no omission.
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 tool lists indexed parent directories known to the database. The verb 'lists' and resource 'indexed parent directories' are specific, and the tool is distinct from siblings like index_directory or remove_directory_from_index.
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 no guidance on when to use this tool versus alternatives. It does not mention context, prerequisites, or conditions that would help an agent decide to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_directoryB
Summarizes what would be indexed before the server performs a full scan.
| Name | Required | Description | Default |
|---|---|---|---|
| directory_path | Yes | ||
| ignore | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It suggests a read-only preview but does not confirm that the operation is non-destructive, require permissions, or handle large directories. Minimal behavioral context is given.
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 extremely concise (one sentence), which is efficient, but it omits important details that could be included without much bloat. Still, it is front-loaded and free of redundancy.
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?
Given the tool has an output schema (unknown content) and no parameter descriptions, the description is too sparse. It does not explain what 'summarizes' entails (e.g., file count, sizes), how `ignore` works, or edge cases. For a preview tool, more context is needed.
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 0% for both parameters (`directory_path` and `ignore`). The description does not add any meaning or constraints beyond the schema, leaving the agent uninformed about parameter format, default behavior, or usage.
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 tool's function: previewing what would be indexed before a full scan. It uses a specific verb ('summarizes') and resource ('what would be indexed'), and effectively distinguishes it from siblings like `index_directory` which performs the actual scan.
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 usage before a full scan, but it does not provide explicit guidance on when to use this tool versus alternatives like `index_directory` or `search_my_documents`. It lacks 'when not to use' or prerequisite information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_directory_from_indexC
Removes all documents and images belonging to a specific directory path from the index.
| Name | Required | Description | Default |
|---|---|---|---|
| directory_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. States it removes entries but does not disclose if the operation is reversible, impacts other data, or requires permissions. Lacks critical behavioral details for a destructive action.
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?
Single sentence, very concise, but lacks depth. While efficient, it fails to include necessary context that would justify its brevity. Not under-specified but could add more value in the same space.
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?
Output schema exists, so return values are covered, but the description omits behavior like confirmation, status, or side effects. For a destructive tool, this is insufficient. Lacks completeness 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 0% and description does not elaborate on the single parameter 'directory_path' beyond its name. No format, examples, or constraints are provided, leaving the agent guessing about valid inputs.
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?
Description clearly states the tool removes documents and images from the index for a specific directory, which is a specific verb+resource. It distinguishes from siblings like index_directory (adds) and list_indexed_directories (lists).
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?
No guidance on when to use this tool versus alternatives, no prerequisites or exclusions. The description only implies usage without clarifying context or providing when-not scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_my_documentsC
Performs a semantic search over your previously indexed local documents AND images using the Gemini 2 Embedding model.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No | ||
| scope | No | ||
| types | No | ||
| path_prefix | No | ||
| extensions | No | ||
| modalities | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description bears full burden. It mentions semantic search and the model but fails to disclose read-only nature, rate limits, authentication needs, or behavior on no results. Minimal behavioral context.
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 concise sentence that gets to the point quickly. It is front-loaded with the key action, though it sacrifices completeness for brevity.
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?
Given 7 parameters with no schema descriptions and no annotations, the description is too brief. It does not cover filtering options or return type, leaving significant gaps despite the presence of an output schema.
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 0%, yet the description adds no parameter explanations. It only mentions 'documents AND images' but does not detail query, limit, scope, types, path_prefix, extensions, or modalities, leaving the agent to infer from names.
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 tool performs semantic search over previously indexed documents and images using Gemini 2 Embedding. It uses a specific verb and resource, distinguishing it from siblings like index_directory or list_indexed_directories.
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?
No explicit guidance on when to use this tool versus alternatives. The description implies it's for search but doesn't mention when to choose it over siblings like get_result_context or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_indexed_directoriesA
Auto-updates existing folders. It finds all unique parent directories of currently indexed files and re-indexes them to capture new or modified files.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the core behavior: finds unique parent directories and re-indexes them. However, it lacks details on safety (e.g., is it idempotent?), performance, or side effects such as deleting old entries.
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 sentences, front-loaded with the core action 'Auto-updates existing folders.' Every clause adds meaning with no wasted words.
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?
The description is mostly complete for a simple sync action with no parameters. However, it could mention that it is typically run after changes to indexed directories, and it does not describe the return value (though an output schema exists).
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 no parameters, and schema description coverage is 100%. The description does not add parameter info (none needed), but baseline for 0 params is 4. No extra semantic value required.
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 tool auto-updates existing folders by re-indexing parent directories of currently indexed files to capture new or modified files. It distinguishes from sibling tools like index_directory (adds a directory) and list_indexed_directories (lists), showing specific verb+resource.
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 when to use (to sync after changes to indexed directories), but provides no explicit guidance on when not to use or alternatives. It does not compare to siblings like index_directory or remove_directory_from_index.
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.
7 tool updates
v1.2.1- First observed
get_result_context - First observed
index_directory - First observed
list_indexed_directories - First observed
preview_directory - First observed
remove_directory_from_index - First observed
search_my_documents - First observed
sync_indexed_directories
TDQS
Scored across 7 tools
Each tool targets a distinct operation: indexing, previewing, listing, searching, context retrieval, removal, and syncing. No functional overlap exists.
All tool names follow a consistent verb_noun pattern in snake_case, e.g., index_directory, list_indexed_directories, search_my_documents. The pattern is uniform and predictable.
With 7 tools, the server covers the essential workflows for local embedding and retrieval without excess or deficiency. The count fits well with the domain scope.
Provides a full lifecycle: create (index_directory), read (search, get_result_context, list), update (sync_indexed_directories), delete (remove_directory_from_index), plus a dry-run preview. No obvious gaps.
Maintenance
Related MCP Connectors
An MCP memory server. One memory your agents share โ across models, devices and apps.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Persistent personal memory for AI assistants โ save, search, and recall across every MCP client.
Private persistent memory for Claude, ChatGPT & Gemini via MCP - semantic search, zero-code setup.
Related MCP Servers
- AlicenseAqualityCmaintenanceA local, fully-offline MCP memory server that enables persistent storage and retrieval of information using SQLite with both keyword and semantic vector search capabilities.1019 npm13MIT
- AlicenseNot gradedqualityDmaintenanceA self-hosted, multi-context memory server that enables AI agents to search and retrieve information from local documents and crawled websites via MCP tools. It runs fully offline using Postgres and Ollama to provide secure, private knowledge management and retrieval-augmented generation.2MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server for managing persistent AI memory using hybrid search (keyword + semantic vector) with SQLite storage and offline-first local embeddings.-
- AlicenseNot gradedqualityBmaintenanceA lightweight, local-first MCP memory server for LLM agents that enables storing, searching, and retrieving agent memories with zero external dependencies.1MIT