prospector-web
v1.0.6
Published
Interface web locale pour Prospector — prospection LinkedIn via Claude + Airtable
Readme
Prospector Web
Interface web locale pour piloter la prospection LinkedIn via Claude AI + Airtable + Unipile.
Lancez npx prospector-web dans un dossier, ouvrez http://localhost:3001 — Claude guide le setup et gere votre pipeline de prospection en langage naturel.
Fonctionnement
Navigateur (chat-local.html)
| POST /chat (SSE)
v
server.js (Express, port 3001)
| genere .mcp.json depuis .prospector.json
| spawn: claude -p --mcp-config .mcp.json
v
Claude CLI (compte Pro de l'utilisateur)
| |
v v
Airtable API mcp-unipile-server (VPS)
(token client) |
v
Unipile API -> LinkedIn- Claude CLI s'execute localement — c'est le compte Pro de l'utilisateur qui est facture
- Token Airtable : stocke sur la machine de l'utilisateur (
.prospector.json), jamais transmis - Cle API Unipile : stockee sur le VPS de l'editeur, jamais visible du client
- Rien ne transite vers le navigateur
Prerequis
- Node.js >= 18 — seule installation manuelle requise
- Claude Code connecte a votre compte Claude Pro (
claude login) - Un compte Airtable avec le template Prospector
- (Optionnel) Un compte Unipile (pour les envois LinkedIn)
Installation
Installation simplifiee (macOS / Linux / WSL)
curl -fsSL https://mcp-unipile.deers.fr/install.sh | shCe script automatise :
- installation de Node.js (si absent)
- installation de Claude Code (si absent)
claude login- creation de
~/prospectoret lancement denpx prospector-web
Si le terminal macOS bloque l'execution directe d'un script distant (curl | sh), utilisez ce fallback :
curl -fsSL -o /tmp/prospector-install.sh https://mcp-unipile.deers.fr/install.sh
sh /tmp/prospector-install.shWindows (PowerShell / CMD)
Option recommandee : utiliser WSL puis la commande ci-dessus.
Option native :
# 1. Telecharger et installer Node.js LTS
# https://nodejs.org
# 2. Installer Claude Code
curl -fsSL https://claude.ai/install.sh | sh
# 3. Se connecter a Claude (une seule fois)
claude login
# 4. Lancer Prospector
mkdir %USERPROFILE%\\prospector
cd %USERPROFILE%\\prospector
npx prospector-webRelancer apres le premier demarrage
cd ~/prospector
npx prospector-webOuvrir http://localhost:3001
Premier lancement
Au premier message, Claude pose 3 questions et configure tout automatiquement.
Etape A — Token Airtable
Claude demande votre Personal Access Token Airtable.
1. Ouvrir : https://airtable.com/create/tokens
2. Cliquer "Create new token"
3. Remplir :
- Nom : Prospector Claude
- Scopes : data.records:read / write + schema.bases:read / write
- Access : "All current and future bases"
4. Cliquer "Create token"
5. Copier le token (commence par "pat...")
Il ne sera affiche qu'une seule fois.Etape B — Base ID Airtable
Claude demande l'ID de votre base Airtable Prospector.
1. Ouvrir votre base Airtable dans le navigateur
2. L'URL ressemble a : https://airtable.com/appXXXXXXXXXXXXXX/...
3. Copier la partie "appXXXXXXXXXXXXXX"Etape C — Compte Unipile (optionnel)
Claude demande, si vous souhaitez activer l'envoi LinkedIn :
- Unipile Account ID — identifiant de votre compte LinkedIn dans Unipile
- MCP Secret — fourni par l'administrateur Prospector
Ces 3 valeurs sont enregistrees dans .prospector.json (local, jamais committe).
Fichier de configuration .prospector.json
Cree automatiquement par Claude dans le dossier de lancement :
{
"AIRTABLE_API_KEY": "pat...",
"baseId": "appXXXXXXXXXXXXXX",
"UNIPILE_ACCOUNT_ID": "...",
"UNIPILE_MCP_SECRET": "..."
}Securiser le fichier apres creation :
chmod 600 ~/prospector/.prospector.jsonCommandes disponibles
| Commande | Description |
|---|---|
| pipeline | Vue kanban du pipeline par statut |
| hot-leads | Prospects chauds a traiter en priorite |
| relances | Relances a effectuer |
| meeting | Gestion des rendez-vous |
| quota | Quotas LinkedIn restants + etat des automatisations |
| toggle | Activer / mettre en pause les automatisations |
| search [nom] | Rechercher un prospect |
| add-lead | Ajouter un prospect manuellement |
| new-campaign | Creer une offre + campagne |
| list-offers | Lister les offres |
| list-campaigns | Lister les campagnes |
| edit-offer | Modifier une offre existante |
| edit-campaign | Modifier / piloter une campagne |
| stats | Dashboard statistiques |
Toute demande hors commande est traitee via les outils Unipile (messages LinkedIn, conversations, profils...).
Depannage
| Symptome | Cause | Solution |
|---|---|---|
| "Failed to fetch" | Serveur non demarre | npx prospector-web |
| "Claude CLI introuvable" | claude absent du PATH | curl -fsSL https://claude.ai/install.sh \| sh |
| "claude login" necessaire | Pas authentifie | claude login puis relancer |
| Port 3001 deja utilise | Autre instance en cours | Fermer l'ancienne instance ou changer de port |
| Airtable ne repond pas | Token manquant ou invalide | Verifier .prospector.json |
| Unipile ne repond pas | Secret incorrect ou VPS inaccessible | Verifier UNIPILE_MCP_SECRET |
| Setup ne se declenche pas | CLAUDE.md deja present | Supprimer CLAUDE.md du dossier -> relancer |
| "Claude a quitte avec le code 1" | Erreur interne Claude | Voir logs dans le terminal |
Guide editeur
Structure des repertoires
| | PKG_DIR (__dirname) | USER_DIR (process.cwd()) |
|---|---|---|
| Contenu | Code du package npm | Config utilisateur |
| Fichiers | server.js, chat-local.html, CLAUDE.md | .prospector.json, .mcp.json |
| Dans git | oui | non (gitignored) |
Publication npm
npm login
npm publishMise a jour de version :
npm version patch # 1.0.1 -> 1.0.2
npm publishModifier le prompt systeme
Editer CLAUDE.md : il est copie dans USER_DIR au premier lancement si absent.
Pour forcer la mise a jour chez un client : supprimer CLAUDE.md de son dossier et relancer.
Deploiement du serveur MCP Unipile
Le serveur MCP Unipile est un composant separe a deployer sur votre VPS. Voir le repository mcp_unipile_server.
Une fois deploye, l'URL du serveur est configuree dans server.js :
const unipileMcpUrl = cfg.UNIPILE_MCP_URL || 'https://mcp-unipile.deers.fr/mcp/unipile';Modifier cette valeur avant de publier sur npm si vous changez de domaine.
Securite
| Donnee | Stockee ou | Visible par |
|---|---|---|
| AIRTABLE_API_KEY | .prospector.json (client) | Client uniquement |
| UNIPILE_API_KEY | .env VPS | Serveur VPS uniquement |
| UNIPILE_ACCOUNT_ID | .prospector.json (client) | Client + Unipile API |
| MCP_SECRET | .env VPS + .prospector.json client | Les deux |
| Cles dans le navigateur | — | jamais |
Architecture des fichiers
prospector_web_airtable/
|-- server.js <- serveur Express + spawn claude CLI
|-- chat-local.html <- interface web (markdown, mode jour/nuit)
|-- CLAUDE.md <- prompt systeme Prospector (setup + commandes)
|-- package.json <- bin: prospector-web, files, dependances
|-- doc.md <- documentation technique complete
|-- README.md
`-- .gitignore
Generes dans USER_DIR (dossier ou le client lance la commande) :
|-- CLAUDE.md <- copie depuis le package si absent
|-- .mcp.json <- regenere a chaque requete /chat
`-- .prospector.json <- cree par Claude lors du setup initial