Communitygithub.com

Conseiller Portfolio Robinhood

Conseiller de portefeuille Robinhood — accès en lecture seule aux positions, cotations, fondamentaux, actualités, résultats, notations d'analystes, dividendes et options via MCP. Inclut une stratégie de cache prioritaire, des workflows de page d'entité et une intégration optionnelle avec Obsidian.

Qu'est-ce que Conseiller Portfolio Robinhood ?

Cette compétence permet aux agents IA d'interagir en lecture seule avec un compte Robinhood via le serveur MCP `robinhood-mcp`. Elle expose une douzaine d'outils MCP couvrant l'état du portefeuille, les positions, les cotations en temps réel, les fondamentaux, l'historique des prix, les actualités, les résultats, les notations d'analystes, les dividendes et les options. La compétence met en œuvre une stratégie de cache prioritaire — les données de portefeuille sont mises en cache localement et seules les requêtes obsolètes ou les demandes explicites de données en direct déclenchent des appels MCP. Elle prend en charge les workflows de page d'entité persistante via Obsidian, où chaque recherche de ticker crée ou met à jour une page wiki avec des notes de recherche, l'historique des positions et les fondamentaux. La compétence peut également synchroniser des instantanés de portefeuille immuables avec un coffre Obsidian pour l'analyse historique avec Dataview. La configuration nécessite les informations d'identification Robinhood en tant que variables d'environnement et l'installation de `robinhood-mcp` via uvx ou pip.

Compatible avec✓Claude Code✓Codex CLI~Cursor✓OpenCode✓Windsurf
npx skills add uzairansaruzi/robinhood-agent-skill

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Conseiller Portfolio Robinhood ?

Accès en lecture seule à votre portefeuille Robinhood via le serveur robinhood-mcp. Fournit des données en direct pour les positions, cotations, fondamentaux, actualités, résultats, notations d'analystes, dividendes et options.

Prérequis

1. Compte Robinhood

Vous avez besoin d'un compte Robinhood (gratuit sur robinhood.com).

2. Installation du Serveur MCP

Le paquet robinhood-mcp fournit le serveur MCP. Installez-le avec l'une des commandes suivantes :

# Recommandé — s'exécute via uvx (pas d'installation globale nécessaire, auto-géré)
# Il suffit de l'ajouter à la configuration de votre agent et cela fonctionne. uvx l'installe au premier lancement.

# Alternative — installation pip globale
pip install robinhood-mcp

Note : uvx est fourni par le gestionnaire de paquets Python uv. Installez-le d'abord : curl -LsSf https://astral.sh/uv/install.sh | sh

3. Variables d'Environnement

Définissez ces variables dans le fichier .env de votre agent ou dans le profil de votre shell :

VariableRequiseDescription
ROBINHOOD_USERNAMEOuiVotre email Robinhood
ROBINHOOD_PASSWORDOuiVotre mot de passe Robinhood
ROBINHOOD_TOTP_SECRETSeulement si utilisation de l'app d'authentificationLe secret TOTP de votre configuration d'authentification. Pas nécessaire si vous utilisez la vérification SMS.

4. Configuration de l'Agent

Consultez le répertoire templates/ pour des extraits de configuration prêts à copier-coller pour votre agent. Référence rapide :

Agent Hermes (~/.hermes/config.yaml) :

mcp_servers:
  robinhood:
    command: uvx
    args:
      - robinhood-mcp
    env:
      ROBINHOOD_USERNAME: "${ROBINHOOD_USERNAME}"
      ROBINHOOD_PASSWORD: "${ROBINHOOD_PASSWORD}"
      # ROBINHOOD_TOTP_SECRET: "${ROBINHOOD_TOTP_SECRET}"  # Décommentez pour l'app d'authentification
    timeout: 60
    connect_timeout: 30

Autres agents — consultez le répertoire templates/ pour Claude Desktop, Claude Code, Codex, OpenCode, Cline et Windsurf.

Après avoir ajouté la configuration, redémarrez votre agent. Vérifiez avec : hermes mcp test robinhood (Hermes) ou vérifiez l'état MCP de votre agent.

Outils MCP Disponibles

