Personal Knowledge-Base MCP Server
Servidor MCP de base de conocimiento personal
Un servidor MCP de base de conocimiento personal que proporciona búsqueda semántica sobre una colección de documentos propiedad de un estudiante utilizando el Model Context Protocol (MCP), embeddings de Gemini y Qdrant.
Descripción general del proyecto
Este proyecto expone una base de conocimiento personal como herramientas MCP invocables.
En lugar de depender de la coincidencia de palabras clave, el sistema convierte las consultas del usuario en embeddings vectoriales y recupera fragmentos de documentos semánticamente relevantes desde Qdrant.
Related MCP server: Solarium
Arquitectura
User / MCP Client
|
v
MCP Server (FastMCP)
|
+----------------------+
| |
v v
search_notes() get_document()
|
v
Gemini Embedding API
|
v
Qdrant Vector Database
|
v
Ranked Chunks
|
v
Source + Page + Score + Text
## Features
* PDF document ingestion
* Page-by-page text extraction
* Recursive text chunking
* Gemini `gemini-embedding-001` embeddings
* Qdrant vector storage
* Semantic similarity search
* Source and page citations
* Confidence threshold for low-relevance queries
* Full-document retrieval
* Indexed-source listing
* MCP Inspector support
## MCP Tools
### `search_notes`
Searches the knowledge base using semantic similarity.
Arguments:
* `query`: search question or topic
* `top_k`: maximum number of results
Returns:
* similarity score
* source filename
* page number
* relevant text chunk
### `get_document`
Returns the complete text of an indexed PDF document.
Argument:
* `doc_id`: document filename
Example:
```text
Complex_Variables_Project_Report.pdflist_source_documents
Enumera todos los documentos fuente indexados.
Ejemplo de salida:
1. Complex_Variables_Project_Report.pdfEstructura del proyecto
Personal-Knowledge-MCP/
├── documents/
│ └── Complex_Variables_Project_Report.pdf
├── services/
│ ├── chunking.py
│ ├── embedding.py
│ ├── pdf_reader.py
│ └── qdrant_service.py
├── .env
├── .gitignore
├── evaluation.py
├── ingest.py
├── requirements.txt
└── server.pyConfiguración
1. Crear y activar el entorno virtual
python -m venv .venv
.venv\Scripts\Activate.ps12. Instalar dependencias
pip install -r requirements.txt3. Configurar la clave de API de Gemini
Crea un archivo .env en la raíz del proyecto:
GEMINI_API_KEY=your_api_key_hereNunca hagas commit de .env a Git.
4. Iniciar Qdrant
El proyecto utiliza Qdrant local en:
http://localhost:6333Ejemplo de comando Docker:
docker run -d --name qdrant -p 6333:6333 -p 6334:6334 qdrant/qdrantIngestión de documentos
Coloca el PDF dentro de:
documents/Ejecuta:
python ingest.pyEl pipeline de ingestión realiza lo siguiente:
PDF
↓
Page extraction
↓
Chunking
↓
Gemini embeddings
↓
Qdrant storageCada fragmento almacenado contiene:
text
page
sourceEjecución del servidor MCP
Inicia el MCP Inspector:
mcp dev server.pyEl servidor MCP utiliza transporte STDIO.
Herramientas disponibles:
search_notes
get_document
list_source_documentsEvaluación de la recuperación
Se utilizó un pequeño conjunto de evaluación de cinco consultas para comprobar si al menos una página relevante esperada aparecía entre los tres primeros resultados recuperados.
Resultado de la evaluación:
Tests: 5
Successful hits: 5
Hit@3: 100%Las consultas de evaluación de ejemplo incluían:
¿Qué es una variable compleja?
¿Cuáles son las ecuaciones de Cauchy-Riemann?
¿Cómo ayuda la transformada de Laplace a los sistemas de ingeniería?
¿Cuál es la diferencia entre las transformadas de Laplace y Fourier?
¿Cómo se utiliza la FFT para la reducción de ruido en audio?
Filtrado de confianza
La herramienta de búsqueda utiliza un umbral de similitud inicial de:
0.60Por ejemplo, las consultas relevantes produjeron puntuaciones alrededor de:
0.79
0.76
0.75mientras que una consulta no relacionada produjo puntuaciones alrededor de:
0.52Por lo tanto, los resultados con puntuaciones bajas se filtran y la herramienta devuelve:
No confident match found.Tecnologías
Python
FastMCP
Model Context Protocol (MCP)
Google Gemini Embeddings
Qdrant
PyMuPDF
LangChain Text Splitters
Docker
MCP Inspector
Fuente de conocimiento actual
El corpus de demostración actual es:
Complex_Variables_Project_Report.pdfEl documento contiene 7 páginas y se dividió en 30 fragmentos para la colección indexada personal_knowledge.
Seguridad
Las claves de API se almacenan en
.env.envestá excluido mediante.gitignoreLos secretos nunca deben incluirse en el control de versiones
Mejoras futuras
Soporte para documentos Markdown y TXT
Añadir identificadores persistentes a nivel de documento
Mejorar el manejo de fragmentos duplicados
Ampliar el conjunto de datos de evaluación
Añadir más métricas de recuperación
Soporte para múltiples colecciones de documentos
Añadir despliegue opcional en Qdrant Cloud
This server cannot be installed
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 Servers
- Flicense-qualityCmaintenanceMCP server that indexes a knowledge base into Chroma and provides search tools for retrieving document fragments via vector embeddings.
- Alicense-qualityDmaintenanceA knowledge base MCP server backed by Qdrant vector database with local embeddings for semantic search and document management.51ISC
- Flicense-qualityCmaintenanceMCP server providing RAG tools (search_notes, answer_from_notes) and resources for grounded answers over a local knowledge base.
- Flicense-qualityAmaintenanceA local knowledge base MCP server that enables retrieval and evidence-based Q&A over Obsidian Markdown notes, with high-recall embedding search, chunked indexing, hybrid retrieval, and three STDIO MCP tools for agent-driven recollection and quality-gated recall.
Related MCP Connectors
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Agentic search over your Dewey document collections from any MCP-compatible client.
Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.
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/AmnaSarwar522/Personal-Knowledge-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server