Skip to main content
Glama
XPE-7

Claude AI Documentation Assistant

by XPE-7
README.md
# šŸ¤– Claude AI Documentation Assistant šŸ“š

<div align="center">

![Claude + MCP Integration](https://raw.githubusercontent.com/anthropics/logo/main/claude-badge.png)

*A powerful MCP server that supercharges Claude with documentation search capabilities*

[![Python 3.8+](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)

</div>

## ✨ Features

- šŸ” **Smart Documentation Search** - Search across multiple AI/ML library documentation
- 🧠 **Claude Integration** - Seamless connection with Claude's advanced reasoning capabilities
- 🌐 **Intelligent Web Search** - Leverages Serper API for targeted documentation lookup
- šŸ’Ø **Fast Response Times** - Optimized for quick retrieval and processing
- 🧩 **Extendable Architecture** - Easily add more documentation sources

## šŸ“‹ Prerequisites

- šŸ Python 3.8 or higher
- šŸ”‘ Claude Pro subscription
- šŸ” Serper API key ([Get one here](https://serper.dev))
- šŸ’» Claude Desktop application

## šŸš€ Quick Start

### 1ļøāƒ£ Installation

```bash
# Clone the repository
git clone https://github.com/your-username/claude-docs-assistant.git
cd claude-docs-assistant

# Create a virtual environment (recommended)
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt
```

### 2ļøāƒ£ Configuration

Create a `.env` file in the project root with your API keys:

```
SERPER_API_KEY=your_serper_api_key_here
```

### 3ļøāƒ£ Start the MCP Server

```bash
python main.py
```

You should see output indicating the server is running and waiting for Claude to connect.

### 4ļøāƒ£ Connect Claude Desktop App

1. šŸ“± Open the Claude Desktop App
2. āš™ļø Click on your profile icon and select "Settings"
3. 🧰 Navigate to the "Tools" section
4. āž• Click "Add Tool"
5. šŸ”— Select "Connect to a local tool"
6. šŸ–„ļø Follow the prompts to connect to your running MCP server
7. āœ… Confirm the connection is successful

## šŸŽ® Using Your Claude Documentation Assistant

Once connected, you can start asking Claude questions that will trigger the documentation search. For example:

```
Could you explain how to use FAISS with LangChain? Please search the langchain documentation to help me.
```

Claude will automatically use your MCP server to:
1. šŸ” Search for relevant documentation
2. šŸ“„ Retrieve the content
3. 🧠 Process and explain the information

## šŸ”§ Under the Hood

### šŸ“„ Code Structure

```
claude-docs-assistant/
ā”œā”€ā”€ main.py           # MCP server implementation
ā”œā”€ā”€ requirements.txt  # Project dependencies
ā”œā”€ā”€ .env              # Environment variables (API keys)
└── README.md         # This documentation
```

### šŸ”Œ Supported Libraries

The assistant currently supports searching documentation for:

- 🦜 **LangChain**: `python.langchain.com/docs`
- šŸ¦™ **LlamaIndex**: `docs.llamaindex.ai/en/stable`
- 🧠 **OpenAI**: `platform.openai.com/docs`

### 🧩 How It Works

1. šŸ“” The MCP server exposes a `get_docs` tool to Claude
2. šŸ” When invoked, the tool searches for documentation using Serper API
3. šŸ“š Results are scraped for their content
4. šŸ”„ Content is returned to Claude for analysis and explanation

## šŸ› ļø Advanced Configuration

### Adding New Documentation Sources

Extend the `docs_urls` dictionary in `main.py`:

```python
docs_urls = {
    "langchain": "python.langchain.com/docs",
    "llama-index": "docs.llamaindex.ai/en/stable",
    "openai": "platform.openai.com/docs",
    "huggingface": "huggingface.co/docs",  # Add new documentation sources
    "tensorflow": "www.tensorflow.org/api_docs",
}
```

### Customizing Search Behavior

Modify the `search_web` function to adjust the number of results:

```python
payload = json.dumps({"q": query, "num": 5})  # Increase from default 2
```

## šŸ” Troubleshooting

### Common Issues

- **🚫 "Connection refused" error**: Ensure the MCP server is running before connecting Claude
- **ā±ļø Timeout errors**: Check your internet connection or increase the timeout value
- **šŸ”’ API key issues**: Verify your Serper API key is correct in the `.env` file

### Debugging Tips

Add more detailed logging by modifying the main.py file:

```python
import logging
logging.basicConfig(level=logging.DEBUG)
```

## šŸ“ˆ Performance Optimization

- ⚔ For faster response times, consider caching frequently accessed documentation
- 🧠 Limit the amount of text returned to Claude to avoid token limitations
- 🌐 Use more specific queries to get more relevant documentation

## šŸ¤ Contributing

Contributions are welcome! Here's how you can help:

1. šŸ“ Fork the repository
2. 🌿 Create a feature branch (`git checkout -b feature/amazing-feature`)
3. šŸ’¾ Commit your changes (`git commit -m 'Add some amazing feature'`)
4. šŸ“¤ Push to the branch (`git push origin feature/amazing-feature`)
5. šŸ” Open a Pull Request

## šŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

## šŸ™ Acknowledgements

- [Anthropic](https://www.anthropic.com/) for creating Claude
- [Serper.dev](https://serper.dev) for their search API
- All the open-source libraries that make this project possible

---

<div align="center">
  Made with ā¤ļø for Claude enthusiasts
</div>