Server data from the Official MCP Registry
Local-first document management and semantic search for AI coding agents
Local-first document management and semantic search for AI coding agents
This is a well-architected document management MCP server with proper local-first design and reasonable security practices. The codebase demonstrates good error handling, input validation via Zod schemas, and appropriate use of environment variables for configuration. Minor code quality observations include broad exception handling and some logging that could be more defensive, but these do not constitute security vulnerabilities. Permissions align well with the server's stated purpose of document management and semantic search. Supply chain analysis found 2 known vulnerabilities in dependencies (0 critical, 1 high severity). Package verification found 1 issue.
4 files analyzed · 8 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: MCP_BASE_DIR
Environment variable: MCP_EMBEDDING_MODEL
Environment variable: MCP_CACHE_ENABLED
Environment variable: START_WEB_UI
Environment variable: WEB_HOST
Environment variable: WEB_PORT
Environment variable: MCP_STREAMING_ENABLED
Environment variable: MCP_STREAM_CHUNK_SIZE
Environment variable: MCP_STREAM_FILE_SIZE_LIMIT
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-andrea9293-mcp-documentation-server": {
"env": {
"WEB_HOST": "your-web-host-here",
"WEB_PORT": "your-web-port-here",
"MCP_BASE_DIR": "your-mcp-base-dir-here",
"START_WEB_UI": "your-start-web-ui-here",
"GEMINI_API_KEY": "your-gemini-api-key-here",
"MCP_CACHE_ENABLED": "your-mcp-cache-enabled-here",
"MCP_EMBEDDING_MODEL": "your-mcp-embedding-model-here",
"MCP_STREAMING_ENABLED": "your-mcp-streaming-enabled-here",
"MCP_STREAM_CHUNK_SIZE": "your-mcp-stream-chunk-size-here",
"MCP_STREAM_FILE_SIZE_LIMIT": "your-mcp-stream-file-size-limit-here"
},
"args": [
"-y",
"@andrea9293/mcp-documentation-server"
],
"command": "npx"
}
}
}From the project's GitHub README.
Local-first document management and semantic search for AI coding agents. No external databases, no cloud APIs, no vendor lock-in.
Unlike other MCP servers that are CLI-only, this one ships with a full web dashboard — browse, search, upload, and manage your knowledge base from your browser. Every MCP tool is also exposed as a REST API, giving AI agents a lean, schema-free interface.
.txt, .md, .pdf support{
"mcpServers": {
"documentation": {
"command": "npx",
"args": ["-y", "@andrea9293/mcp-documentation-server"]
}
}
}
Open your browser at http://localhost:3080 — the web UI starts automatically.
Every MCP tool is also accessible via the REST API on http://127.0.0.1:3080/api/. This is the recommended way to interact from AI agents (Claude Code, OpenCode, Gemini CLI, Cursor) because it avoids loading MCP tool schemas into the conversation context — only the response JSON enters.
curl -s http://127.0.0.1:3080/api/config
curl -s http://127.0.0.1:3080/api/documents
curl -s -X POST http://127.0.0.1:3080/api/search-all \
-H "Content-Type: application/json" \
-d '{"query": "your search", "limit": 5}'
A ready-to-use skill is included at skills/documentation-server/SKILL.md — it teaches your agent every endpoint with examples. Install it:
npx skills add https://github.com/andrea9293/mcp-documentation-server --skill documentation-server
add_document or place .txt / .md / .pdf files in the uploads folder and call process_uploads.search_all_documents, or within a single document with search_documents.get_context_window to fetch neighboring chunks and give the LLM broader context.The web interface starts automatically on port 3080 when the MCP server launches. From the web UI you can:
GEMINI_API_KEY is set){
"mcpServers": {
"documentation": {
"command": "npx",
"args": ["-y", "@andrea9293/mcp-documentation-server"]
}
}
}
{
"mcpServers": {
"documentation": {
"command": "npx",
"args": ["-y", "@andrea9293/mcp-documentation-server"],
"env": {
"MCP_BASE_DIR": "/path/to/workspace",
"GEMINI_API_KEY": "your-api-key-here",
"MCP_EMBEDDING_MODEL": "Xenova/all-MiniLM-L6-v2",
"START_WEB_UI": "true",
"WEB_HOST": "127.0.0.1",
"WEB_PORT": "3080"
}
}
}
}
All environment variables are optional. Without GEMINI_API_KEY, only the local embedding-based search tools are available.
The server registers the following tools (all validated with Zod schemas):
| Tool | Description |
|---|---|
add_document | Add a document (title, content, optional metadata) |
list_documents | List all documents with metadata and content preview |
get_document | Retrieve the full content of a document by ID |
delete_document | Remove a document, its chunks, database entries, and associated files |
| Tool | Description |
|---|---|
process_uploads | Process all files in the uploads folder (chunking + embeddings) |
get_uploads_path | Returns the absolute path to the uploads folder |
list_uploads_files | Lists files in the uploads folder with size and format info |
get_ui_url | Returns the Web UI URL (e.g. http://localhost:3080) — useful to open the dashboard or to locate the uploads folder from the browser |
| Tool | Description |
|---|---|
search_documents | Semantic vector search within a specific document |
search_all_documents | Hybrid (full-text + vector) cross-document search |
get_context_window | Returns a window of chunks around a given chunk index |
search_documents_with_ai | 🤖 AI-powered search using Gemini (requires GEMINI_API_KEY) |
Configure via environment variables or a .env file in the project root:
| Variable | Default | Description |
|---|---|---|
MCP_BASE_DIR | ~/.mcp-documentation-server | Base directory for data storage |
MCP_EMBEDDING_MODEL | Xenova/all-MiniLM-L6-v2 | Embedding model name |
GEMINI_API_KEY | — | Google Gemini API key (enables search_documents_with_ai) |
MCP_CACHE_ENABLED | true | Enable/disable LRU embedding cache |
START_WEB_UI | true | Set to false to disable the built-in web interface |
WEB_HOST | 127.0.0.1 | Bind address for the web UI (use 0.0.0.0 to expose on all interfaces) |
WEB_PORT | 3080 | Port for the web UI |
MCP_STREAMING_ENABLED | true | Enable streaming reads for large files |
MCP_STREAM_CHUNK_SIZE | 65536 | Streaming buffer size in bytes (64KB) |
MCP_STREAM_FILE_SIZE_LIMIT | 10485760 | Threshold to switch to streaming (10MB) |
~/.mcp-documentation-server/ # Or custom path via MCP_BASE_DIR
├── data/
│ ├── orama-chunks.msp # Orama vector DB (child chunks + embeddings)
│ ├── orama-docs.msp # Orama document DB (full content + metadata)
│ ├── orama-parents.msp # Orama parent chunks DB (context sections)
│ ├── migration-complete.flag # Written after legacy JSON migration
│ └── *.md # Markdown copies of documents
└── uploads/ # Drop .txt, .md, .pdf files here
Set via MCP_EMBEDDING_MODEL:
| Model | Dimensions | Notes |
|---|---|---|
Xenova/all-MiniLM-L6-v2 | 384 | Default — fast, good quality |
Xenova/paraphrase-multilingual-mpnet-base-v2 | 768 | Recommended — best quality, multilingual |
Models are downloaded on first use (~80–420 MB). The vector dimension is determined automatically from the provider.
⚠️ Important: Changing the embedding model requires re-adding all documents — embeddings from different models are incompatible. The Orama database is recreated automatically when the dimension changes.
Server (FastMCP, stdio)
├─ Web UI (Express, port 3080)
│ └─ REST API → DocumentManager
└─ MCP Tools
└─ DocumentManager
├─ OramaStore — Orama vector DB (chunks DB + docs DB + parents DB), persistence, migration
├─ IntelligentChunker — Parent-child chunking (code, markdown, text, PDF)
├─ EmbeddingProvider — Local embeddings via @xenova/transformers
│ └─ EmbeddingCache — LRU in-memory cache
└─ GeminiSearchService — Optional AI search via Google Gemini
git clone https://github.com/andrea9293/mcp-documentation-server.git
cd mcp-documentation-server
npm install
npm run dev # FastMCP dev mode with hot reload
npm run build # TypeScript compilation
npm run inspect # FastMCP web UI for interactive tool testing
npm start # Direct tsx execution (MCP server + web UI)
npm run web # Run only the web UI (development)
npm run web:build # Run only the web UI (compiled)
git checkout -b feature/nameMIT — see LICENSE
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.