fispro-mcp
Server Quality Checklist
Latest release: v0.3.0
- Disambiguation5/5
Each tool has a clearly distinct purpose: environment check, file listing, system description, single inference, inference explanation, dataset inference, and validation. There is no overlap; even infer and explain_inference are clearly separated by output (results vs. reasoning).
Naming Consistency5/5All tool names follow a consistent snake_case verb_noun or verb pattern (check_environment, list_fis, describe_fis, infer, explain_inference, infer_dataset, validate_fis). The only minor deviation is the bare verb 'infer', but it is clean and understandable in context.
Tool Count5/5Seven tools is a well-scoped count for a fuzzy inference system server. Each tool covers a distinct operation needed to work with FIS files, and none feel redundant or excessive.
Completeness5/5The tool surface covers the full workflow for the domain: preparing/checking the environment, discovering and inspecting FIS files, running single and batch inferences, understanding inference results, and validating system integrity. No obvious dead ends or missing core operations.
Average 3.7/5 across 7 of 7 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 3 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states that the tool describes a system, but does not explicitly confirm it is read-only, mention side effects, or describe error handling (e.g., missing file). The operational behavior of reading a file is only implied via the parameter description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using a single sentence for the core purpose and a structured Args block for parameters. It avoids unnecessary verbosity while conveying essential information. The structure is easy to parse, though the Args block partially duplicates schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with no output schema, the description covers the main purpose and parameters, but lacks details about the return value format (though 'en clair' hints at human-readable output). It also does not situate the tool within its sibling set, missing an opportunity to clarify when this description is needed versus other FIS-related operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description compensates by providing clear meanings for both parameters: 'path' is the .fis file path and 'include_rules' indicates whether to include the list of rules in French. This goes beyond the schema's bare titles and types, though it doesn't mention the default value for include_rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Décrit un système' (describes a system) and enumerates the specific components covered: variables, fuzzy partitions, operators, and rules in plain language. This distinguishes it from sibling tools like 'infer' or 'list_fis' which serve different functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It implies usage through the 'path' argument but does not mention exclusion criteria or conditions under which other tools (e.g., explain_inference, validate_fis) would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states what the tool lists and defines parameters, but does not mention return format, error behavior, or that the operation is read-only. The agent is left without critical operational context such as what 'available' means or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately short: one purpose sentence followed by a clean argument list. Every part earns its place, and the structure front-loads the main verb and resource. No unnecessary information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple but the description omits information about the output format or how the return value is structured. Since there is no output schema, the agent cannot predict whether paths, filenames, or other details are returned. The authorized root is also left undefined, making the tool's behavior incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides titles and defaults, but the description's Args section explains that 'directory' is a sub-directory relative to root and 'recursive' controls sub-folder exploration. This adds meaningful semantics that the schema lacks, fully compensating for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function using the specific verb 'Liste' and the resource '.fis files'. It also mentions the constrained scope of 'sous la racine autorisée', which adds precision. This clearly distinguishes it from sibling tools like describe_fis or validate_fis, which operate on files rather than listing them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description only provides parameter definitions and does not mention use cases, prerequisites, or exclusions. Sibling tools are not referenced, leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behaviors like writing a full result to an optional output file and returning a preview limited by max_preview, but does not mention side effects such as file overwriting or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with a clear purpose statement followed by a parameter list. It is concise and relevant, though the 'Args:' header could be considered unnecessary structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main flow of input files, optional output, backend, and preview size, but lacks details on the exact output structure and potential file system side effects. Given the absence of an output schema, this is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides thorough explanations for all five parameters, including file paths, column matching, optional output, backend choices, and preview size. This fully compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies the fuzzy system to all rows of a CSV file, using a specific verb and resource. It distinguishes from sibling tools like 'infer' by the explicit batch scope, though it does not name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives such as 'infer' for single inferences. The description implies batch usage but lacks context about when not to use it or how it fits into the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry full behavioral disclosure. It only states 'Calcule les sorties', implying a non-destructive computation, but does not describe return value format, error handling, or backend behavior (e.g., what happens if R is unavailable).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a single purpose sentence followed by a concise args list. No redundant or irrelevant content; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple inference tool with three parameters, the description covers purpose and all parameters, including the backend default. However, it does not describe the output format or error scenarios, though the output is implied by 'sorties'. Given the lack of an output schema, a bit more detail on the return value would improve completeness, but it is mostly sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description fully explains each parameter beyond the bare schema names: 'path: chemin du fichier .fis', 'inputs: une valeur par entrée, dans l'ordre déclaré dans le fichier', and 'backend: "auto" (R si disponible), "r" ou "python"'. This adds critical meaning about input ordering and backend options, compensating for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Calcule les sorties du système flou pour un vecteur d'entrées' identifies a specific verb (Calcule), resource (système flou), and scope (vecteur d'entrées). This clearly differentiates from the sibling 'infer_dataset' by explicitly focusing on a single input vector.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'infer_dataset' or 'explain_inference'. The description lacks explicit context, prerequisites, or exclusions, leaving the agent to infer usage only from the parameter list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It adds meaningful behavioral detail by specifying exactly what the tool detects and reports (unused subsets, duplicate premises, incoherent ranges). It does not mention side effects, but 'validate' and 'signale' strongly imply a read-only reporting operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences: the first states the purpose and main categories, the second adds concrete examples of detected problems. Every sentence adds value and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives a strong overview of the tool's behavior and checks, but lacks guidance on the meaning of the required 'path' parameter and the exact return/error behavior. Given there are no annotations or output schema, the description is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the 'path' parameter at all. The only available meaning is the schema title 'Path', which is insufficient to clarify what path should point to (e.g., a file, directory, or system definition). The description fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Contrôle') and enumerates concrete validation targets: partitions, rule coverage, inconsistencies, unused fuzzy subsets, duplicate premises, and incoherent ranges. This clearly distinguishes validate_fis from sibling tools like list_fis, describe_fis, and infer, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool: to check the health of a fuzzy inference system and detect structural problems. It does not explicitly mention alternatives or when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It adds context by naming the specific checks (authorized root, R/FisPro availability), which goes beyond the tool name, but it does not disclose the return/error behavior or explicitly state that the check is non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded French sentence naming the verb and the three specific checks. Every word earns its place; there is no filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 0-parameter environment check with no output schema and no annotations, the description adequately covers purpose and scope, telling the agent exactly what is verified. The only gap is the lack of result-format details, which could help the agent interpret the outcome, but the simplicity of the tool makes this a minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero properties, making schema coverage trivially 100%. With 0 parameters, the baseline is 4, and the description correctly avoids inventing parameter details, providing no additional syntactical burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Vérifie' (checks) with a clear resource ('la configuration' — the environment configuration) and lists concrete aspects verified (authorized root, R availability, FisPro package). This clearly distinguishes it from sibling tools like list_fis and infer, which operate on FIS objects rather than the runtime environment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is a preflight check (verifying R and FisPro availability) before using the sibling FIS tools, but it does not explicitly state when to invoke it or when to prefer alternatives. No exclusions, prerequisites, or explicit 'use this when' guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that the tool explains reasoning and is 'Calculé par le moteur Python,' but it does not explicitly state whether it is read-only or describe side effects. This is a moderate level of transparency, covering what it does but not a full safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured, starting with the core purpose, followed by a usage recommendation and a brief implementation note, then a compact Args list. Every sentence earns its place without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (3 params, no output schema, no annotations), the description covers purpose, usage, and all parameters, and hints at output content (membership degrees and rules). It would benefit from a more explicit description of the return format or potential errors, but it is sufficiently complete for an explanation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate fully. It does so by explaining each parameter: path ('chemin du fichier .fis'), inputs ('une valeur par entrée'), and top_k ('nombre maximum de règles détaillées, triées par force décroissante'). This adds meaning beyond the bare schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Explique le raisonnement : degrés d'appartenance et règles déclenchées' and positions it as the tool for understanding *why* the system produces a given output. This distinguishes it from siblings like infer and describe_fis, making the scope explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'C'est l'outil à privilégier pour comprendre *pourquoi* le système produit une sortie donnée,' providing a clear when-to-use directive. However, it does not mention exclusions or alternatives by name, so it lacks the full when-not/alternatives guidance for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Kofi04/fispro-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server