# Unsloth AI Documentation MCP Server
A simple FastMCP implementation to connect to and query Unsloth AI documentation.
## Overview
This MCP (Model Context Protocol) server provides access to Unsloth AI documentation through a set of tools that can fetch and search the documentation content. It's built using FastMCP, a Python framework for creating MCP servers.
## Features
The server provides the following tools:
1. **search_unsloth_docs**: Search the Unsloth documentation for specific topics or keywords
2. **get_unsloth_quickstart**: Get the quickstart guide and installation instructions
3. **get_unsloth_models**: Get information about supported models in Unsloth
4. **get_unsloth_tutorials**: Get information about tutorials and fine-tuning guides
5. **get_unsloth_installation**: Get detailed installation instructions
## Installation
1. **Clone or download this repository**
2. **Install dependencies:**
```bash
pip install -r requirements.txt
```
Or if you prefer using uv:
```bash
uv pip install -r requirements.txt
```
## Usage
### Running the Server
There are several ways to run the MCP server:
#### 1. Direct Python execution
```bash
python unsloth_mcp_server.py
```
#### 2. Using FastMCP CLI
```bash
fastmcp run unsloth_mcp_server.py:mcp
```
#### 3. Using the test client
```bash
python test_client.py
```
### Available Tools
#### search_unsloth_docs(query: str)
Search the Unsloth documentation for specific information.
**Example:**
```python
result = await client.call_tool("search_unsloth_docs", {"query": "fine-tuning"})
```
#### get_unsloth_quickstart()
Get the quickstart guide and basic setup information.
**Example:**
```python
result = await client.call_tool("get_unsloth_quickstart", {})
```
#### get_unsloth_models()
Get information about models supported by Unsloth.
**Example:**
```python
result = await client.call_tool("get_unsloth_models", {})
```
#### get_unsloth_tutorials()
Get information about available tutorials and guides.
**Example:**
```python
result = await client.call_tool("get_unsloth_tutorials", {})
```
#### get_unsloth_installation()
Get detailed installation instructions.
**Example:**
```python
result = await client.call_tool("get_unsloth_installation", {})
```
### Connecting to MCP Clients
This server can be used with any MCP-compatible client. The server runs using the standard MCP stdio transport protocol.
#### Claude Desktop Integration
To use this server with Claude Desktop, add the following to your Claude Desktop configuration:
```json
{
"mcpServers": {
"unsloth-docs": {
"command": "python",
"args": ["path/to/unsloth_mcp_server.py"],
"cwd": "path/to/unsloth-mcp"
}
}
}
```
#### Other MCP Clients
The server can be used with any MCP client by pointing it to the server file:
```python
from fastmcp import Client
client = Client("unsloth_mcp_server.py")
```
## File Structure
```
unsloth-mcp/
├── README.md # This file
├── requirements.txt # Python dependencies
├── unsloth_mcp_server.py # Main MCP server implementation
└── test_client.py # Test client for testing the server
```
## How It Works
1. **Web Scraping**: The server fetches content from the Unsloth documentation website (https://docs.unsloth.ai)
2. **Content Processing**: Uses BeautifulSoup to parse HTML and extract relevant text content
3. **Search Functionality**: Implements simple keyword matching to find relevant sections
4. **MCP Protocol**: Exposes the functionality through FastMCP tools that can be called by MCP clients
## Dependencies
- **fastmcp**: The FastMCP framework for creating MCP servers
- **requests**: For making HTTP requests to fetch documentation
- **beautifulsoup4**: For parsing HTML content
## Limitations
- The server currently performs simple keyword-based searching rather than semantic search
- It fetches content in real-time, which may be slower than cached content
- Limited to the main documentation page content (could be extended to crawl multiple pages)
## Future Enhancements
Potential improvements could include:
1. **Caching**: Cache documentation content to improve response times
2. **Multi-page Crawling**: Fetch content from multiple documentation pages
3. **Semantic Search**: Implement more sophisticated search using embeddings
4. **Content Indexing**: Pre-index content for faster searches
5. **Rate Limiting**: Add proper rate limiting for web requests
## Contributing
Feel free to submit issues or pull requests to improve the server functionality.
## License
This project is open source. Please check the Unsloth AI documentation website terms of use when using their content.