# ๐ค Claude AI Documentation Assistant ๐
<div align="center">

*A powerful MCP server that supercharges Claude with documentation search capabilities*
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](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>