Ces outils sont enregistrés comme mcp_robinhood_* dans Hermes Agent (le préfixe varie selon l'agent) :

OutilDescription
robinhood_get_portfolioValeur du portefeuille, capitaux propres, pouvoir d'achat, variation du jour
robinhood_get_positionsToutes les participations avec prix de revient, valeur actuelle, P&L
robinhood_get_positionParticipation unique par ticker (plus rapide pour un symbole)
robinhood_get_watchlistActions dans vos listes de surveillance
robinhood_get_quotePrix en temps réel, offre/demande, volume
robinhood_get_fundamentalsRatio P/E, capitalisation boursière, rendement du dividende, fourchette 52 semaines
robinhood_get_historicalsHistorique des prix OHLCV (5 min, 10 min, heure, jour, semaine)
robinhood_get_newsArticles d'actualité récents pour un symbole
robinhood_get_earningsDates de résultats, estimations BPA, réalisations
robinhood_get_ratingsNotations d'analystes achat/conserver/vente
robinhood_get_dividendsHistorique des paiements de dividendes
robinhood_get_options_positionsPositions actuelles sur options
robinhood_search_symbolsRecherche d'actions par nom ou ticker

Cache Local

Les données du portefeuille sont mises en cache localement dans ~/.hermes/data/robinhood/portfolio_cache.json (Hermes) ou ~/.robinhood-mcp/cache.json (autres agents).

Stratégie de Cache Prioritaire

Vérifiez toujours le cache en premier. Appelez les outils MCP uniquement lorsque :

  1. Le cache a plus de 15 minutes ET l'utilisateur a besoin de données en direct
  2. L'utilisateur demande explicitement une actualisation (« rafraîchir mon portefeuille », « obtenir les derniers prix »)
  3. L'utilisateur demande un ticker spécifique non présent dans le cache
  4. L'utilisateur demande des données qui changent rapidement (actualités, cotations en temps réel)

Mise à Jour du Cache

# Utilisateurs d'Hermes Agent
python3 scripts/refresh_cache.py

# Avec des chemins personnalisés
python3 scripts/refresh_cache.py --cache-dir ~/my-data --vault-path ~/my-vault

# Sortie JSON uniquement (sans Obsidian)
python3 scripts/refresh_cache.py --json-only

# Forcer l'actualisation même si le cache est récent
python3 scripts/refresh_cache.py --force

L'agent peut également mettre à jour le cache en ligne lors de toute requête de portefeuille en appelant les outils MCP et en écrivant les résultats dans le fichier de cache.

Workflow de Requête de Portefeuille

Lorsque l'utilisateur demande des informations sur son portefeuille :

  1. Lire le cache pour le contexte (valeur du portefeuille, positions, allocations)
  2. Si les données sont obsolètes (> 15 min) ou si l'utilisateur souhaite des données en direct, appeler les outils MCP
  3. Mettre à jour le cache après toute récupération MCP
  4. Répondre avec le contexte de ses participations réelles — pas de conseils génériques
  5. Référencer son prix de revient, P&L latent et allocation lorsque cela est pertinent
  6. Pour les questions sur les options, recouper avec la stratégie de l'utilisateur si connue

Lorsque l'utilisateur demande un ticker spécifique :

  1. Vérifier si wiki/entities/<ticker>.md existe (si utilisation d'Obsidian)
  2. Le lire pour obtenir la thèse existante et l'historique de recherche
  3. Récupérer les données en direct (cotation, fondamentaux, actualités, notations) via MCP
  4. Répondre avec une synthèse des connaissances du wiki + données en direct
  5. Ajouter une entrée de Notes de Recherche à la page d'entité (si utilisation d'Obsidian)
  6. Si le ticker n'est pas dans le portefeuille, le suivre dans une file d'attente de recherche

Quand Utiliser MCP vs Cache

ScénarioUtilisation
« Quelle est la valeur de mon portefeuille ? »Cache (s'il est assez récent)
« Comment se porte mon NVDA ? »Cache d'abord, MCP si obsolète ou ticker manquant
« Donne-moi une mise à jour complète du portefeuille »MCP (toujours obtenir des données en direct)
« Y a-t-il des actualités sur TSLA ? »MCP (les actualités changent constamment)
« Quelles sont les notations des analystes pour AAPL ? »MCP (les données de recherche sont toujours en direct)
« Montre-moi mes positions sur options »Cache d'abord, MCP si obsolète
« Quels dividendes ai-je reçus ? »Cache d'abord
« Rafraîchir mes données »MCP puis mise à jour du cache

Workflow de Recherche vers Entité (Optionnel — Nécessite Obsidian)

Problème : Les requêtes de recherche sur les actions se perdent dans les sessions de discussion. Solution : Chaque participation ou ticker recherché obtient une page d'entité persistante. La recherche est ajoutée, pas oubliée.

Structure de la Page d'Entité

Chaque ticker reçoit une page dans wiki/entities/<ticker>.md :

---
title: Nom de l'Entreprise
created: AAAA-MM-JJ
updated: AAAA-MM-JJ
type: entity
tags: [ticker, secteur, ...]
---

# Nom de l'Entreprise (TICKER)

Aperçu bref...

## Faits Clés
...

## Thèse d'Investissement
...

## Historique de la Position
> Mis à jour automatiquement. Ne pas éditer manuellement.

### Position Actuelle
| Métrique | Valeur |
|--------|-------|
| Quantité | 50 |
| Coût Moyen | $40.69 |
| Prix Actuel | $45.20 |
| Rendement Total | +10.8% |

### Mises à Jour de Position
- **[2026-04-24]** 50 actions @ coût moyen $40.69

## Notes de Recherche
> L'agent ajoute des entrées datées après chaque requête de recherche.

### [2026-04-24] Dois-je ajouter à HIMS à 30 $ ?
Points clés : [résumé à puces]
Décision : [si l'utilisateur en a énoncé une]

Quand Mettre à Jour les Pages d'Entité

  1. À chaque extraction de portefeuille — Mettre à jour les données de position pour chaque participation
  2. Après chaque requête de recherche — Ajouter une entrée de Notes de Recherche datée
  3. Lors de la création d'une nouvelle entité — Récupérer les fondamentaux, créer la page, l'ajouter à l'index du wiki

File d'Attente de Recherche

wiki/concepts/research-queue.md suit les tickers en cours d'évaluation mais pas encore achetés :

TickerSourceThèse (1 ligne)StatutAjoutéNotes
ABCVidéo YouTubeJeu sur les batteries EVen cours de recherche2026-04-24Mentionné par MKBHD

Valeurs de statut : en cours de recherche → prêt à acheter → (supprimé lors de l'achat) ou passé

Intégration du Coffre Obsidian (Optionnel)

Chaque extraction de portefeuille peut écrire deux fichiers dans votre coffre Obsidian :

FichierComportement
_ephemeral/portfolio/snapshots/AAAA-MM-JJ-HHMM.mdImmuable — un par extraction, données complètes
_ephemeral/portfolio/latest.mdÉcrasé — état actuel + écarts par rapport à l'instantané précédent

Frontmatter pour Dataview

Les deux fichiers incluent un frontmatter YAML :

---
snapshot_time: 2026-04-24T18:58:02Z
date: 2026-04-24
time: 14:58
total_equity: 42700.94
day_change: -834.73
day_change_pct: -1.92
positions_count: 16
options_count: 1
dividends_ytd: 1.68
type: portfolio-snapshot
---

Cela permet des requêtes Dataview comme :

TABLE date, total_equity, day_change_pct
FROM "_ephemeral/portfolio/snapshots"
SORT snapshot_time DESC

Calcul des Écarts

Le fichier latest.md se compare à l'instantané le plus récent et met en évidence :

  • 🆕 Nouvelles positions (achetées depuis la dernière extraction)
  • ❌ Positions fermées (vendues depuis la dernière extraction)
  • 📊 Mouvements significatifs (>5 % de variation de prix OU >1 % de changement d'allocation)
  • Variation des capitaux propres depuis le dernier instantané

Pour activer l'intégration Obsidian, définissez l'argument --vault-path lors de l'exécution de refresh_cache.py, ou définissez la variable d'environnement ROBINHOOD_VAULT_PATH.

Directives de Conseil

  1. Répondez toujours avec le contexte des participations réelles de l'utilisateur — pas de conseils génériques
  2. Référencez le prix de revient, le P&L latent et les pourcentages d'allocation lorsque cela est pertinent
  3. Pour les questions sur les options, comprenez la stratégie de l'utilisateur (par ex., breakout 0DTE)
  4. Lorsque vous recommandez des actions, montrez les calculs (allocation actuelle, risque/rendement)
  5. Ne suggérez jamais de transactions sauf si l'utilisateur le demande explicitement
  6. Signalez le risque de concentration lorsqu'une seule position dépasse 20 % du portefeuille
  7. Recoupez les actualités avec les fondamentaux — ne réagissez pas uniquement aux gros titres

Sécurité et Confidentialité

  • Aucune information d'identification stockée dans la compétence — l'authentification se fait via des variables d'environnement dans la configuration MCP
  • Accès en lecture seule — le serveur MCP ne peut pas exécuter de transactions ou modifier les paramètres du compte
  • Traitement local — les informations d'identification sont utilisées localement pour l'authentification ; les jetons de session sont mis en cache dans ~/.tokens/robinhood.pickle
  • Cache uniquement local — ~/.hermes/data/robinhood/ n'est jamais transmis
  • Coffre Obsidian — les instantanés sont écrits uniquement dans le coffre local de l'utilisateur

Dépannage

ProblèmeSolution
« Non connecté »Vérifiez que les variables d'environnement ROBINHOOD_USERNAME et ROBINHOOD_PASSWORD sont correctement définies
« Caractère non base32 trouvé »ROBINHOOD_TOTP_SECRET contient des caractères non valides — seulement A-Z et les chiffres 2-7. Supprimez cette variable si vous utilisez la vérification SMS
Limitation de débit (erreurs 429)robin_stocks n'a pas de limitation de débit intégrée. Mettez en pause l'activité pendant plusieurs minutes et réessayez
Le serveur MCP ne démarre pasAssurez-vous que uvx est installé (pip install uv ou `curl -LsSf https://astral.sh/uv/install.sh
Échec du script de cacheAssurez-vous que robin_stocks et pyotp sont installés : pip install robin_stocks pyotp
Cotations obsolètesLes cotations Robinhood sont ponctuelles, pas en streaming en direct. Rafraîchissez via MCP pour les dernières données

Liens Connexes

  • robinhood-mcp — Le serveur MCP sous-jacent
  • robin_stocks — Wrapper d'API Robinhood non officiel
  • portfolio-obsidian-bridge — Synchronisation Obsidian générique pour tout courtier
  • llm-wiki — Architecture wiki pour la recherche persistante
  • obsidian — Opérations du coffre Obsidian

Skills associés