Skip to main content
Glama

AgenticRAG MCP Server

by aibozo
MIT License
  • Apple
  • Linux

AgenticRAG MCP Server

An intelligent codebase processing server that provides agentic RAG (Retrieval-Augmented Generation) capabilities through the Model Context Protocol (MCP).

Features

  • Intelligent Code Indexing: Automatically chunks and embeds codebases for semantic search
  • Agentic Retrieval: Self-critiquing retrieval loop that ensures comprehensive context
  • Multi-Model Architecture: Uses GPT-4o for retrieval and Claude 3 for planning
  • Live Updates: File system watching for automatic re-indexing
  • Cost Control: Built-in telemetry and budget management

Quick Installation

1. Clone and Install

# Clone the repository git clone https://github.com/yourusername/agenticrag-mcp.git cd agenticrag-mcp # Run the installation script ./install.sh

The install script will:

  • Check Python version (3.8+ required)
  • Create a virtual environment
  • Install all dependencies
  • Prompt for your API keys
  • Create necessary directories
  • Generate Claude configuration

2. Add to Claude

After installation, add AgenticRAG to Claude:

Windows (Claude Desktop):

  1. Open %APPDATA%\Claude\claude_desktop_config.json
  2. Add the configuration from claude_config_snippet.json

macOS/Linux (Claude Desktop):

  1. Open ~/.config/claude/claude_desktop_config.json
  2. Add the configuration from claude_config_snippet.json

3. Restart Claude

Restart Claude to load the new MCP server.

Manual Installation

If you prefer to install manually:

# Create virtual environment python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install dependencies pip install -r requirements.txt # Copy and configure environment cp .env.example .env # Edit .env and add your OPENAI_API_KEY # Add to Claude Desktop claude mcp add agenticrag python3 /path/to/agenticrag-mcp/mcp_launcher.py

Usage

Once installed, you can use these tools in Claude:

Initialize a Repository

Please index the repository at /path/to/my/project as "myproject"

Search Your Code

Search myproject for "how does authentication work?"

Get Repository Statistics

Show me the stats for myproject

Example Conversation

You: Can you index my FastAPI project at ~/projects/api? Claude: I'll index your FastAPI project for you. [Calls init_repo tool] ✓ Successfully indexed repository 'api' - Total files: 47 - Total chunks: 312 - Total tokens: 52,841 - Duration: 4.32 seconds You: How does the authentication middleware work? Claude: Let me search for information about the authentication middleware. [Calls search_repo tool] Based on my search, the authentication middleware in your FastAPI project: 1. JWT Token Validation (auth/middleware.py, lines 15-45): - Validates Bearer tokens on protected routes - Extracts user claims from JWT payload - Returns 401 for invalid/expired tokens 2. User Context (auth/middleware.py, lines 50-72): - Adds user object to request state - Enables access via request.state.user The middleware is registered in main.py on line 23.

Configuration

Required Environment Variables

# .env file OPENAI_API_KEY=sk-... # Required for embeddings and GPT-4 ANTHROPIC_API_KEY=sk-ant-... # Optional, for Claude models

Optional Configuration

# Vector Database CHROMA_PERSIST_DIRECTORY=./chroma_db # Logging LOG_LEVEL=INFO LOG_FILE=./logs/agenticrag.log # Models DEFAULT_EMBEDDING_MODEL=text-embedding-3-large DEFAULT_LLM_MODEL=gpt-4o

Architecture

agenticrag-mcp/ ├── src/ │ ├── agents/ # Agentic RAG implementation │ │ ├── base.py # Base agent class │ │ ├── retriever.py # Self-evaluating retriever │ │ ├── compressor.py # Result compression │ │ └── workflow.py # LangGraph orchestration │ ├── indexing/ # Code indexing pipeline │ │ ├── chunker.py # Semantic code chunking │ │ ├── embedder.py # OpenAI embeddings │ │ └── indexer.py # Repository indexer │ ├── storage/ # Vector storage │ │ └── vector_store.py # ChromaDB interface │ └── mcp_server.py # MCP server implementation ├── mcp_launcher.py # MCP entry point ├── install.sh # Installation script └── requirements.txt # Python dependencies

How It Works

  1. Indexing: The system chunks your code respecting language boundaries and creates embeddings
  2. Retrieval: When you search, an AI agent generates optimized queries and retrieves relevant chunks
  3. Self-Evaluation: The agent evaluates if it has enough context and can perform additional searches
  4. Compression: Results are intelligently summarized to provide clear, actionable answers

