Meta AI Demos MCP
by ErrorNoName
README.md
# Meta AI Demos MCP
Serveur [MCP](https://modelcontextprotocol.io/) pour utiliser les outils **Meta AI Demos** ([aidemos.meta.com](https://www.aidemos.meta.com)) directement depuis **Cursor**, sans installer les modèles localement.
> **Avertissement** : client non officiel, reverse-engineered. Non affilié à Meta. Utilisez conformément aux [Conditions d'utilisation](https://www.aidemos.meta.com) de Meta AI Demos.
## Fonctionnalités
- Authentification par cookies de session (`fair_sess`, `fair_csrf`, `datr`)
- Rafraîchissement automatique des tokens page (`lsd`, `fb_dtsg`)
- API GraphQL Relay vers `https://www.aidemos.meta.com/api/graphql/`
- Outils MCP pour Segment Anything (SAM3) :
- Vérifier la session
- Lister / détailler les templates galerie
- Upload média vers les serveurs Meta
- Appels GraphQL génériques (31 opérations Relay connues)
## Prérequis
- **Node.js 18+**
- Compte Meta connecté sur [aidemos.meta.com/segment-anything/gallery](https://www.aidemos.meta.com/segment-anything/gallery)
## Installation
```bash
git clone https://github.com/ErrorNoName/MetaAPI.git
cd MetaAPI
npm install
npm run build
```
## Configuration des cookies
### Option A — Fichier (recommandé)
1. Connectez-vous sur [aidemos.meta.com](https://www.aidemos.meta.com)
2. Ouvrez DevTools (F12) → **Application** → **Cookies** → `https://www.aidemos.meta.com`
3. Copiez `fair_sess`, `fair_csrf`, `datr`
4. Créez `cookies.json` à partir de l'exemple :
```bash
copy cookies.example.json cookies.json
```
```json
{
"fair_sess": "VOTRE_FAIR_SESS",
"fair_csrf": "VOTRE_FAIR_CSRF",
"datr": "VOTRE_DATR"
}
```
### Option B — Variables d'environnement
```bash
set META_AIDEMOS_FAIR_SESS=...
set META_AIDEMOS_FAIR_CSRF=...
set META_AIDEMOS_DATR=...
```
Ou `META_AIDEMOS_COOKIES_FILE=C:\chemin\vers\cookies.json`
## Cursor — configuration MCP
Ajoutez dans `.cursor/mcp.json` (ou les paramètres MCP globaux) :
```json
{
"mcpServers": {
"meta-ai-demos": {
"command": "node",
"args": ["C:\\chemin\\vers\\MetaAPI\\dist\\index.js"],
"env": {
"META_AIDEMOS_COOKIES_FILE": "C:\\chemin\\vers\\MetaAPI\\cookies.json"
}
}
}
}
```
Redémarrez Cursor. Les outils `aidemos_*` apparaissent dans le chat Agent.
## Outils MCP disponibles
| Outil | Description |
|-------|-------------|
| `aidemos_check_session` | Vérifie login + acceptation TOS |
| `aidemos_list_templates` | Templates SAM3 de votre galerie |
| `aidemos_get_template` | Détails d'un template par ID |
| `aidemos_list_community_templates` | Templates communautaires |
| `aidemos_upload_media` | Upload image/vidéo/audio |
| `aidemos_get_media` | Statut et URL CDN d'un média |
| `aidemos_graphql` | Appel GraphQL Relay arbitraire |
| `aidemos_list_operations` | Liste des 31 opérations connues |
| `aidemos_refresh_session` | Force le refresh des tokens |
## Exemple d'utilisation dans Cursor
```
Vérifie ma session Meta AI Demos, puis liste les templates SAM disponibles.
```
```
Upload l'image C:\Photos\test.jpg via Meta AI Demos (SAM3_IMAGE).
```
## Architecture
```
Browser cookies (fair_sess, fair_csrf, datr)
↓
MetaAIDemos MCP Server
↓
GET aidemos.meta.com → extract lsd + fb_dtsg
↓
POST /api/graphql/ (RelayModern + x-csrf-token)
↓
Serveurs Meta FAIR (Segment Anything, etc.)
```
### Opérations Relay connues
Les `doc_id` GraphQL sont extraits des bundles JS Meta et mappés dans `src/constants.ts`. Exemples :
- `SAMRootViewerQuery` — session utilisateur
- `SAM3DemoRootTemplateGalleryQuery` — galerie templates
- `useSAMUploadMediaMutation` — upload média
- `SAM3EditorContextProviderSessionQuery` — session éditeur
## Limitations
- **Inférence SAM (masques)** : une partie du pipeline (streaming WASM `streamMasks`) s'exécute côté navigateur. Ce MCP couvre l'API serveur (upload, templates, GraphQL). L'inférence complète en headless nécessiterait un navigateur automatisé (hors scope v1).
- **Expiration cookies** : `fair_sess` expire périodiquement — re-exportez depuis le navigateur si les requêtes échouent.
- **Région** : aidemos.meta.com peut être indisponible selon la région.
## Développement
```bash
npm run dev # build + start
node scripts/test-graphql.js # test GraphQL manuel (cookies hardcodés — dev only)
```
## Licence
MIT — voir [LICENSE](LICENSE).
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues