Skip to main content
Glama
Devidas-07

MCP-Based Enterprise Knowledge Search Assistant

by Devidas-07
README.md
# MCP-Based Enterprise Knowledge Search Assistant

This repository contains a proof-of-concept implementation of an enterprise knowledge assistant that compares a traditional RAG-style experience with an MCP-driven retrieval flow.

## Architecture

- Frontend: Claude Desktop style chat experience
- Backend: FastAPI + Python 3.12
- Retrieval: Elasticsearch-style hybrid search abstraction with BM25 + dense vector similarity
- LLM: Ollama with gemma3:latest
- MCP: Custom Python MCP-style tool server exposing domain-specific retrieval tools

## Key features

- Question routing to the correct MCP tool
- Hybrid retrieval with ranked chunks and source citations
- Ollama integration for answer generation
- Evaluation metrics logging to JSON
- Docker Compose support for local development

## Running locally

1. Install dependencies:
   - `pip install -e .`
2. Start Ollama and ensure `gemma3:latest` is available.
3. Start the API:
   - `uvicorn app.core.app:app --reload`
4. Call the chat endpoint:
   - `POST /chat` with `{ "question": "What is the maternity leave policy?" }`

## Sample questions

- What is the maternity leave policy?
- How do I submit a travel reimbursement request?
- What are the annual appraisal guidelines?
- What should I do for a security incident?

## Evaluation

Run the evaluation helper to write a metrics record:

```python
from app.services.evaluation import EvaluationService

service = EvaluationService()
print(service.compare("What is the maternity leave policy?"))
```