# MCP Joseph

Serveur MCP en lecture seule pour l'application Joseph — phase 1 du chantier
« compagnon virtuel » (voir le `CLAUDE.md` du dépôt racine). Transport
`stdio`, pensé pour être lancé directement par Claude Code/Claude Desktop sur
cette machine — pas de service à héberger pour cette phase.

## Installation

```bash
cd mcp-server
npm install
cp .env.example .env
```

Remplir `.env` :
- `JOSEPH_API_BASE_URL` — `http://127.0.0.1:8000` en local, ou
  `https://joseph.slosar.fr` en pointant sur la prod.
- `JOSEPH_API_TOKEN` — généré côté Joseph avec
  `php artisan joseph:mcp-token <email>` (affiché une seule fois).
- `JOSEPH_DEFAULT_WORKSPACE` — le slug de l'espace à utiliser (ex. `joseph`).

## Lancer

```bash
npm run dev     # via tsx, pas de build
# ou
npm run build && npm start
```

## Brancher sur Claude Code

Ajouter au `.mcp.json` du projet (ou via `claude mcp add`) :

```json
{
  "mcpServers": {
    "joseph": {
      "command": "npx",
      "args": ["tsx", "mcp-server/src/index.ts"],
      "cwd": "/Applications/MAMP/htdocs/Joseph",
      "env": {
        "JOSEPH_API_BASE_URL": "http://127.0.0.1:8000",
        "JOSEPH_API_TOKEN": "...",
        "JOSEPH_DEFAULT_WORKSPACE": "joseph"
      }
    }
  }
}
```

## Outils exposés

Tous en lecture seule : `list_projects`, `get_project`, `list_root_elements`,
`list_children`, `get_element`, `list_meetings`, `list_my_deadlines`. Chaque
outil appelle une route `GET` de `routes/api.php` (préfixe `mcp/v1`),
protégée par le jeton Sanctum et scopée à l'espace configuré — voir le
docblock de chaque contrôleur sous
`app/Http/Controllers/Api/Mcp/` côté Joseph pour le détail des autorisations.

## Tester sans Claude

```bash
npx @modelcontextprotocol/inspector npm run dev
```
