Metadata-Version: 2.4
Name: docsite-ingest-mcp
Version: 0.3.0
Summary: Scrape documentation websites, index in Chroma, expose retrieval through MCP
Author-email: Valentin JOURNET <valentin.journet@talan.com>
License: MIT
Project-URL: Homepage, https://github.com/talan-digital-factory/docsite-ingest-mcp
Project-URL: Repository, https://github.com/talan-digital-factory/docsite-ingest-mcp
Project-URL: Issues, https://github.com/talan-digital-factory/docsite-ingest-mcp/issues
Project-URL: Documentation, https://github.com/talan-digital-factory/docsite-ingest-mcp#readme
Keywords: mcp,documentation,vector-search,rag,chromadb,web-scraper
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Internet :: WWW/HTTP
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: beautifulsoup4>=4.12.3
Requires-Dist: chromadb>=0.5.5
Requires-Dist: httpx>=0.27.0
Requires-Dist: lxml>=5.2.2
Requires-Dist: mcp>=1.10.1
Requires-Dist: sentence-transformers>=3.0.1
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: black>=23.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: mypy>=1.0; extra == "dev"
Dynamic: license-file

# Guide d'Installation et d'Utilisation - docsite-ingest-mcp

Guide simple pour installer et utiliser `docsite-ingest-mcp` dans votre projet.

## Installation

### Prérequis

- Python 3.11+
- pip

### Installer le package

```bash
pip install docsite-ingest-mcp
```

### Vérifier l'installation

```bash
python -m docsite_ingest_mcp --help
```

Ou si la commande n'est pas reconnue:

```bash
python -m docsite_ingest_mcp --help
```

## Configuration Rapide

### 1. Créer un fichier `sites.json`

Créer un fichier `sites.json` pour définir les documentations à indexer:

```json
{
  "sites": [
    {
      "site_id": "haystack",
      "site_name": "Haystack Documentation",
      "start_url": "https://docs.haystack.deepset.ai/docs/intro",
      "allowed_host": "docs.haystack.deepset.ai",
      "allowed_path_prefix": "/docs/"
    }
  ]
}
```

**Paramètres:**
- `site_id`: Identifiant unique (utilisé pour nommer les fichiers)
- `site_name`: Nom de la documentation
- `start_url`: URL de départ du crawl
- `allowed_host`: Domaine du site
- `allowed_path_prefix`: Préfixe des URLs à crawler

### 2. Indexer les documentations

Première fois (peut prendre plusieurs minutes):

```bash
python -m docsite_ingest_mcp ingest --sites-config sites.json
```

```bash
python -m docsite_ingest_mcp ingest --sites-config sites.json
```

Les données seront stockées dans `data/`:
- `data/raw/`: Documents scrapés
- `data/chroma/`: Base de données vectorielle

Mises à jour futures:

```bash
python -m docsite_ingest_mcp ingest --incremental
```

## Intégrer dans Claude (via MCP)

### 1. Lancer le serveur MCP


```bash
python -m docsite_ingest_mcp mcp-server
```

Le serveur expose une recherche sémantique des documentations indexées.

### 2. Configurer Claude pour utiliser votre MCP

#### Option A: Avec claude-desktop (Recommandé)

Éditer `%APPDATA%\Claude\claude_desktop_config.json` (Windows):

```json
{
    "docsite_ingest_mcp": {
      "command": "python",
      "args": ["-m", "docsite_ingest_mcp", "serve"],    
      "env": {
        "MCP_SYSTEM_PROMPT": "You have access to indexed documentation for: FastApi, Python, Django. ALWAYS search this documentation first before using your training data. For ANY technical question about these products, call list_indexed_doc_sites() then search_documentation() immediately. Provide source URLs in all answers."
      }
    },
}
```
**À personnaliser :**
- Remplacez `Django, FastAPI, Python` par les **noms exacts des documentations que vous avez indexées** (visibles avec la commande `list_indexed_doc_sites()`)

**Impact :** L'orchestrateur comprendra exactement quelles documentations sont disponibles et cherchera en priorité dans votre MCP plutôt que dans sa mémoire d'entraînement.

Puis redémarrer Claude Desktop.

#### Option B: Via cURL (Test rapide)

```bash
# Terminal 1: Lancer le serveur
python -m docsite_ingest_mcp serve
```

#### Option C: Intégration Programmatique

Dans votre application Python:

```python
import subprocess
import json

# Démarrer le serveur
process = subprocess.Popen(
    ["docsite_ingest_mcp", "serve"],
    stdin=subprocess.PIPE,
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE
)
```

## Commandes Utiles

### Indexer un seul site (ad-hoc)

```bash
python -m docsite_ingest_mcp ingest \
  --site-id my-docs \
  --site-name "My Docs" \
  --start-url "https://docs.example.com/" \
  --allowed-host "docs.example.com" \
  --allowed-path-prefix "/"
```

### Limiter l'indexation à N pages

```bash
python -m docsite_ingest_mcp ingest --sites-config sites.json --max-pages 500
```

### Réinitialiser la base (efface tout ⚠️)

```bash
python -m docsite_ingest_mcp ingest --sites-config sites.json --reset
```

## Dépannage

### La commande `docsite-ingest-mcp` ne fonctionne pas

```bash
# Vérifier l'installation
pip list | grep docsite-ingest-mcp

# Réinstaller
pip install --upgrade docsite-ingest-mcp

# Ou utiliser la commande module
python -m docsite_ingest_mcp --help
```

### Le serveur MCP ne démarre pas

```bash
# Lancer avec logs détaillés
python -m docsite_ingest_mcp mcp-server 2>&1 | more
```

### Pas de données indexées

```bash
# Vérifier que les données existent
ls -la data/chroma/

# Réindexer depuis zéro
python -m docsite_ingest_mcp ingest --sites-config sites.json --reset
```

## Documentation Complète

- Pour les développeurs: Voir [DEVELOPMENT.md](DEVELOPMENT.md)
- Pour le README général: Voir [README.md](README.md)
