Document Assistant
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., "@Document AssistantWhat are the key findings from my uploaded document?"
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.
π€ AI Document Scanner Using RAG & MCP Tools with Python
An intelligent AI Document Scanner and Assistant built with Python that allows users to upload documents, search their contents, and ask questions using Retrieval-Augmented Generation (RAG) and Model Context Protocol (MCP) tools.
The application combines document processing, text chunking, vector embeddings, FAISS similarity search, MCP tools, and Large Language Models (LLMs) to provide contextual answers from uploaded documents.
π Project Overview
Traditional document search often depends on exact keyword matching. This project uses semantic search through vector embeddings, allowing users to ask questions naturally.
The system:
Accepts documents from the user.
Extracts text from the documents.
Splits the text into smaller chunks.
Converts chunks into vector embeddings.
Stores embeddings in a FAISS vector database.
Retrieves relevant chunks when the user asks a question.
Uses an LLM to generate an answer based on the retrieved context.
Uses MCP tools to expose document search and analysis capabilities to an AI agent.
Related MCP server: MinerU Document Explorer
β¨ Features
π PDF document processing
π CSV and Excel data analysis
π Semantic document search
π§ Retrieval-Augmented Generation (RAG)
ποΈ FAISS vector database
π€ LLM-powered question answering
π Model Context Protocol (MCP) tool integration
π¬ Interactive document chat
π Streamlit web interface
π Document chunking and embeddings
π Context-aware information retrieval
π§© Modular project architecture
π Environment-variable based API key configuration
ποΈ Architecture
βββββββββββββββββββββββ
β User β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β Streamlit UI β
β app.py β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β Document Loader β
β PDF / CSV / Excel β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β Text Splitting & β
β Preprocessing β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β Embedding Model β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β FAISS Vector Store β
ββββββββββββ¬βββββββββββ
β
User Question
β
βΌ
βββββββββββββββββββββββ
β Semantic Retrieval β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β MCP Tools β
β PDF / CSV / Excel β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β RAG Pipeline β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β LLM β
β Gemini / Other LLM β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β AI Response β
βββββββββββββββββββββββπ RAG Workflow
1. Document Loading
Documents are loaded using appropriate Python libraries.
PDF β
PyPDFExcel β
Pandas/OpenPyXLCSV β
Pandas
2. Text Splitting
Large documents are divided into smaller chunks using a text splitter. This improves retrieval accuracy and keeps prompts manageable.
3. Embeddings
Each text chunk is converted into a numerical vector representing its semantic meaning.
Document Text
|
v
Embedding Model
|
v
Numerical Vector4. Vector Storage
The generated vectors are stored in FAISS, enabling efficient similarity-based retrieval.
5. Semantic Search
When the user asks a question, the question is converted into an embedding and compared against stored document vectors. The most relevant chunks are retrieved.
6. Response Generation
The retrieved context is passed to the LLM along with the user's question. The model generates an answer based on the retrieved information.
π MCP Integration
The project uses Model Context Protocol (MCP) to expose document-related functionality as tools that an AI agent can call.
Example MCP Tools
search_pdf(question)
find_employee(name)
analyze_csv(question)This allows an AI system to retrieve information from documents or analyze structured data when required.
Example MCP Workflow
User
|
v
"Find the details of Manoj Sarkar."
|
v
AI Agent
|
v
MCP Tool
find_employee("Manoj Sarkar")
|
v
Vector / Document Search
|
v
Relevant Information
|
v
LLM
|
v
Final Answerπ οΈ Technologies Used
Technology | Purpose |
Python | Core programming language |
Streamlit | Web application interface |
LangChain | RAG and document processing |
FAISS | Vector similarity search |
MCP | AI tool integration |
Google Gemini | Large Language Model |
PyPDF | PDF text extraction |
Pandas | Data processing |
OpenPyXL | Excel file processing |
Vector Embeddings | Semantic representation |
python-dotenv | Environment variable management |
π Project Structure
AI-Document-Scanner/
β
βββ app.py
βββ server.py
βββ client.py
βββ requirements.txt
βββ README.md
β
βββ assistants/
β βββ pdf_assistant.py
β βββ excel_assistant.py
β βββ csv_assistant.py
β βββ docx_assistant.py
β
βββ utils/
β βββ loaders.py
β βββ splitter.py
β βββ vectorstore.py
β βββ rag_pipeline.py
β βββ llm_provider.py
β βββ prompts.py
β
βββ mcp_tools/
β βββ pdf_tool.py
β βββ rag_tool.py
β βββ excel_tool.py
β βββ csv_tool.py
β
βββ data/
β βββ sample_documents/
β
βββ .envThe exact files and folders may vary depending on the current implementation.
βοΈ Installation
1. Clone the Repository
git clone https://github.com/your-username/AI-Document-Scanner.git
cd AI-Document-Scanner2. Create a Virtual Environment
Windows
python -m venv venv
venv\Scripts\activateLinux/macOS
python3 -m venv venv
source venv/bin/activate3. Install Dependencies
pip install -r requirements.txtπ Environment Variables
Create a .env file in the project root.
Google Gemini
GOOGLE_API_KEY=your_google_api_keyIf your implementation also supports OpenAI:
OPENAI_API_KEY=your_openai_api_keyImportant: Never commit your
.envfile or API keys to GitHub.
Add the following to .gitignore:
.env
venv/
__pycache__/
*.pyc
.faiss/βΆοΈ Running the Application
Start the Streamlit application:
streamlit run app.pyThen open the application in your browser:
http://localhost:8501π‘ Example Questions
After uploading a document, users can ask questions such as:
What is this document about?Summarize the document.Who is Manoj Sarkar?Find the employee with the highest sales.What is the total revenue?What are the main points discussed in the document?Find information related to a specific topic.π§ͺ Example RAG Pipeline
documents = load_documents(file_path)
chunks = split_documents(documents)
vectorstore = create_vectorstore(chunks)
results = vectorstore.similarity_search(query, k=4)
context = "\n".join(
document.page_content
for document in results
)
response = llm.invoke(
f"""
Answer the question using the following context:
{context}
Question:
{query}
"""
)π Example MCP Tool
A simplified MCP tool can look like:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Document Assistant")
@mcp.tool()
def search_pdf(question: str) -> str:
"""Search the uploaded PDF and return relevant information."""
# Vector search implementation
return "Relevant document information"The MCP server exposes this functionality so that an AI client or agent can use it when required.
π― Use Cases
This project can be useful for:
π Research document assistants
π’ Company knowledge bases
π Legal document search
π Educational document analysis
π¨βπΌ HR document assistants
π Business report analysis
π§Ύ Invoice and report processing
π Policy and documentation search
π€ AI-powered knowledge management systems
π Future Enhancements
Multi-document conversational memory
DOCX support
Image document scanning
OCR integration
Voice input
Source/page citations
Chat history
User authentication
Multi-user support
Cloud deployment
Advanced agentic workflows
Additional MCP tools
Database integration
Document summarization
Hybrid keyword + semantic search
Reranking for improved retrieval accuracy
π Security
For security:
Store API keys in
.env.Never upload API keys to GitHub.
Add
.envto.gitignore.Avoid storing sensitive documents in public repositories.
Validate uploaded files before processing.
π§ Key Concepts Demonstrated
This project demonstrates practical knowledge of:
Python
Generative AI
Large Language Models
Retrieval-Augmented Generation
Vector Databases
Semantic Search
Embeddings
LangChain
FAISS
Model Context Protocol
AI Agents
Streamlit
Document Processing
API Integration
π¨βπ» Author
Manoj Sarkar
B.Tech in Computer Science & Engineering
Interested in Python, Generative AI, Agentic AI, RAG, MCP, and AI-powered applications.
β Support
If you find this project useful, consider giving the repository a β on GitHub.
π License
This project is intended for educational and development purposes. Add an appropriate license file if you plan to distribute or reuse the project publicly.
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-qualityDmaintenanceTransforms PDF collections into a searchable knowledge base using TF-IDF indexing and proximity matching. It enables users to search documents, retrieve specific page content, and manage document libraries through natural language via MCP clients.Last updated5
- Alicense-qualityDmaintenanceEnables AI agents to search, deep-read, and build knowledge bases from Markdown, PDF, DOCX, and PPTX documents via MCP tools for retrieval, document navigation, and ingestion.Last updated44613MIT
- Alicense-qualityBmaintenanceEnables querying enterprise documents (DOCX, PDF, PPTX) using natural language, with hybrid search and MCP integration for Claude Desktop and other agents.Last updatedMIT
- Alicense-qualityCmaintenanceEnables document-based Q&A with multi-modal RAG, hybrid retrieval, knowledge graph reasoning, and multi-agent orchestration via MCP tools.Last updated4MIT
Related MCP Connectors
Query any docs site via MCP. Submit a URL, ask questions, get cited answers.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
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/manojsarkar457/AI-DOCUMENT-SCANNER-USING-RAG-MCP-TOOLS-WITH-PYTHON'
If you have feedback or need assistance with the MCP directory API, please join our Discord server