Skip to main content
Glama
jdanas

Unsloth AI Documentation MCP Server

by jdanas
README.md
# 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.