search-docs
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., "@search-docssearch the architecture docs for component overview"
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.
🐕️ search-docs
ローカル文書をAIエージェントが検索できるようにする
プロジェクトのドキュメント、設計書、調査メモ。大量の文書から必要な情報を見つけるのは大変です。
search-docsは、Markdown文書をVector検索可能にし、Claude CodeなどのAIエージェントが自然言語で検索できるようにします。
コンセプト
ローカルファースト: すべてのデータはローカルに保存、プライバシー重視
エージェント統合: Claude Codeから自然言語で検索
自動更新: ファイル変更を自動検知、常に最新の情報を検索可能
セクション分割: 文書全体だけでなく、関連する章節を精度高く発見
Related MCP server: docs-mcp
仕組み
search-docsは、シンプルな3層構造で動作します:
Markdown文書
↓ (見出しで分割)
Sections (depth 0-3)
↓ (Vector化)
LanceDB Index
↓ (自然言語で検索)
AIエージェント / CLI / APIDocument: プロジェクトの.mdファイル Section: 見出しごとに分割された意味のある単位 Vector Index: 日本語最適化モデル(Ruri)でVector化 Server: プロジェクトごとに起動、変更を自動検知
詳細: システムアーキテクチャ
30秒で始める(Claude Code)
Docker版(推奨)
ランタイム依存(Node.js, Python, uv)を排除し、セキュアな境界で実行できます。
.claude/settings.json または .mcp.json に以下を追加:
{
"mcpServers": {
"search-docs": {
"type": "stdio",
"command": "docker",
"args": [
"run", "--rm", "-i",
"-v", ".:/workspace:ro",
"-v", "./.search-docs:/workspace/.search-docs",
"otolab/search-docs-mcp:latest",
"--project-dir", "/workspace"
]
}
}
}ボリュームマウント:
.:/workspace:ro— プロジェクトのドキュメントを読み取り専用でマウント./.search-docs:/workspace/.search-docs— インデックスデータの永続化(読み書き)
その後、Claude Codeで:
「search-docsのセットアップをお願い」と依頼
MCPを再接続(reconnect)
「このプロジェクトのアーキテクチャについて教えて」と依頼
npm/npx版(Docker環境がない場合)
Docker環境がない場合の代替手段です。uv(Pythonパッケージマネージャ)が必要です。
# macOS (Homebrew)
brew install uv
# macOS/Linux (公式インストーラ)
curl -LsSf https://astral.sh/uv/install.sh | shclaude mcp add npx -- -y @search-docs/mcp-serverその後、Claude Codeで:
「search-docsのセットアップをお願い」と依頼
MCPを再接続(reconnect)
「このプロジェクトのアーキテクチャについて教えて」と依頼
→ 詳しい手順
その他の使い方
CLIツールとして使う
# グローバルインストール
npm install -g @search-docs/cli
# またはnpxで直接実行(インストール不要)
npx @search-docs/cli server start
npx @search-docs/cli search "検索クエリ"→ ユーザーガイド
プログラムから使う
TypeScript/JavaScript APIとしても利用できます。
import { SearchClient } from '@search-docs/client';
const client = new SearchClient({ port: 24280 });
const results = await client.search('検索クエリ');主な特徴
セクション分割検索
文書全体だけでなく、H1〜H4の見出し単位で検索。関連する章節をピンポイントで発見できます。
リアルタイム更新
ファイル変更を自動検知、バックグラウンドで再インデックス。常に最新の情報を検索できます。
プロジェクト独立
プロジェクトごとに独立したサーバとインデックス。複数プロジェクトを同時に使用できます。
日本語最適化
日本語に最適化された埋め込みモデル(Ruri)を使用。日本語文書の検索精度が高くなっています。
アーキテクチャ概要
search-docsはin-process構成(MCPサーバ) と クライアント・サーバ構成(HTTPサーバ) の2つのモードで動作します:
MCPサーバモード(Claude Code統合)
MCP Server (
@search-docs/mcp-server): SearchDocsServerをin-processで直接保持HTTPデーモン不要、高速起動
SearchDocsServer(read-only)
WatcherProcess(write、heartbeat調停)
DBEngine(Python/LanceDB/Ruri)
EmbeddingServerProcess(自動検出・起動)
HTTPサーバモード(外部クライアント向け)
Server (
@search-docs/server):server startコマンドで起動JSON-RPC API提供
CLI Tool、Client Libraryから利用
CLI Tool (
@search-docs/cli): コマンドラインClient Library (
@search-docs/client): プログラマティックな利用
共通インターフェイス
SearchDocsService: MCPサーバとHTTPクライアントの共通インターフェイス
SearchDocsServer(in-process実装)
SearchDocsClient(HTTP実装)
詳細: システムアーキテクチャ | データモデル
ドキュメント
📚 使い始める
🔧 詳しく知る
システムアーキテクチャ - 技術スタックと実装
データモデル - データ構造の設計
アーキテクチャ決定記録 - 設計判断の記録
🤝 統合する
Claude Code統合 - MCP Serverとして使う
クライアントライブラリ - APIリファレンス
ライセンス
このプロジェクトはプライベートプロジェクトです。
関連プロジェクト
sebas-chan: DBエンジンのアーキテクチャ参照元
Available Tools
9 toolsget_documentA
文書の内容を取得します。セクションの全文はsectionId、文書全体はpathを指定します。
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | 文書パス(sectionIdを指定しない場合は必須) | |
| project | No | 関連プロジェクト名(未指定時はメインプロジェクト) | |
| sectionId | No | セクションID(検索結果から取得。pathを指定しない場合は必須) |
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 two retrieval behaviors (section vs whole document) but does not mention any permissions, side effects, or output format. The read-only nature is implied by 'get' but not explicitly stated.
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 sentences with no fluff. It front-loads the core purpose and then provides parameter guidance efficiently.
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 simplicity and no output schema, the description adequately covers the main usage and parameter roles. It lacks details on edge cases (e.g., both path and sectionId provided) and return format, but those are not critical for a basic getter tool.
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 all three parameters. The description adds a small amount of semantic clarity by explaining what each parameter returns (section full text vs whole document), but this is largely redundant with schema property descriptions.
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 retrieves document content (文書の内容を取得します) and specifies two modes: section full text via sectionId, whole document via path. This distinguishes it from siblings like search and get_outline.
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?
Provides clear guidance on when to use sectionId versus path, which is practical parameter selection. However, it does not explicitly discuss tool-level alternatives or when not to use this tool, though the name and context make its purpose obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_outlineA
文書の目次構造をトークン数付きで一覧表示します。文書の全体像把握や記述量バランスの確認に使えます。
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | 文書パス(sectionIdを指定しない場合は必須) | |
| project | No | 関連プロジェクト名(未指定時はメインプロジェクト) | |
| sectionId | No | セクションID(指定した場合、そのセクション配下のみ表示) |
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 of behavioral disclosure. It describes the core functionality (returning outline with token counts) but does not go into return format, pagination, error behavior, or side effects. This is minimal but sufficient for a read-only-style tool.
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 main purpose, and contains no filler. Every sentence earns its place: the first states the action, the second gives typical use cases.
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 relatively simple tool with 3 optional parameters and no output schema, the description gives a clear high-level picture. However, it does not describe the returned structure in any detail or mention the behavior when no parameters are provided. Since schema covers parameters, this is adequate but leaves some ambiguity for the agent.
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 schema covers 100% of the parameters with descriptions, so the baseline is 3. The tool description does not add parameter-level details beyond the schema; for example, it does not explain the interaction between path and sectionId, but the schema already states that path is required if sectionId is not given. Thus no extra value is provided.
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: '文書の目次構造をトークン数付きで一覧表示します' (lists the document's outline structure with token counts). It uses a specific verb and resource, and it is distinct from siblings like get_document and search, which focus on different aspects.
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 use cases: '文書の全体像把握や記述量バランスの確認に使えます' (can be used for grasping the overall picture and checking the balance of writing amount). It does not explicitly mention when not to use or list alternatives, but the context is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_statusA
search-docsの全体状態を確認します。設定状態、インデックス情報、関連プロジェクト一覧が返されます。
| 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 carries the full burden. It discloses the information categories returned, which adds some transparency, but it does not explicitly state that this is a read-only operation, mention any permissions or rate limits, or describe how data is aggregated. The tool name and nature imply safety, but the description alone lacks explicit behavioral guarantees.
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 is front-loaded with the action and resource, followed by the key output categories. Every word earns its place, with no unnecessary filler or repetition.
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 zero-parameter status tool with no output schema, the description provides sufficient context by listing the main returned components. It could be improved by explicitly noting this aggregates information available via siblings like index_status and list_related_projects, but it does not require further detail for basic invocation.
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 and the schema coverage is vacuously 100%. The description does not need to explain parameter semantics, and it correctly focuses on the output categories. Baseline for 0 params is 4, which fits.
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 checks the overall state of search-docs and specifies the returned categories (configuration status, index info, related projects). This is a specific verb+resource description, but it does not explicitly differentiate from sibling tools like index_status or list_related_projects, though the broader scope is implied.
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?
There is no guidance on when to use this tool versus more specific alternatives such as index_status or list_related_projects. The description only lists what it returns, leaving usage context entirely implicit without exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
index_statusB
インデックスの詳細な状態を確認します。文書数、セクション数、Dirty数、ワーカー状態が返されます。
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | 関連プロジェクト名(未指定時はメインプロジェクト) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only lists return values (document count, section count, dirty count, worker status) and does not mention side effects, read-only guarantees, permissions, or any operational considerations. The verb '確認' hints at a possibly safe read operation, but this is not 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 a single, well-structured sentence: it states the purpose first, then lists the returned information. It is not repetitive and contains no filler, earning the maximum score.
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 simple status tool with one optional parameter and no output schema, the description adequately covers the purpose and the returned fields. It does not explicitly state that it is read-only or describe edge cases, but these are less critical here. The completeness is good but not perfect.
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 schema covers 100% of the parameter descriptions (the 'project' parameter has a clear description). The tool description itself adds no additional parameter semantics, so the baseline of 3 applies.
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 ('確認します') and resource ('インデックスの詳細な状態'), making it clear this checks index status. It mentions distinct return values (document count, section count, dirty count, worker status), but does not explicitly contrast with sibling tools like get_system_status, so it falls short of a 5.
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: you call this when you need detailed index status. However, it provides no explicit guidance about when to use this versus get_system_status or other siblings, and offers no exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
initA
search-docsの設定ファイルを初期化します。ローカルプロジェクトの文書を検索対象にする場合に実行してください。
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | サーバポート番号(省略時はランダムなポート番号が割り当てられます) | |
| force | No | 既存設定を上書き(デフォルト: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It states the tool initializes a configuration file, but omits critical side effects such as whether it creates/overwrites files, requires permissions, or affects existing configurations. The force parameter's overwrite behavior is only documented in the schema, not in the description.
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 concise sentences, front-loaded with the action and followed by a clear use case. It contains zero wasteful words and is well-structured for quick parsing.
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?
This is a simple tool with 2 optional parameters fully described in the schema. The description covers purpose and usage context sufficiently for an init operation, but lacks behavioral details (e.g., what happens to existing config, server implications) that would make it fully self-contained. Given the schema richness, a score of 3 reflects 'minimum viable but with clear gaps'.
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% (both port and force have descriptions), so the tool description adds no additional parameter semantics. Per the rubric, the baseline score is 3 when schema fully covers parameters, and the description does not need to compensate.
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 the specific verb '初期化します' (initializes) with a concrete resource ('search-docsの設定ファイル' – search-docs configuration file), clearly stating its function. It also distinguishes from siblings like search and get_document by indicating it is a setup action for local project document search.
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 when to use it: 'ローカルプロジェクトの文書を検索対象にする場合に実行してください' (run when you want to include local project documents as search targets). This provides clear contextual guidance, even though it does not name alternatives explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
maintenance_repairA
LanceDBテーブルの破損を検出し、自動修復します。破損テーブルはdrop→再作成されます。修復後は再インデックス(index rebuild)が必要です。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It explicitly reveals the destructive nature of the repair (corrupted tables are dropped and recreated) and the need for subsequent re-indexing. However, it omits details such as whether data is preserved or if user confirmation is required, but the drop/recreate statement is a strong disclosure.
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 three short sentences, each adding essential information: the core action, the specific repair method (drop/recreate), and a required follow-up (index rebuild). There is no redundancy or filler, and the most important verb appears first.
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 and no output schema, the description covers the essential context: what it does, how it does it, and what to do after. It could be more explicit about preconditions (e.g., 'use when corruption is suspected') but the stated behavior makes this clear enough. The mention of re-indexing connects to sibling tools like index_status implicitly.
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 provides no information. Per the rubric, a baseline of 4 applies when there are no parameters, and the description does not need to elaborate further. The absence of parameters is consistent with a simple trigger-style maintenance tool.
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: detecting corruption in LanceDB tables and automatically repairing them. It specifies the resource (LanceDB tables) and the verbs (detect, repair), and the mention of 'drop→再作成' makes the operation distinct from sibling tools like search or index_status.
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 the tool: when corruption is detected, and it provides a clear post-condition by stating that re-indexing is required after repair. It does not explicitly name alternatives or exclusions, but the context is unambiguous enough for a maintenance tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchB
ドキュメントをVector検索します。関連するセクションが関連性順で返されます。
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | 最大深度(0-3)。この深度まで検索します。0=文書全体のみ、1=章まで、2=節まで、3=項まで。省略時は全階層を検索 | |
| limit | No | 結果数制限(デフォルト: 10) | |
| query | Yes | 検索クエリ | |
| project | No | 関連プロジェクト名(未指定時はメインプロジェクト) | |
| syncedOnly | No | インデックスがドキュメントと同期済みのセクションのみを検索対象にする(デフォルト: false、未同期のセクションも含めて検索) | |
| excludePaths | No | 除外するドキュメントパス(前方一致)。例: ["docs/internal/", "temp/"] | |
| includePaths | No | 包含するドキュメントパス(前方一致)。例: ["docs/", "README.md"] | |
| previewLines | No | プレビュー行数(デフォルト: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It discloses that results are returned in relevance order, which is a useful behavioral detail, but it does not mention any side effects, permissions, rate limits, or other operational characteristics. The bare description is insufficient for a tool with no annotation support.
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 front-loads the primary action ('Vector search documents') and states the output format. Every word earns its place, and there is no redundant or filler content.
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?
While the schema richly describes parameters, there is no output schema, and the description only states that 'related sections are returned in order of relevance.' It lacks details about the structure of returned sections (e.g., whether they include paths, text, scores) or any additional behavioral context. For a tool with several parameters and no output schema, this is insufficient.
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 schema description coverage is 100%, with all 8 parameters documented in the input schema. The description adds no additional parameter information, but since the schema fully covers semantics, the baseline score of 3 is appropriate.
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 that this tool performs vector search on documents and returns relevant sections in order of relevance. The verb 'search' and resource 'documents' are specific, and it distinguishes itself from siblings like get_document and get_outline by focusing on search rather than retrieval of a single document or outline.
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 for searching documents but does not explicitly state when to use this tool versus alternatives. No when-not-to-use or alternative tool references are provided. The context is clear enough for a simple search tool, but exclusions or comparisons with siblings are missing.
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.
9 tool updates
v1.9.4- First observed
add_related_project - First observed
get_document - First observed
get_outline - First observed
get_system_status - First observed
index_status - First observed
init - First observed
list_related_projects - First observed
maintenance_repair - First observed
search
TDQS
Tools are mostly distinct, but get_system_status and index_status overlap by both reporting index information, and get_system_status also overlaps with list_related_projects. Descriptions help clarify the level of detail, so most tools are clearly separable.
Naming follows a loose pattern with get_ prefix for retrieval and list_/add_ for project management, but init and search are bare verbs, and names like index_status and maintenance_repair deviate from the dominant convention. The style is mixed but still readable.
Nine tools cover setup, search, retrieval, status, project management, and repair without being excessive. The count is well-scoped for a document search server.
The set lacks a tool to trigger indexing or re-indexing, yet the maintenance_repair tool explicitly states a rebuild is required after repair, creating a dead end. There is also no remove_related_project or document management tool, leaving significant lifecycle gaps.
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
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Markdown workspace for AI agents: read, write, organize, and share markdown documents.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI models to seamlessly access and query local markdown technical documentation files, providing automatic documentation context without explicit prompting.195ISC
- AlicenseNot gradedqualityDmaintenanceGives AI agents full-text search over any Markdown/MDX documentation folder.14MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search, read, and traverse a local knowledge base of Markdown files using full-text search and relationship graph, reducing token usage.MIT
- AlicenseNot gradedqualityCmaintenanceEnables agentic document retrieval over markdown, CSV, and JSONL using BM25 and tree navigation, without vector databases or embeddings, allowing AI agents to search, browse, and retrieve structured document sections.451MIT
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/otolab/search-docs'
If you have feedback or need assistance with the MCP directory API, please join our Discord server