stack technique

trois briques visibles, modulaires,ouvertes.

on n'invente rien de magique. on assemble une cli python, un serveur mcp, et un chassis web. chaque brique est lisible, testable, remplaçable. le harnais qu'on installe chez vous est composé de ces trois briques + le contexte métier de votre filière.

01

cli oto

$ pipx install oto-cli

la couche connecteurs. python pur, sortie json sur stdout. branchable dans n'importe quel script ou pipeline. 120+ tools répartis en 14 namespaces.

voir le catalogue
02

serveur mcp

$ mcp.oto.ninja/mcp

expose les tools cli à claude (desktop, code, le chat) via mcp streamable http. auth logto, gestion clés api per-user. l'agent parle directement aux apis sans plomberie.

connecter à claude
03

chassis scout

$ @otomata/scout-frontend

optionnel — si vous voulez une app dédiée (dashboard, cockpit, listes filtrables). vue 3 + fastify white-label, on plug votre data model + votre thème. déployable sur votre domaine.

sur github

les connecteurs

ce que claude sait enchaîner pour vous.

l'agent connaît ces namespaces à la connexion (lazy-load, ne pollue pas son contexte). il choisit lui-même quels tools enchaîner selon votre demande. exemple : « trouve les 10 boîtes biotech qui ont levé > 2M€ ces 12 mois, avec un cto + son email »crunchbaselinkedinhunter.

fr_*données entreprise france

sirene/insee, inpi (bilans, dirigeants), bodacc (événements légaux), boamp (appels d'offres). open data + clés gratuites.

linkedin_*profils, entreprises, employés

scraping linkedin via browser persistant (profil chrome dédié). recherche entreprise + décideurs + organigramme.

hunter_*emails domaine + verify

recherche emails sur un domaine, finder par nom+entreprise, vérification deliverability.

kaspr_*enrichissement linkedin → contacts

à partir d'un profil linkedin, retourne email + téléphone vérifiés. fallback automatique sur quota.

attio_*crm attio (push qualifié)

companies, people, deals, notes, tasks, lists. push des prospects qualifiés dans votre crm sans saisie manuelle.

serper_*recherche web + news + scrape

résultats google, actualités presse, scrape une page. signaux de marché frais.

crunchbase_*startups, levées de fonds

fiche entreprise + funding rounds + dirigeants. utile pour signaux de croissance.

lemlist_*campagnes cold outreach

campagnes, leads, activités, stats. boucle d'enrichissement → outreach automatisée.

méthode

la doctrine

embarquée.

chaque mission a sa propre doctrine — règles de qualification, scoring, ordre d'exploration, verdicts. on l'embarque côté serveur mcp en source de vérité unique. l'agent charge la doctrine à la demande via get_claude_md().

résultat : un seul endroit à modifier quand la doctrine évolue. tous les clients (claude code, claude.ai, sdk) voient la même version. pas de drift entre docs et code.

# MCP server (server-side)
@tool
def get_claude_md() -> str:
# doctrine du harnais (workflow, verdicts, règles)
return DOCTRINE_MARKDOWN
# Claude, à la connexion :
SERVER_INSTRUCTIONS = «pour la doctrine, appelle get_claude_md»
# Claude, à l'usage :
get_claude_md() # ~4500 tokens à la demande
get_skill_explore("sitadel-pc") # grille spécifique

gain mesuré sur la mission générations renouvelables : ~57k tokens (eager) → ~5k tokens (lazy). l'agent travaille plus précisément, plus longtemps, moins cher.

notre règle

open data dès que possible. pas de fichier acheté, pas de scraping gris.

données publiques d'abord. sirene, inpi, bodacc, boamp, enedis, sitadel, beges, osm. la france est un trésor open data sous-exploité par le b2b.

apis officielles ensuite. hunter, kaspr, crunchbase, serper. payantes mais légitimes. clés en self-serve sur oto.ninja/account.

linkedin via profil browser. session navigateur persistante, pas d'achat de cookies. respect des limites + ralentissement automatique.