Skip to main content
Glama
rajeshpattem

enterprise-rag-agent

by rajeshpattem

Enterprise RAG Agent

A production-shaped example of an enterprise AI agent: a LangGraph agent that answers questions over a company's internal policy documents (RAG), calls a mock enterprise ticketing system as a tool, returns structured/citable answers, and is exposed both as a REST API and as an MCP server so it can be plugged into Claude Desktop, Claude Code, or any other MCP client.

Why this project

Built as a portfolio project for enterprise/Forward-Deployed AI Engineer roles (e.g. SAP's FDE track). It demonstrates:

  • RAG: chunking, embedding, and retrieval over a real (if small) enterprise document set (expense, IT security, PTO policies).

  • Agentic orchestration: LangGraph create_react_agent with tool calling and a Pydantic structured output schema (answer + cited sources).

  • MCP: the same tools (search_policies, get_ticket_status) exposed as an MCP server (app/mcp_server.py), independent of the REST API.

  • Enterprise integration shape: a mock ticketing-system tool standing in for a real backend (SAP, ServiceNow, Jira, etc.) call.

  • Provider-agnostic LLM layer: swap between Anthropic and OpenAI via one env var, with embeddings kept local (sentence-transformers) so retrieval doesn't require any paid API.

Related MCP server: enterprise-knowledge-mcp

Architecture

                  ┌─────────────────────┐
                  │   data/policies/*.md │
                  └──────────┬───────────┘
                             │ ingest.py (chunk + embed)
                             ▼
                  ┌─────────────────────┐
                  │   Chroma vector DB   │
                  └──────────┬───────────┘
                             │ search_policies()
              ┌──────────────┴───────────────┐
              ▼                              ▼
     ┌─────────────────┐           ┌────────────────────┐
     │  LangGraph agent │           │   MCP server        │
     │  (app/agent.py)  │           │ (app/mcp_server.py)  │
     └────────┬─────────┘           └─────────────────────┘
              │ ask()
              ▼
     ┌─────────────────┐
     │   FastAPI /chat  │
     │  (app/api.py)    │
     └─────────────────┘

Setup

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env   # then fill in ANTHROPIC_API_KEY or OPENAI_API_KEY

Set LLM_PROVIDER=anthropic (default) or LLM_PROVIDER=openai in .env. Embeddings always run locally via sentence-transformers, so ingestion and retrieval work even without any API key.

Build the index

python -m app.ingest

Run the API

uvicorn app.api:app --reload
curl -X POST http://localhost:8000/chat \
  -H "Content-Type: application/json" \
  -d '{"question": "How many PTO days do I accrue per year, and what happens to unused ones?"}'

Run as an MCP server

python -m app.mcp_server

Point any MCP client (Claude Desktop, Claude Code) at this command to give it search_policies_mcp and get_ticket_status_mcp tools.

Tests

Retrieval and mock-tool tests run without any LLM API key:

pytest

Project structure

app/
  config.py       provider-agnostic LLM + embedding setup
  vectorstore.py  Chroma index build/load
  ingest.py       CLI to (re)build the index from data/policies/
  tools.py        search_policies, get_ticket_status (shared logic)
  agent.py        LangGraph agent with structured output
  api.py          FastAPI /chat endpoint
  mcp_server.py   MCP server exposing the same tools
data/policies/    sample enterprise policy documents (the RAG corpus)
tests/            retrieval + tool tests (no API key required)

Roadmap / extensions

  • Swap Chroma for Qdrant/pgvector for a multi-node deployment.

  • Add SAP AI Core as an additional LLM provider option.

  • Add an eval harness (e.g. RAGAS) for retrieval quality regression testing.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/rajeshpattem/enterprise-rag-agent'

If you have feedback or need assistance with the MCP directory API, please join our Discord server