Serveur Beyond MCP
Un serveur extensible Model Context Protocol qui fournit un accès standardisé aux données des plateformes sociales et aux données onchain. Il prend actuellement en charge Farcaster (via l'API Neynar) avec un espace réservé pour l'intégration de Twitter. D'autres plateformes telles que Telegram et les données onchain seront bientôt ajoutées.
Caractéristiques
- Conforme au MCP: Mise en œuvre complète de la spécification Model Context Protocol
- Multiplateforme: Conçu pour prendre en charge plusieurs plateformes de médias sociaux
- Extensible: Facilité d'ajout de nouveaux fournisseurs de plateformes
- Bien formaté: formatage de contexte optimisé pour la consommation LLM
- Transport flexible: Supporte les transports stdio et SSE/HTTP
Plates-formes supportées
- Farcaster: Implémentation complète via l'API Neynar
- Twitter: Placeholder (non implémenté)
Pour commencer
Conditions préalables
- Node.js 16+
- Clé API Neynar (pour l'accès à Farcaster) https://neynar.com/
Installation de l'application
- Cloner le dépôt
git clone https://github.com/yourusername/beyond-mcp-server.git cd beyond-mcp-server
- Installer les dépendances
npm install
- Créez un fichier .env à partir du modèle
cp .env.example .env # Editez .env avec vos clés API
Configurez vos variables d'environnement
- Obligatoire: Définissez
NEYNAR_API_KEY
dans votre fichier .env - Vous pouvez obtenir une clé API Neynar à l'adresse https://neynar.com/
- Sans clé API valide, les fonctionnalités de Farcaster ne fonctionneront pas
- Obligatoire: Définissez
Construire et démarrer le serveur
npm run build npm start # Pour le mode stdio (par défaut) # OU npm run start:http # Pour le mode HTTP/SSE
Utilisation avec Claude for Desktop
- Construire le serveur
npm run build
Assurez-vous que votre fichier .env est correctement configuré avec vos clés API
- Le serveur cherchera le fichier .env dans les emplacements suivants
- Répertoire de travail actuel
- Répertoire racine du projet
- Répertoires parents (jusqu'à 3 niveaux)
- Vous pouvez également définir des variables d'environnement directement dans votre système
- Le serveur cherchera le fichier .env dans les emplacements suivants
Ajoutez le serveur à votre configuration Claude Desktop à l'adresse suivante :
- macOS : ~/Bibliothèque/Application Support/Claude/claude_desktop_config.json
- Windows : %APPDATA%\Claudeclaude_desktop_config.json
{ "mcpServers" : { "beyond-social" : { "command" : "/usr/local/bin/node", "args" : ["/full/path/to/beyond-mcp-server/dist/index.js", "--stdio" ] } } }
- Vous pouvez également transmettre la clé API et d'autres variables d'environnement directement dans la configuration de Claude Desktop(recommandé) :
{ "mcpServers" : { "beyond-social" : { "command" : "/usr/local/bin/node", "args" : ["/full/path/to/beyond-mcp-server/dist/index.js", "--stdio" ], "env" : { "NEYNAR_API_KEY" : "YOUR_API_KEY_HERE", "ENABLE_FARCASTER" : "true", "ENABLE_TWITTER" : "false" } } }
- Redémarrer Claude for Desktop
Capacités MCP
Ressources
social://{platform}/{query}/search
- Recherche de contenu sur une plateformesocial://{platform}/user/{userId}/profile
- Obtenir le profil de l'utilisateursocial://{platform}/wallet/{walletAddress}/profile
- Obtenir le profil de l'utilisateur par l'adresse du portefeuille (Farcaster uniquement)social://{platform}/user/{userId}/balance
- Obtenir le solde du portefeuille de l'utilisateur (Farcaster uniquement)- Accepte soit le FID (numérique), soit le nom d'utilisateur
- Si le nom d'utilisateur est fourni, il est automatiquement converti en FID avant de récupérer le solde
social://{platform}/wallet/{walletAddress}/profile
- Obtenir le profil de l'utilisateur par adresse de portefeuillesocial://{platform}/user/{userId}/content
- Obtenir le contenu de l'utilisateursocial://{platform}/thread/{threadId}
- Obtient le fil de la conversationsocial://{platform}/trending
- Obtenir les sujets en voguesocial://{platform}/trending-feed
- Obtenir le contenu d'un flux de tendances avec prise en charge de plusieurs fournisseurs (Farcaster uniquement)- Fournisseurs supportés : neynar (par défaut), openrank, mbd
- Paramètres : timeWindow (1h, 6h, 12h, 24h, 7j, 30j), limit
social://{plateforme}/channels/search
- Recherche de chaînes sur une plateforme (Farcaster uniquement)- Paramètres : query, limit, cursor
- Renvoie les détails de la chaîne, y compris le nom, la description, le nombre de followers et les métadonnées
social://{platform}/channels/bulk-search
- Recherche de plusieurs canaux en parallèle (Farcaster uniquement)- Paramètres : queries (array), limit, cursor
- Renvoie les résultats pour chaque requête avec les détails du canal et les informations de pagination
Outils
search-content
- Recherche de contenu sur une plateforme socialeget-user-profile
- Obtenir des informations sur le profil d'un utilisateurget-user-profile-by-wallet
- Obtenir le profil d'un utilisateur en utilisant l'adresse de son portefeuille (Farcaster uniquement)get-user-balance
- Obtenir le solde du portefeuille de l'utilisateur (Farcaster uniquement)- Accepte le FID (numérique) ou le nom d'utilisateur
- Gère automatiquement la conversion du nom d'utilisateur en FID
get-user-content
- Obtenir le contenu d'un utilisateur spécifiqueget-thread
- Obtient un fil de conversationget-trending-topics
- Permet d'obtenir les sujets de conversation en coursgetTrendingFeed
- Obtient un flux de tendances avec support multi-fournisseurs (Farcaster uniquement)get-wallet-profile
- Obtenir un profil basé sur l'adresse du portefeuillesearch-channels
- Recherche de canaux sur une plateforme (Farcaster uniquement)- Paramètres : query, limit, cursor
- Renvoie des informations détaillées sur les chaînes, notamment le nombre de followers et les métadonnées
search-bulk-channels
- Recherche de plusieurs canaux en parallèle (Farcaster uniquement)- Paramètres : queries (array), limit, cursor
- Renvoie les résultats pour chaque requête avec les détails des chaînes et les informations de pagination
Invitations
analyze-thread
- Analyse un fil de discussion sur les médias sociauxsummarize-user-activity
- Résume l'activité d'un utilisateurexplore-trending-topics
- Explore les sujets en vogue sur une plateformeanalyze-search-results
- Analyser les résultats de recherche d'une requêteexplore-trending-feed
- Analyse le contenu d'un flux de tendances chez différents fournisseursget-wallet-profile
- Obtenir et analyser le profil de l'utilisateur par adresse de portefeuillecheck-user-balance
- Analyser le solde du portefeuille de l'utilisateur et ses avoirs- Fonctionne avec les entrées FID et nom d'utilisateur
- Gère la résolution automatique du FID pour les noms d'utilisateur
explore-channels
- Analyse et explore les chaînes sur une plateforme- Fournit des informations sur la popularité et le contenu des chaînes
- Permet de découvrir des chaînes pertinentes sur la base de critères de recherche
explore-bulk-channels
- Analyser et comparer plusieurs chaînes en parallèle- Recherche et compare efficacement plusieurs canaux
- Fournit des informations sur les relations et les tendances entre les canaux
Extension avec de nouveaux fournisseurs
Pour ajouter un nouveau fournisseur de plateforme sociale :
- Créez un nouveau répertoire dans
src/providers/
- Mettre en œuvre l'interface
ContentProvider
- Enregistrer le fournisseur dans le registre
Exemple :
import { ContentProvider } from '../interfaces/provider' ; export class MyPlatformProvider implements ContentProvider { public name = 'myplatform' ; public platform = 'myplatform' ; // Implémentation de toutes les méthodes requises }
Développement
Exécution en mode développement
npm run dev # mode stdio npm run dev:http # mode HTTP
Test
npm test
Linting
npm run lint npm run lint:fix
Licence
MIT
Contribuer
Les contributions sont les bienvenues ! N'hésitez pas à soumettre une Pull Request.
Changelog
Tous les changements notables apportés à ce projet seront documentés dans ce fichier.
[1.0.0] - 2025-Mar-10
Ajouté
- Version initiale
- Intégration de Farcaster via l'API Neynar
- Implémentation d'un serveur compatible MCP
- Support des modes stdio et HTTP
[1.0.1] - 2025-Mar-19
Ajouté
- Ajout de nouveaux outils et ressources pour récupérer le profil de l'utilisateur avec l'adresse du portefeuille
- Ajout de nouveaux tests
[1.0.2] - 2025-Mar-21
Ajouté
- Ajout d'une fonctionnalité pour récupérer les soldes des portefeuilles des utilisateurs de Farcaster via l'ID ou le nom d'utilisateur
- Mise en place d'un support multi-fournisseurs pour le contenu des flux de tendances
- Amélioration de updateUserProfile avec des détails supplémentaires sur l'utilisateur
- Ajout de tests complets pour assurer la fiabilité et la performance
[1.0.3] - 2025-Mar-24
Ajouté
- Ajout de la prise en charge de la récupération des informations sur les chaînes de télédiffusion uniques et en vrac