Que fait neox ?
Utilisez un iPhone comme serveur média MCP local via l'application Neox : recherchez la bibliothèque photo/vidéo du téléphone par contenu (indexation visuelle), analysez sur l'appareil (classification/OCR/identification/transcription), et récupérez les fichiers originaux en WiFi via HTTP segmenté. Inclut le pont Neoy — un point de terminaison HTTP annoncé par Bonjour que vous implémentez et exécutez (via un hook de session) qui reçoit les transferts de tâches « Run Agent Task » du téléphone. Utilisez-le lorsqu'une tâche nécessite les médias du téléphone de l'utilisateur : "trouver des photos de X", "récupérer les dernières vidéos de mon téléphone", "créer un vlog à partir des enregistrements".
Fonctionnalités
- Recherche par vision : indexe et recherche les photos/vidéos par description textuelle (grâce à l'indexation visuelle sur l'appareil).
- Analyse sur l'appareil : classification, OCR, identification de personnes, transcription audio sans quitter l'iPhone.
- Transfert WiFi : récupérez les fichiers originaux via HTTP segmenté avec contrôle de plage (
Range). - Pont Neoy : point de terminaison HTTP personnalisé annoncé par Bonjour, recevant les tâches "Run Agent Task" déléguées par le téléphone.
Prérequis
- iPhone avec l'application Neox installée (disponible sur l'App Store).
- Réseau WiFi partagé entre l'ordinateur et l'iPhone.
- Environnement d'exécution : macOS, Linux ou Windows avec Python 3.9+.
Installation
npm install @anthropic/neox
# ou
pip install neox-mcp
Utilisation
Démarrer le serveur MCP
npx neox-server --port 3000
Démarrer le pont Neoy (optionnel)
# neoy_bridge.py
import http.server
import json
class NeoyHandler(http.server.BaseHTTPRequestHandler):
def do_POST(self):
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length)
task = json.loads(post_data)
# Traiter la tâche reçue
print(f"Tâche reçue : {task}")
self.send_response(200)
self.end_headers()
self.wfile.write(b'{"status": "ok"}')
if __name__ == '__main__':
server = http.server.HTTPServer(('', 8080), NeoyHandler)
print("Pont Neoy en écoute sur le port 8080...")
server.serve_forever()
Exemple de requête
{
"tool": "search_media",
"params": {
"query": "photos de coucher de soleil",
"limit": 5
}
}
Configuration
| Variable d'environnement | Description | Valeur par défaut |
|---|---|---|
NEOX_HOST | Hôte du serveur Neox | localhost |
NEOX_PORT | Port du serveur Neox | 3000 |
NEOY_ENABLED | Activer le pont Neoy | false |
NEOY_PORT | Port du pont Neoy | 8080 |
Documentation complète
Consultez le dépôt GitHub pour des exemples avancés et la documentation de l'API.