Le serveur Model Context Protocol (MCP) FlexPro met à disposition l'aide en ligne FlexPro, et notamment le référentiel des fonctions FPScript ainsi qu'une sélection de questions fréquentes, sous la forme d'une base de connaissances consultable destinée aux assistants IA. Il s'agit d'un serveur MCP distant qui communique via le protocole « streamable HTTP ».
Aperçu
Le serveur rend les connaissances FlexPro accessibles aux assistants IA via le Model Context Protocol. Vous pouvez poser des questions en langage naturel sur la syntaxe, les fonctions ou les concepts de FPScript. Le serveur renvoie les extraits de documentation pertinents en guise de contexte. Cela permet de relier les connaissances acquises par l'IA aux informations spécifiques à FlexPro et vous aide à travailler avec FlexPro ainsi qu'à créer des formules à l'aide du langage de programmation FPScript.
Outre les questions relatives à l'aide et au guide de référence de FlexPro, le serveur effectue une recherche dans une liste de questions fréquentes concernant FlexPro. Ces articles traitent de cas concrets qui ne sont pas abordés dans la documentation du produit, ou seulement de manière fragmentaire — par exemple, les problèmes d'installation et de licence ou les questions relatives aux performances. Vous reconnaîtrez ces résultats à la mention « FAQ » suivie du thème correspondant.
Remarque Le serveur n'a pas accès aux bases de données projets FlexPro et ne peut pas modifier les données dans FlexPro. Il effectue des recherches exclusivement dans un fonds documentaire statique géré par Weisang et ne traite aucune donnée client ni aucune donnée de mesure.
Outils
Le serveur met à disposition deux outils :
Outil |
Objet |
Type d'accès |
|---|---|---|
search_docs |
Recherche dans l'aide de FlexPro, le guide des fonctions FPScript et la FAQ les passages correspondant au thème donné, puis renvoie les résultats avec leur référence. Chaque résultat est en outre accessible individuellement, ce qui permet à un assistant de recharger intégralement un document si nécessaire.
Paramètres :
•Texte de recherche — la requête de recherche en anglais. Seuls les 254 premiers tokens sont traités ; les requêtes plus longues sont tronquées, ce que le serveur signale. •Zone de recherche — les deux (par défaut), uniquement les fonctions ou uniquement l'aide/FAQ. •Nombre maximal de résultats — de 1 à 10 par plage recherchée, valeur par défaut : 3. Les valeurs situées en dehors de cette plage sont limitées à la valeur maximale. •Langue de l'interface — la langue des termes d'interface renvoyés (anglais, allemand, français, espagnol, japonais et chinois simplifié) •Termes d’interface recherchés — une liste de termes anglais pour lesquels l'assistant demande la traduction officielle, même s'ils n'apparaissent pas dans les résultats de recherche. Il parvient ainsi à identifier les termes que le serveur ne peut pas fournir de lui-même, car il peut tout aussi bien s'agir de mots courants — tels que « graphique », « base de données » ou « format ». Nécessite une langue de réponse ; 20 termes au maximum par requête ; s'il y en a davantage, le serveur indique le nombre de termes recherchés. •Niveau de détail — complet (par défaut) ou uniquement le début de chaque résultat. La version abrégée permet de parcourir rapidement plusieurs candidats à moindre coût ; le serveur le signale alors et indique comment accéder au texte complet. |
Lecture seule (read-only) |
get_fpscript_syntax |
Fournit la liste complète des points sur lesquels FPScript se distingue des autres langages de programmation : opérateurs de concaténation, de comparaison, d'élévation à une puissance et de modulo, caractères de commentaire, continuation de ligne, fin de bloc, déclaration de variables, ainsi que la notation des index, des chaînes de caractères et des listes.
Paramètres : aucun. |
Lecture seule (read-only) |
Remarque FPScript ressemble à d'autres langages de programmation, mais ne s'inspire d'aucun d'entre eux. Une syntaxe empruntée à un autre langage est la cause la plus fréquente de l'échec de la compilation du code FPScript généré par une IA — et ce, précisément lorsque la syntaxe semble familière. Un assistant devrait donc appeler une fois la fonction get_fpscript_syntax avant d'écrire ou de modifier du code FPScript.
Cet outil ne remplace pas la recherche de fonctions : les noms de fonctions, l'ordre des arguments et les noms de constantes proviennent toujours de search_docs, avec la section de recherche « Fonctions ». Il ne vérifie pas non plus le code, mais se contente d'énoncer les règles.
De plus, le serveur met à disposition la base de documentation, y compris la FAQ, sous forme d'entrées (ressources) accessibles individuellement. Certaines applications d'IA les affichent ou les lisent de manière ciblée. Cet accès est lui aussi en lecture seule.
Remarque En interne, la documentation est répertoriée exclusivement en anglais. Les requêtes de recherche fournissent les résultats les plus fiables en anglais, quelle que soit la langue utilisée par l'utilisateur pour communiquer avec l'assistant. Si l’assistant répond dans une autre langue, il transmet celle-ci comme langue d’interface : le serveur fournit alors en plus les désignations officielles des termes d’interface concernés, dans la mesure où ils sont suffisamment univoques et en nombre limité par réponse, dans cette langue — chemins dans le ruban, commandes, titres de boîtes de dialogue et boutons —, afin que l’assistant ne les traduise pas lui-même et n’invente pas de noms qui n’existent pas dans votre interface FlexPro. L'assistant peut également demander de manière ciblée des termes qui n'apparaissent pas dans les résultats ; pour chacune des langues mentionnées, le serveur dispose d'un glossaire bien plus vaste que ne le laisse supposer une seule réponse.
Les désignations officielles sont actuellement disponibles en allemand, français, espagnol, japonais et chinois simplifié. Les libellés proviennent des mêmes fichiers de ressources que ceux utilisés par FlexPro pour l'étiquetage de son interface ; pour un terme qui n'est pas fourni, l'assistant indique le nom original en anglais et le signale comme tel.
Réponses du serveur
Situation |
Réponse |
|---|---|
La requête de recherche ne semble pas être en anglais |
Remarque indiquant que les résultats, bien qu'ils semblent plausibles, peuvent ne pas être pertinents, accompagnée d'une invitation à répéter la recherche en anglais |
Aucun résultat ne correspond à un mot-clé de la recherche |
Remarque indiquant que les résultats sont probablement inadaptés — le plus souvent en raison d'un nom de fonction inventé ou mal retenu ; recommandation de rechercher plutôt la fonctionnalité correspondante |
La requête de recherche était trop longue |
Remarque indiquant que seul le début a été analysé, accompagnée de la recommandation d'effectuer plusieurs recherches courtes plutôt qu'une seule longue |
Il n'existe pas de glossaire pour la langue d'interface souhaitée |
Remarque : utiliser les désignations originales en anglais telles quelles et les identifier comme telles |
La réponse a été demandée sous forme abrégée |
Remarque indiquant que seul le début du document est affiché pour chaque résultat, avec des instructions sur la manière de charger le texte complet |
L'une des deux moitiés recherchées est nettement moins pertinentes |
Si la recherche porte à la fois sur le guide des fonctions et sur l'aide/FAQ, et que l'un des deux répertoires donne des résultats nettement moins pertinents, le serveur le signale et indique les deux notes : ces résultats ne correspondent probablement pas à la question. Aucun n'est toutefois supprimé : l'assistant doit simplement éviter de les reprendre sans les vérifier. |
La réponse contient une quantité inhabituelle de texte |
Portée et mention du niveau de détail réduit — indication, pas de limite |
La question porte sur une syntaxe différente en FPScript |
Remarque concernant la forme correcte |
Un exemple figurant dans les résultats présente une erreur d'orthographe — par exemple, un chemin d'accès à un fichier comportant une barre oblique inversée simple au lieu d'une double |
Indication de la forme correcte, accompagnée d'un avertissement invitant à ne pas reprendre l'exemple tel quel |
La réponse contient des résultats liés aux fonctions |
Remarque : il est recommandé de consulter les conventions de syntaxe FPScript à l'aide de la fonction get_fpscript_syntax avant d'écrire du code, notamment les deux erreurs les plus fréquentes |
L'une des deux moitiés recherchées n'a pas pu répondre |
Remarque : la réponse ne contient que l'autre moitié et la recherche est incomplète — les résultats fournis restent valables |
Remarque Ces consignes s'adressent à l'assistant, et non à vous — c'est le modèle utilisé qui déterminera s'il les suivra ou non. Si une réponse semble inappropriée, posez-vous la question suivante : « Le serveur a-t-il généré un message d'avertissement, et quel en était le contenu ? »
Établir une connexion
•Les applications d'IA peuvent être utilisées si elles prennent en charge la connexion à un serveur MCP via le protocole « streamable http ».
•Pour cela, vous devez enregistrer le serveur MCP dans votre application d'IA. Le paramètre correspondant porte un nom différent selon l'application d'IA — on le trouve généralement sous une rubrique de menu telle que « Connecteurs », mais parfois aussi sous « Intégrations », « Outils » ou « Serveur MCP ». Recherchez « FlexPro ». Si vous ne trouvez aucune entrée, vous pouvez également ajouter votre propre entrée avec l'adresse du serveur : https://mcp.weisang.com/doc
•Se connecter : aucun identifiant n'est nécessaire, la connexion est établie immédiatement après l'enregistrement.
•Activer les outils (Tools) – si nécessaire – et les utiliser dans une conversation.
Authentification
Le serveur ne nécessite aucune authentification. Il effectue des recherches uniquement dans la documentation gérée par Weisang, n'a pas accès à vos données FlexPro et ne crée aucun contenu lié à l'utilisateur. Il n'existe donc ni données protégées nécessitant une connexion, ni paramètres personnels nécessitant un identifiant.
Conseils pour de meilleures réponses
•Formulez votre question de la manière la plus concrète possible (par exemple en mentionnant le nom d'une fonction ou d'un objet) : plus la question est précise, plus la recherche dans la documentation sera ciblée.
•Demandez expressément à l'IA de vérifier la syntaxe avant de proposer du code FPScript — en particulier lorsqu'une formule semble « familière » parce qu'elle rappelle un autre langage de programmation.
•Demandez à ce qu'on vous indique d'où provient une réponse (par exemple, le nom d'une fonction ou une rubrique d'aide) — cela facilite la vérification.
•Vérifiez toujours le code FPScript généré par l'IA dans FlexPro même — le serveur MCP ne fournit que de la documentation, et ne procède ni à l'exécution ni à la validation.
•Si une réponse ne vous convient pas, signalez les erreurs à l'IA et demandez-lui de procéder à une vérification plus approfondie. Vous pouvez également demander à ce qu'une nouvelle recherche soit effectuée avec d'autres termes (synonymes, termes anglais plutôt que francais) — la documentation n'est indexée en interne qu'en anglais.
•Il peut arriver qu'il faille rappeler expressément à l'IA d'utiliser le serveur MCP.
•Le modèle d'IA utilisé influence considérablement le résultat : le serveur ne fournit que la documentation ; c'est le modèle qui décide si celle-ci fait l'objet d'une recherche ciblée et, le cas échéant, de quelle manière. Lorsque les réponses sont systématiquement insatisfaisantes, un modèle plus performant s'avère souvent plus efficace qu'une question reformulée.
Remarque Le bon fonctionnement de la collaboration avec le serveur MCP dépend en grande partie du modèle d'IA utilisé. Le serveur fournit uniquement de la documentation — c'est le modèle seul qui décide si une recherche est effectuée, si la requête est formulée de manière pertinente, si les résultats trouvés sont correctement analysés et si l'assistant vérifie la syntaxe avant d'écrire du code FPScript. Les modèles plus performants exploitent le serveur de manière nettement plus ciblée. Les modèles plus simples ont tendance à consulter moins souvent les ressources et à répondre en s'appuyant plutôt sur leurs connaissances générales — qui ne tiennent pas compte des conventions spécifiques à FlexPro. Si une réponse ne permet pas d'avancer, il vaut donc la peine, outre de poser une question plus précise, d'opter pour un modèle plus performant.
Causes possibles des erreurs
Erreur |
Cause et solution |
|---|---|
L'application d'IA signale une erreur lors de l'ajout du serveur MCP |
Vérifiez qu'il n'y a pas de faute de frappe dans l'adresse : https://mcp.weisang.com/doc. Une barre oblique finale ne pose pas de problème. Veillez à utiliser le protocole https (avec le protocole http, la connexion ne s'établit pas, et ce sans message d'erreur). Aucun identifiant n'est requis ; les champs correspondants doivent rester vides. |
La connexion est établie, mais l'IA ne l'utilise jamais |
Il se peut que l’outil (Tool) ne soit pas activé dans l'application d'IA. Sinon, demandez expressément à ce que cette information soit consultée : « Veuillez vérifier cela sur le serveur de documentation FlexPro. » |
Les réponses sont retardées ou s'interrompent |
En cas de très grand nombre de requêtes simultanées, le serveur limite le débit et vous demande de patienter quelques instants. Les applications d'IA courantes renvoient automatiquement la requête ; sinon, il suffit de réessayer après quelques secondes. |
La réponse mentionne des commandes qui n'existent pas dans votre interface |
Demandez le nom original en anglais. Le serveur ne fournit les désignations officielles que pour les langues mentionnées sous la rubrique « Outils » et non pour tous les termes rencontrés. |
Le contenu de la réponse ne correspond pas |
Voir « Conseils pour obtenir de meilleures réponses » — la cause la plus fréquente est une requête de recherche trop vague ou rédigée dans une autre langue que l'anglais. |
L'IA indique que le serveur est surchargé ou en panne |
En cas de très grand nombre de requêtes simultanées, le serveur ralentit et vous demande de patienter quelques instants. Les applications d'IA courantes réitèrent automatiquement la requête. |
Une application d'IA accessible via un navigateur ne fonctionne pas (403 / « Forbidden ») |
Le serveur n'accepte que les requêtes ne comportant pas d'en-tête « Origin » (origine du navigateur). Il refuse donc les applications qui se connectent directement depuis le navigateur — c'est voulu et cela empêche un site web tiers d'accéder au serveur au nom de votre navigateur. Utilisez une application de bureau ou une application serveur. |
Exemples
Question : « Créé-moi un code FPScript qui recherche les valeurs non valides dans un signal et les remplace par la valeur 0. »
Réponse :
Dans FlexPro, les « valeurs non valides » sont appelées valeurs « void » (représentées par ?). Pour les signaux, il existe les fonctions SearchVoidValues (qui trouve les positions) et HasVoidValues (qui vérifie s'il y en a) : c'est la méthode recommandée par la documentation.
// Définit à 0 toutes les valeurs non valides (Void) de la composante Y d'un signal
Arguments Signal
If HasVoidValues(Signal.Y) Then
Signal.Y[SearchVoidValues(Signal.Y)] = 0
End
Return Signal
Explication :
•La fonction HasVoidValues(Signal.Y) vérifie si la composante Y contient des valeurs non valides (void).
•La fonction SearchVoidValues(Signal.Y) renvoie les indices de ces valeurs non valides.
•Signal.Y[Positions] = 0 remplace précisément ces positions par 0.
Question : « Explique de manière aussi concise que possible ce qu'on entend par réseau d'objets dans FlexPro ? »
Réponse :
Dans FlexPro, un « réseau d'objets » désigne la manière dont tous les objets d'une base de données projet (données, analyses, graphiques, documents) sont reliés entre eux, au lieu d'exister de manière isolée les uns à côté des autres.
Chaîne d'exemple : document → graphique qu'il contient → objet d'analyse dans le graphique → Données brutes sur lesquelles repose l'analyse.
Ces liens créent un réseau dynamique de dépendances : si une données est modifiée, cela se répercute tout au long de la chaîne jusqu'à l'affichage. FlexPro utilise également ce réseau lors des actualisation : il analyse le réseau d'objets et n’actualise que les objets concernés qui ne sont plus à jour, au lieu de tout recalculer à chaque fois.
Question : «Comment peut-on convertir des signaux exprimés dans des unités différentes ? »
Réponse :
Lors des opérations arithmétiques, FlexPro vérifie automatiquement la dimension SI des unités concernées :
•Addition/soustraction : possible uniquement si les unités ont la même dimension SI (si elles sont compatibles). Les unités différentes mais compatibles sont automatiquement converties — par exemple, l'expression « 1 V + 500 mV » fonctionne directement. Les unités incompatibles (par exemple, 1 V + 1 A) génèrent une erreur d'exécution.
•Multiplication/division : les unités sont ici automatiquement combinées pour former une nouvelle unité dérivée — par exemple, 3 N * 2 m → 6 Nm.
Lorsque des signaux doivent être explicitement ramenés à une unité commune, il existe trois méthodes :
•Opérateur d'unité : Unit<mV, ms> Signal convertit la composante Y (et, en option, la composante X) dans l'unité cible spécifiée (qui doit être compatible).
•ChangeUnit(DataSet, [Unit], [UnitX], [UnitZ]) – Fonction permettant de convertir ou d'attribuer une unité pour la première fois, par exemple ChangeUnit(Signal1, "V").
•AdjustUnit(DataSet, [OtherDataSet]) – Utile lorsque deux signaux doivent être combinés : adapte automatiquement l'unité de DataSet à celle de OtherDataSet, par exemple AdjustUnit(Signal1, Signal2) + Signal2.
Si un signal n'a pas d'unité ou si l'on souhaite supprimer complètement l'unité (par exemple pour poursuivre les calculs sans dimension), il suffit de définir une chaîne vide : ChangeUnit(Signal, "").
Question : « Donne-moi la syntaxe exacte de la fonction FPScript qui me permet de calculer la valeur absolue. »
Réponse :
Absolute
Syntaxe : Absolute(Nombre)
Paramètre : Nombre: le nombre réel, le nombre complexe ou l'intervalle de temps pour lequel la valeur absolue doit être calculée. Type : numérique.
Valeur de retour : dans le cas de structures composées (par exemple, des signaux), seule la composante Y est prise en compte. Si Nombre est un nombre réel, le résultat est du même type de données ; s'il s'agit d'un nombre complexe, le résultat est du type de données réel correspondant.
Exemples :
Absolute(-3.5) → 3.5
Absolute((4.0, 3.0)) → 5.0 // Module d'un nombre complexe
Absolute(-'1:30') → '1:30:00' // Durée d'un intervalle
Question : « Comment peut-on redimensionner l'axe X d'un graphique pour utiliser une unité différente de celle des données sous-jacentes, par exemple pour afficher les secondes en heures ? N'oublie pas de mentionner la source. »
Réponse :
FlexPro effectue la mise à l'échelle via l'unité de sortie de l'axe — et non via un facteur manuel :
•Double-cliquez sur l'axe.
•Dans la boîte de dialogue « Propriétés de l'axe », accédez à l'onglet « Mise à l'échelle ».
•Dans le champ « Unité(s) », saisissez l'unité de sortie souhaitée (par exemple h) ou sélectionnez-la dans la liste.
•Fermer la boîte de dialogue avec OK.
FlexPro convertit alors automatiquement l'affichage ; les données elles-mêmes restent exprimées en secondes.
Conditions préalables :
•La gestion des unités doit être activée (paramètres de base sous Fichier > Options, onglet Gestionnaire d'unités, puis Contrôle d’unités).
•Les séries de données représentées doivent comporter leur unité de mesure d'origine, et les unités de toutes les courbes tracées sur cet axe doivent être compatibles.
Pour que la nouvelle unité soit visible, vous pouvez l'ajouter à la l’étiquetage des divisions : double-cliquez sur l’ètiquette des divisions, onglet « Étiquetage divisions », option « Ajouter l'unité à la l’étiquetage de divisions ».
Sources (Aide FlexPro/FAQ) :
•FAQ > Presentation:"How can the X-axis of a diagram be rescaled to a different unit than the underlying data, e.g. showing seconds as hours?"
•Aide : Présentation de données > Graphiques 2D et 3D > Utilisation des axes >Spécification de l'unité de sortie
•Aide : Présentation de données > Graphique 2D et 3D > Utilisation des axes >Affichage de l'unité dans l’étiquetage des axes
•Aide : Gestion des données > Gestionnaire d'unités > Utilisation du gestionnaire d'unités > Configuration du gestionnaire d'unités
Traitement des données & Protection des données
Seules les données techniques d'accès sont enregistrées dans le cadre de l'exploitation du serveur, à des fins de surveillance du fonctionnement, d'analyse des erreurs, de détection des abus et d'amélioration du service. L'adresse IP n'est à aucun moment enregistrée. Elle sert exclusivement de valeur d'entrée à une fonction de hachage cryptographique dont la clé change toutes les 24 heures. L'identifiant client ainsi généré permet d'associer les requêtes à une même session pendant une journée ; passé ce délai, il perd ce lien, car la même adresse génère un identifiant différent le lendemain. Nous ne sommes pas non plus en mesure de déduire l'adresse d'origine à partir de l'identifiant. Nous conservons ces données pendant une durée de 2 ans.
Les éléments suivants sont consignés : l'horodatage de la requête, l'identifiant anonymisé du client (valeur de hachage) et l'agent utilisateur, la méthode MCP appelée et le nom de l'outil, la longueur de la requête de recherche, l'indication précisant si la requête semble être en anglais, le nombre de résultats, la meilleure note obtenue, la durée et le statut de réussite. Le contenu de la requête de recherche elle-même, l'adresse IP en clair, les noms, les comptes ou les profils d'utilisateurs ne sont pas enregistrés.
Aucune donnée n'est transmise à des tiers.
La déclaration générale de confidentialité de Weisang s'applique également.
Remarque: même si le contenu de la requête de recherche n'est pas enregistré, il est transmis au serveur ou à l'assistant IA pour y être traité. N'incluez donc pas de contenu confidentiel, de données de mesure ou de données clients dans votre requête : une description concise et factuelle de ce que vous recherchez vous permettra de toute façon d'obtenir de meilleurs résultats.
Conditions d'utilisation
En utilisant le serveur MCP, vous acceptez les Conditions générales de vente de Weisang.
Assistance & Contact
Vous pouvez obtenir de l'aide via les canaux d'assistance et de téléchargement disponibles sur www.weisang.com.