MCP TS Toolkit
A comprehensive MCP server providing secure tools for filesystem operations, Git management, web search, document conversion, npm/.NET project management, and AI generative capabilities (image/video/audio generation and processing) via PiAPI.ai integration.
README
Serveur MCP TS Toolkit
Un serveur de Protocole de Contexte de Modèle (MCP) qui fournit une suite complète d'outils sécurisés et configurables pour manipuler le système de fichiers, effectuer des recherches web, convertir des documents, gérer des projets npm et .NET, et accéder aux capacités d'IA générative via l'API PiAPI.ai.
Ce serveur intègre une validation stricte des paramètres via Zod, une gestion avancée des logs avec Winston, et un système de configuration flexible permettant de contrôler précisément l'accès aux différents outils et ressources.
Version actuelle : 1.8.0
Configuration
- Configurer le serveur MCP dans votre configuration Claude :
Sur MacOS : ~/Library/Application Support/Claude/claude_desktop_config.json
Sur Windows : %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"toolskit": {
"command": "node",
"args": ["/chemin/vers/toolskit/build/index.js"],
"env": {
"MCP_TOOLSKIT_CONFIG_PATH": "C:/tmp/config.json"
}
}
}
}
Configuration PiAPI
Pour utiliser les outils d'IA, configurez votre clé API PiAPI dans le fichier de configuration :
{
"PiAPI": {
"ApiKey": "votre_clé_api_piapi",
"IsFreePlan": false,
"IgnoreSSLErrors": false,
"OuputDirectory": "C:/tmp/piapi_output"
}
}
Fonctionnalités
Ce serveur fournit plusieurs catégories d'outils :
🗂️ Outils FileSystem
- Lister les répertoires autorisés
- Lire plusieurs fichiers simultanément
- Rechercher des fichiers selon des critères
- Déplacer des fichiers
- Afficher l'arborescence des répertoires
- Créer des répertoires
- Éditer des fichiers avec diffs
- Écrire des fichiers
- Rechercher dans le contenu des fichiers
🔄 Outils Git
- Cloner des dépôts
- Gérer les commits
- Synchroniser avec les dépôts distants (pull/push/fetch)
- Gérer les branches (checkout)
- Gérer les conflits
- Comparer des versions (diff)
- Consulter l'historique (log)
- Vérifier le statut
🌐 Outils Web
- Effectuer des recherches via le moteur Brave Search
- Récupérer le contenu de pages web
🎨 Outils d'IA Générative (PiAPI)
Génération d'Images
- piapi_text_to_image : Génération d'images à partir de descriptions textuelles
- piapi_gemini_image_generation : Génération et édition d'images avec Gemini 2.5 Flash Image
- piapi_derive_image : Variation d'images existantes
- piapi_modify_image : Modification d'images (inpaint/outpaint)
- piapi_generate_image_controlnet : Génération avec ControlNet et LoRA
- piapi_midjourney_imagine : Génération via Midjourney
- piapi_show_image : Affichage d'images
Traitement d'Images
- piapi_image_faceswap : Échange de visages
- piapi_image_rmbg : Suppression d'arrière-plan
- piapi_image_segment : Segmentation d'images
- piapi_image_upscale : Amélioration de résolution
Génération de Vidéos
- piapi_video_generation : Génération de vidéos à partir de texte/images
- piapi_generate_video_hunyuan : Génération via Hunyuan
- piapi_generate_video_skyreels : Génération via Skyreels
- piapi_generate_video_wan : Génération via Wan
- piapi_generate_video_kling : Génération via Kling
- piapi_generate_video_effect_kling : Effets vidéo Kling
- piapi_generate_video_luma : Génération via Luma
Traitement de Vidéos
- piapi_video_faceswap : Échange de visages dans les vidéos
- piapi_video_upscale : Amélioration de résolution vidéo
Génération Audio/Musique
- piapi_music_generation : Génération de musique avec ou sans paroles
- piapi_extend_music : Extension de musiques existantes
- piapi_generate_music_suno : Génération via Suno
- piapi_generate_music_for_video : Musique pour vidéos
- piapi_tts_zero_shot : Synthèse vocale zero-shot
Modélisation 3D
- piapi_image_to_3d : Conversion d'images en modèles 3D
Utilitaires
- piapi_get_task_status : Surveillance du statut des tâches
📄 Outils Pandoc
- Convertir des documents Markdown vers d'autres formats (DOCX, PPTX, HTML)
📦 Outils NPM
- Installer les dépendances d'un projet
- Construire un projet
⚙️ Outils .NET
- Exécuter des opérations sur les solutions .NET (tests unitaires, rapports)
- Analyser et sérialiser des fichiers source C#
- Analyser les dépendances C#
🕐 Outils Système
- Obtenir la date et l'heure actuelles
Installation
Prérequis
- Node.js et npm installés
- Git installé (pour les outils Git)
- Pandoc installé (pour les conversions de documents)
- SDK .NET (pour les outils .NET)
- Une clé API Brave Search (pour les recherches web)
- Une clé API PiAPI.ai (pour les outils d'IA générative)
Installation
- Installer les dépendances :
npm install
- Compiler le serveur :
npm run build
Outils disponibles
🗂️ Système de fichiers
toolskit:list_allowed_directories
Liste tous les répertoires accessibles par le serveur.
- Pas de paramètres requis
- Retourne la liste des chemins absolus des répertoires autorisés
toolskit:read_multiple_files
Lit plusieurs fichiers simultanément. Plus efficace que la lecture individuelle.
- Paramètres requis :
paths: Tableau des chemins de fichiers à lire
toolskit:search_files
Recherche récursive de fichiers selon un motif.
- Paramètres requis :
path: Répertoire de départpattern: Motif de recherche avec syntaxe glob
- Paramètres optionnels :
excludePatterns: Motifs à exclure
toolskit:search_file_content
Recherche de fichiers dont le contenu correspond à une expression régulière.
- Paramètres requis :
path: Répertoire de départ pour la rechercheregex: Expression régulière à rechercher
- Paramètres optionnels :
fileExtensions: Extensions de fichiers à inclureexcludePatterns: Motifs à exclure
toolskit:move_file
Déplace ou renomme un fichier/répertoire.
- Paramètres requis :
source: Chemin sourcedestination: Chemin destination
toolskit:directory_tree
Génère une vue arborescente YAML d'un répertoire.
- Paramètres requis :
path: Répertoire à analyser
- Paramètres optionnels :
recursive: Analyse récursive (défaut: true)
toolskit:create_directory
Crée un nouveau répertoire et ses parents si nécessaire.
- Paramètres requis :
path: Chemin du répertoire à créer
toolskit:edit_file
Effectue des modifications précises dans les fichiers.
- Paramètres requis :
path: Chemin du fichier cibleedits: Tableau des opérations de modificationoldText: Texte exact à recherchernewText: Texte de remplacement
toolskit:write_file
Crée ou écrase un fichier avec du nouveau contenu.
- Paramètres requis :
path: Chemin du fichiercontent: Contenu à écrire
🔄 Outils Git
toolskit:git_clone
Clone un dépôt Git.
- Paramètres requis :
repositoryUrl: URL du dépôttargetDir: Répertoire cible
- Paramètres optionnels :
branch: Branche spécifique
toolskit:git_commit
Commit les changements.
- Paramètres requis :
workingDir: Répertoire du dépôtmessage: Message du commit
- Paramètres optionnels :
files: Fichiers spécifiquesauthor: Information d'auteur
toolskit:git_status
Affiche le statut du dépôt.
- Paramètres requis :
workingDir: Répertoire du dépôt
toolskit:git_pull, toolskit:git_push, toolskit:git_fetch
Synchronisation avec les dépôts distants.
- Paramètres requis :
workingDir: Répertoire du dépôt
- Paramètres optionnels :
remote: Dépôt distant (défaut: origin)branch: Branche (défaut: main)
toolskit:git_checkout
Change de branche.
- Paramètres requis :
workingDir: Répertoire du dépôtbranch: Branche cible
- Paramètres optionnels :
createBranch: Créer la branche
toolskit:git_diff
Compare les changements entre commits.
- Paramètres requis :
workingDir: Répertoire du dépôtfromCommit: Hash du commit initialtoCommit: Hash du commit cible
- Paramètres optionnels :
files: Fichiers spécifiquesunified: Nombre de lignes de contexteignoreSpace: Ignorer les espacesignoreBlankLines: Ignorer les lignes vides
toolskit:git_log
Affiche l'historique des commits.
- Paramètres requis :
workingDir: Répertoire du dépôt
- Paramètres optionnels :
maxCount: Nombre maximum de commitsbranch: Filtrer par branchefile: Filtrer par fichierfrom/to: Plage de commits
toolskit:git_resolve_conflicts
Gestion des conflits de fusion.
- Paramètres requis :
workingDir: Répertoire du dépôt
- Paramètres optionnels :
operation: Action (list, abort)
🌐 Outils Web
toolskit:brave_web_search
Recherche web via l'API Brave Search.
- Paramètres requis :
query: Requête de recherche (max 400 chars)
- Paramètres optionnels :
count: Nombre de résultats (1-20, défaut: 10)offset: Index de départ (0-9, défaut: 0)
toolskit:get_web_page_content
Récupère le contenu d'une page web.
- Paramètres requis :
url: URL de la page web
🎨 Outils d'IA Générative (PiAPI)
Génération d'Images
piapi_text_to_image
Génère une image à partir d'un texte.
- Paramètres requis :
prompt: Description de l'image
- Paramètres optionnels :
model: Modèle (Qubico/flux1-dev, Qubico/flux1-schnell, Qubico/flux1-dev-advanced)width/height: Dimensions (64-1024, défaut: 512)negative_prompt: Éléments à évitersteps: Nombre d'étapesguidance_scale: Échelle de guidage (1.5-5)batch_size: Nombre d'images (Schnell uniquement)lora_settings: Paramètres LoRA (version payante)control_net_settings: Paramètres ControlNet (version payante)
piapi_gemini_image_generation
Génère et édite des images avec Gemini 2.5 Flash Image de Google.
- Paramètres requis :
prompt: Description de l'image (DOIT être en anglais)
- Paramètres optionnels :
num_images: Nombre d'images (1-4, défaut: 1, coût: 0.03$/image)output_format: Format de sortie ("jpeg" ou "png", défaut: jpeg)image_urls: URLs d'images à modifier (pour l'édition conversationnelle)
Fonctionnalités uniques :
- Édition conversationnelle : modification progressive d'images existantes
- Cohérence de personnages : maintien de l'apparence à travers plusieurs générations
- Approche narrative : excelle avec des descriptions fluides plutôt que des mots-clés
- Support natif de l'inpainting, outpainting et changements de style
piapi_midjourney_imagine
Génération d'image via Midjourney.
- Paramètres requis :
prompt: Description de l'image
- Paramètres optionnels :
aspectRatio: Ratio d'aspect
piapi_derive_image
Variation d'une image existante.
- Paramètres requis :
prompt: Description de la variationreferenceImage: URL de l'image de référence
- Paramètres optionnels :
width/height: DimensionsnegativePrompt: Éléments à évitersteps: Nombre d'étapes
piapi_modify_image
Modification d'image (inpaint/outpaint).
- Paramètres requis :
prompt: Description de la modificationreferenceImage: URL de l'image de référencemodel: Type de modification ("inpaint" ou "outpaint")
- Paramètres optionnels :
paddingLeft/Right/Top/Bottom: Remplissage pour outpaintnegativePrompt: Éléments à évitersteps: Nombre d'étapes
piapi_generate_image_controlnet
Génération avec ControlNet.
- Paramètres requis :
prompt: Description de l'imagereferenceImage: Image de contrôle
- Paramètres optionnels :
controlType: Type de contrôle (depth, canny, hed, openpose)lora: LoRA à utiliserwidth/height: Dimensionssteps: Nombre d'étapes
Traitement d'Images
piapi_image_faceswap
Échange de visages entre images.
- Paramètres requis :
swapImage: URL de l'image sourcetargetImage: URL de l'image cible
piapi_image_rmbg
Suppression d'arrière-plan.
- Paramètres requis :
image: URL de l'image
piapi_image_segment
Segmentation d'image.
- Paramètres requis :
image: URL de l'imageprompt: Description de la segmentation
- Paramètres optionnels :
negativePrompt: Éléments à évitersegmentFactor: Facteur de segmentation
piapi_image_upscale
Amélioration de résolution.
- Paramètres requis :
image: URL de l'image
- Paramètres optionnels :
scale: Facteur d'agrandissement (2-10, défaut: 2)faceEnhance: Amélioration des visages
piapi_show_image
Affichage d'image (pour les images < 768x1024).
- Paramètres requis :
url: URL de l'image
Génération de Vidéos
piapi_video_generation
Génération de vidéo complète avec support des images clés.
- Paramètres requis :
prompt: Description de la vidéo
- Paramètres optionnels :
task_type: Type (video_generation, extend_video)key_frames: Images clés (frame0, frame1)model_name: Modèle (ray-v1, ray-v2)duration: Durée (5-10 secondes)aspect_ratio: Ratio d'aspectwebhook_config: Configuration webhook
piapi_generate_video_hunyuan
Génération via Hunyuan.
- Paramètres requis :
prompt: Description de la vidéo
- Paramètres optionnels :
model: Type (hunyuan, fastHunyuan, hunyuanConcat, hunyuanReplace)referenceImage: Image de référenceaspectRatio: Ratio d'aspect (16:9, 1:1, 9:16)negativePrompt: Éléments à éviter
piapi_generate_video_skyreels
Génération via Skyreels.
- Paramètres requis :
prompt: Description de la vidéoreferenceImage: Image de référence
- Paramètres optionnels :
aspectRatio: Ratio d'aspectnegativePrompt: Éléments à éviter
piapi_generate_video_wan
Génération via Wan.
- Paramètres requis :
prompt: Description de la vidéo
- Paramètres optionnels :
model: Type (wan1_3b, wan14b)referenceImage: Image de référence (wan14b uniquement)aspectRatio: Ratio d'aspectnegativePrompt: Éléments à éviter
piapi_generate_video_kling
Génération via Kling.
- Paramètres requis :
prompt: Description de la vidéo
- Paramètres optionnels :
referenceImage: Image de référenceaspectRatio: Ratio d'aspectduration: Durée (5s, 10s)negativePrompt: Éléments à éviter
piapi_generate_video_effect_kling
Effets vidéo via Kling.
- Paramètres requis :
image: Image de référence
- Paramètres optionnels :
effectName: Type d'effet (squish, expansion)
piapi_generate_video_luma
Génération via Luma.
- Paramètres requis :
prompt: Description de la vidéo
- Paramètres optionnels :
duration: Durée (5s, 10s)aspectRatio: Ratio d'aspectkeyFrame: Image clé
Traitement de Vidéos
piapi_video_faceswap
Échange de visages dans les vidéos.
- Paramètres requis :
swapImage: URL de l'image sourcetargetVideo: URL de la vidéo cible
piapi_video_upscale
Amélioration de résolution vidéo (2x).
- Paramètres requis :
video: URL de la vidéo
Génération Audio/Musique
piapi_music_generation
Génération de musique avec paroles optionnelles.
- Paramètres requis :
gpt_description_prompt: Description de la musique
- Paramètres optionnels :
model: Type (music-u, music-s)task_type: Tâche (generate_music, generate_music_custom)lyrics_type: Type de paroles (generate, instrumental, user)tags: Styles musicauxnegative_tags: Styles à éviterprompt: Paroles personnaliséesmake_instrumental: Version instrumentale
piapi_extend_music
Extension de musique existante.
- Paramètres requis :
continue_clip_id: ID du clip à étendreprompt: Paroles pour l'extension
- Paramètres optionnels :
tags: Styles musicauxnegative_tags: Styles à éviter
piapi_generate_music_suno
Génération via Suno.
- Paramètres requis :
prompt: Description de la musique (max 3000 chars)
- Paramètres optionnels :
makeInstrumental: Version instrumentaletitle: Titre (max 80 chars)tags: Tags (max 200 chars)negativeTags: Tags négatifs (max 200 chars)
piapi_generate_music_for_video
Génération de musique pour vidéo.
- Paramètres requis :
prompt: Description de la musiquevideo: URL de la vidéo
- Paramètres optionnels :
negativePrompt: Éléments à éviter
piapi_tts_zero_shot
Synthèse vocale zero-shot.
- Paramètres requis :
genText: Texte à synthétiserrefAudio: Audio de référence
- Paramètres optionnels :
refText: Texte de référence
Modélisation 3D
piapi_image_to_3d
Conversion d'image en modèle 3D.
- Paramètres requis :
image_pathouimage_url: Image source
- Paramètres optionnels :
seed: Seed de générationss_sampling_steps: Étapes SS (10-50)slat_sampling_steps: Étapes SLAT (10-50)ss_guidance_strength: Force SS (0-10)slat_guidance_strength: Force SLAT (0-10)
Utilitaires
piapi_get_task_status
Surveillance du statut des tâches.
- Paramètres requis :
taskId: ID de la tâche
- Paramètres optionnels :
checkInterval: Intervalle de vérification (1000-10000ms)
📄 Outils Pandoc
toolskit:markdown_to_document
Convertit Markdown vers d'autres formats.
- Paramètres requis :
contentouinputPath: Contenu ou fichier source
- Paramètres optionnels :
format: Format de sortie (docx, pptx, html)outputPath: Fichier de sortietemplatePath: TemplateopenAfterGeneration: Ouvrir après génération
📦 Outils NPM
toolskit:npm_install
Installation des dépendances.
- Paramètres requis :
workingDir: Répertoire de travail
toolskit:npm_build
Construction du projet.
- Paramètres requis :
workingDir: Répertoire de travail
⚙️ Outils .NET
toolskit:dotnet_tool
Opérations sur les solutions .NET.
- Paramètres requis :
solutionFile: Chemin de la solution
- Paramètres optionnels :
operation: Opération (RunTests)
toolskit:serialize_csharp
Analyse des fichiers C#.
- Paramètres requis :
path: Répertoire à analyser
- Paramètres optionnels :
options: Configuration de l'analyseaccessibility: Niveaux d'accès à inclureincludeStatic: Inclure les méthodes statiquesnamespaceFilter: Filtrer par namespace
toolskit:analyze_csharp_dependencies
Analyse des dépendances C#.
- Paramètres requis :
filePath: Fichier C# à analyser
🕐 Outils Système
toolskit:get_current_datetime
Obtient la date et l'heure actuelles.
- Pas de paramètres requis
Ressources
Le serveur fournit également des ressources consultables :
- Logs du serveur : Consultation des dernières entrées de log
- Prompts Flux1 : Ressources d'aide pour la génération d'images avec Flux
- Prompts Gemini : Guide d'expert pour Gemini 2.5 Flash Image (Nano Banana)
- Prompts de génération musicale : Guides pour la création musicale
- Prompts vidéo : Ressources pour la génération de vidéos
Fonctionnalités Avancées
Sauvegarde Automatique
Tous les outils PiAPI supportent la sauvegarde automatique des contenus générés si un répertoire de sortie est configuré dans PiAPI.OuputDirectory.
Ouverture Automatique
Les fichiers générés sont automatiquement ouverts avec l'application par défaut du système.
Gestion des Erreurs
- Validation stricte des paramètres via Zod
- Gestion complète des erreurs avec logging
- Messages d'erreur explicites pour les utilisateurs
Optimisation des Performances
- Gestionnaire de tâches unifié pour PiAPI
- Configuration automatique des timeouts selon les modèles
- Polling intelligent pour le suivi des tâches
Sécurité
- Validation stricte des chemins de fichiers
- Liste blanche de répertoires accessibles
- Pas d'exécution de code arbitraire
- Gestion sécurisée des clés API
Développement
Pour le développement avec recompilation automatique :
npm run watch
Architecture
- FastMCP : Framework MCP pour TypeScript
- Zod : Validation des schémas et paramètres
- Winston : Système de logging avancé
- Configuration flexible : Via variables d'environnement
- Support TypeScript complet : Types stricts pour tous les outils
Structure du Projet
src/
├── index.ts # Point d'entrée principal
├── tools/ # Tous les outils MCP
│ ├── filesystem/ # Outils de système de fichiers
│ ├── git/ # Outils Git
│ ├── web/ # Outils web
│ ├── piapi/ # Outils d'IA générative
│ │ ├── types/ # Types TypeScript
│ │ ├── task_handler.ts # Gestionnaire de tâches unifié
│ │ └── *.ts # Outils spécifiques
│ ├── pandoc/ # Outils de conversion
│ ├── npm/ # Outils NPM
│ ├── dotnet/ # Outils .NET
│ └── system/ # Outils système
├── resources/ # Ressources consultables
├── models/ # Modèles de données
└── helpers/ # Utilitaires et helpers
Logging
Le serveur utilise Winston pour un logging avancé avec :
- Rotation quotidienne des fichiers de log
- Contexte d'opération pour le suivi
- Niveaux de log configurables
- Formatage structuré
Configuration Avancée
Fichier de Configuration
Le serveur utilise un fichier JSON pour la configuration :
{
"AllowedDirectories": [
"C:/Projets",
"C:/Documents"
],
"BraveSearch": {
"ApiKey": "votre_clé_brave"
},
"PiAPI": {
"ApiKey": "votre_clé_piapi",
"IsFreePlan": false,
"IgnoreSSLErrors": false,
"OuputDirectory": "C:/PiAPI_Output"
},
"DisabledTools": [],
"LogLevel": "info"
}
Variables d'Environnement
MCP_TOOLSKIT_CONFIG_PATH: Chemin vers le fichier de configuration
Licence
Ce projet est sous licence Apache 2.0 - voir le fichier LICENSE pour plus de détails.
Contribution
Les contributions sont les bienvenues ! Veuillez :
- Fork le projet
- Créer une branche pour votre fonctionnalité
- Commiter vos changements
- Pousser vers la branche
- Ouvrir une Pull Request
Support
Pour obtenir de l'aide :
- Consultez la documentation
- Vérifiez les logs du serveur
- Ouvrez une issue sur GitHub avec les détails de votre problème
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。