Troubleshooting

"No module named 'chromadb'"

Activate the virtual environment:

source venv/bin/activate

"OpenAI API key not found"

Make sure your .env file contains:

OPENAI_API_KEY=your-key-here

"MCP server not found in Claude"

  1. Ensure you've added the configuration to Claude's config file
  2. Restart Claude Desktop completely
  3. Check the logs in ./logs/agenticrag.log

Search returns no results

Ensure you've indexed the repository first using the init_repo tool.

Development

Running Tests

source venv/bin/activate python -m pytest tests/

Local Testing

# Test indexing python test_indexing.py # Test agentic RAG python test_agentic_rag.py

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT License - see LICENSE file for details.

Acknowledgments

If you prefer manual installation:

# Create virtual environment python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install dependencies pip install -r requirements.txt # Copy and configure environment cp .env.example .env # Edit .env with your API keys

Usage

Once installed, you can use these tools in Claude:

Index a Repository

Use the init_repo tool to index a codebase: - path: /path/to/your/project - repo_name: my-project

Search Code

Use the search_repo tool to find relevant code: - query: "How does the authentication system work?" - repo_name: my-project

Get Statistics

Use the get_repo_stats tool to see indexing statistics: - repo_name: my-project

Example Conversation

User: Index my Python project at /home/user/myproject Claude: I'll index your Python project for semantic search. [Uses init_repo tool with path="/home/user/myproject" and repo_name="myproject"] User: Find all the database connection code Claude: I'll search for database connection code in your project. [Uses search_repo tool with query="database connection" and repo_name="myproject"] [Returns relevant code snippets with file paths and explanations]

Configuration

The server can be configured via environment variables in .env:

# API Keys (required) OPENAI_API_KEY=sk-... ANTHROPIC_API_KEY=sk-ant-... # Optional configurations CHUNK_SIZE_TOKENS=1280 # Size of code chunks MAX_FILE_SIZE_MB=2 # Maximum file size to index DAILY_BUDGET_USD=100 # Cost control limit

Troubleshooting

Module Not Found

  • Ensure virtual environment is activated: source venv/bin/activate
  • Check installation: pip list | grep agenticrag

API Key Errors

  • Verify keys in .env file
  • Ensure no extra spaces or quotes around keys
  • Check key permissions for required models

Claude Can't Find Tools

  • Verify configuration path is absolute, not relative
  • Check Claude logs: Help → Show Logs
  • Ensure MCP server section exists in config

Server Won't Start

  • Check Python version: python3 --version (need 3.8+)
  • Verify Redis is running: redis-cli ping
  • Check port availability: lsof -i:8000

Performance Issues

  • Adjust CHUNK_SIZE_TOKENS for your codebase
  • Increase EMBEDDING_BATCH_SIZE for faster indexing
  • Monitor costs with get_repo_stats tool

Development

Running Tests

# Activate virtual environment source venv/bin/activate # Run all tests pytest # Run with coverage pytest --cov=src

Code Formatting

# Format code black src tests # Lint code ruff check src tests

Project Structure

agenticrag-mcp/ ├── src/ # Source code │ ├── agents/ # AI agents │ ├── api/ # API endpoints │ ├── indexing/ # Code indexing │ └── storage/ # Vector storage ├── tests/ # Test files ├── install.sh # Installation script ├── requirements.txt # Dependencies └── .env.example # Environment template

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes and test
  4. Submit a pull request

License

MIT License - see LICENSE file for details

Support

Related MCP Servers

  • -
    security
    F
    license
    -
    quality
    Server that enhances the capabilities of the Cline coding agent. It provides intelligent code suggestions, reduces hallucinations, and documents the knowledge base by leveraging your project's documentation and detecting the technologies used in your codebase.
    Last updated -
    10
    JavaScript
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that enables AI agents to retrieve and understand entire codebases at once, providing tools to analyze local workspaces or remote GitHub repositories.
    Last updated -
    9
    TypeScript
    MIT License
    • Linux
    • Apple
  • -
    security
    F
    license
    -
    quality
    A server component of the Model Context Protocol that provides intelligent analysis of codebases using vector search and machine learning to understand code patterns, architectural decisions, and documentation.
    Last updated -
    4
    Python
  • -
    security
    A
    license
    -
    quality
    An MCP server that analyzes codebases and generates contextual prompts, making it easier for AI assistants to understand and work with code repositories.
    Last updated -
    10
    Python
    MIT License

View all related MCP servers

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/aibozo/agenticRAG-MCP'

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