MyDocsMCP
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., "@MyDocsMCP search for recent advances in generative AI"
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.
MyDocsMCP: MCP Server for PDF Collections
This project is a Model Context Protocol (MCP) Server that enables semantic search (local RAG) over a collection of PDF documents. It uses the FastMCP framework, the ChromaDB vector database, and local embedding models from Sentence Transformers.
Architecture
Semantic Search: 100% local (offline) RAG (Retrieval-Augmented Generation).
Embeddings:
paraphrase-multilingual-mpnet-base-v2(supports Portuguese).Vector DB: Persistent ChromaDB.
Watcher: Monitors new PDFs in the
./data/pdfsfolder and indexes them automatically viawatchdog.
Related MCP server: DocScan MCP Server
How to Use
1. Data Preparation
Place your PDFs in the ./data/pdfs/ folder. If you want to organize them by disciplines, create subfolders:
data/pdfs/
├── Generative-AI/
│ └── lecture1.pdf
└── Machine-Learning/
└── fundamentals.pdfThe subfolder name will be used as the discipline metadata.
2. Extremely Simple Configuration (Claude / Gemini Desktop)
To use the server, add the configuration below to your agent's JSON file (claude_desktop_config.json or Gemini's settings.json).
Claude Path (macOS): ~/Library/Application Support/Claude/claude_desktop_config.json
Gemini Path (macOS): ~/.gemini/settings.json
The server automatically resolves all data folders (pdfs, metadata, chroma_db) based on the project root. You only need to provide the absolute path where you cloned the repository:
{
"mcpServers": {
"mydocsmcp": {
"command": "uv",
"args": [
"--directory", "/Absolute/Path/To/Your/MyDocsMCP",
"run",
"mydocs-mcp"
]
}
}
}That's it! No additional environment variables (PYTHONPATH, PDF_DIR, etc.) are required. The setup "Just Works"™.
Exposed Tools
search_documents(query, top_k=5, discipline=None): Semantic search in the collection.list_documents(discipline=None): Lists indexed PDFs.cross_topic_search(query, disciplines): Cross-topic search across multiple disciplines.get_index_stats(): Vector database statistics.ingest_new_documents(path=None, force_reindex=False): Forces manual re-ingestion.
Local Development (Python)
We use the uv package manager:
# Install dependencies
uv sync
# Run the server
uv run mydocs-mcpRunning Tests
uv run pytestTechnologies Used
Available Tools
5 toolscross_topic_searchB
Busca transversal de um tema em múltiplas disciplinas. Útil para conectar conceitos entre diferentes módulos do curso.
Inputs: query (required), disciplines (required), top_k_per_discipline. Returns: result
get_index_statsA
Retorna estatísticas do índice: total de documentos, chunks, última atualização.
Inputs: no named parameters. Returns: result
ingest_new_documentsB
Força re-ingestão de PDFs novos ou modificados. Normalmente automático via watcher, mas pode ser chamado manualmente.
Inputs: path, force_reindex. Returns: result
list_documentsA
Lista todos os PDFs indexados, opcionalmente filtrado por disciplina.
Inputs: discipline. Returns: result
search_documentsA
Busca semanticamente no acervo de PDFs. Retorna trechos relevantes com referência ao documento e página.
Args: query: Pergunta ou tema a pesquisar top_k: Número de resultados (padrão: 5) discipline: Filtrar por disciplina/pasta específica (opcional)
Inputs: query (required), top_k, discipline. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
search_documents and cross_topic_search both perform semantic search, but their descriptions clearly distinguish single-discipline versus cross-discipline queries. Other tools (list, stats, ingest) are entirely distinct in purpose.
All tools follow a consistent snake_case verb_noun pattern: search_documents, list_documents, cross_topic_search, get_index_stats, ingest_new_documents. The pattern is uniform and predictable.
With only 5 tools, the set is tightly scoped to the core operations of searching, browsing, and maintaining a document index. Each tool serves a clear purpose without redundancy or bloat.
The surface covers core search, listing, stats, and ingestion workflows. It lacks an explicit delete/remove operation for documents, but this may be handled automatically or is a minor gap given the watcher-based ingestion model.
Maintenance
Related MCP Connectors
An MCP server for search and retrieval over a local LanceDB database
Personal knowledge base MCP server with semantic search, auto-categorization, metadata extraction
Self-hosted AI workspace: semantic RAG document search, long-term memory, and AI chat via MCP.
Related MCP Servers
- AlicenseAqualityDmaintenanceLocal-first RAG indexing and semantic search MCP server. Enables document retrieval and context-aware queries using local embedding models.38 npmMIT
- FlicenseNot gradedqualityCmaintenanceMCP server that scans, indexes, and semantically searches local documents (PDF, DOCX, images, etc.) using Docling and local vector search.-
- AlicenseAqualityDmaintenanceMCP server that enables local hybrid semantic and keyword search over private PDF, DOCX, Markdown, and text documents without sending data to embedding APIs.94,501 npmMIT
- FlicenseNot gradedqualityDmaintenanceMCP server that enables semantic search over PDF documents using RAG with ChromaDB and OpenAI embeddings.-