Skip to main content
Glama
nuwainfo

ffl-mcp

Official
by nuwainfo

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.2.1

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: download vs. share (file, files, text, base64), key generation, and session management. There is no overlap or ambiguity.

    Naming Consistency5/5

    All tool names follow the consistent pattern 'ffl' + camelCase verb or verb-noun (e.g., fflDownload, fflShareFile), with no deviations.

    Tool Count5/5

    10 tools is well-scoped for a file sharing server, covering essential operations (share, download, manage sessions, generate keys) without redundancy or missing functionality.

    Completeness5/5

    The tool surface is complete: all typical file sharing workflows are supported (sharing various content types, downloading, session lifecycle management, and key generation). No obvious gaps.

  • Average 3.8/5 across 10 of 10 tools scored. Lowest: 2.8/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under Apache 2.0.

  • 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.json to 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?

    No annotations exist, and the description merely implies a read-only operation without disclosing side effects, authorization requirements, rate limits, or other behavioral traits.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single concise sentence with no wasted words, but it is slightly underspecified for a tool with multiple parameters.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Despite having an output schema (not shown), the description omits parameter details and usage context, making it insufficient for an agent to use the tool correctly without additional information.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    With 0% schema description coverage, the description adds no information about parameters like sessionId or limit, failing to clarify their meaning or expected values beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Get recent hook events for a running session,' specifying the verb (Get), resource (hook events), and context (running session), which distinguishes it from siblings like fflGetSession or fflListSessions.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance on when to use this tool versus alternatives; the description does not mention prerequisites or scenarios, leaving the agent without explicit usage direction.

    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?

    No annotations are provided. The description only mentions that the session is 'running', suggesting a constraint, but does not disclose behavior for invalid or non-running sessions, or side effects. Minimal behavioral context beyond the basic purpose.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    One short sentence with no filler. Extremely concise and efficient, no wasted words.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given a simple one-parameter tool with an output schema, the description is minimally adequate. However, it lacks usage guidance and behavioral transparency, which are needed given the number of sibling tools. Could be more complete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The single parameter sessionId has no schema description (0% coverage) and the tool description adds no explanation of its format or source. The parameter name is self-explanatory but the description does not compensate for the missing schema documentation.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool gets details for a running session, distinguishing from sibling tools like fflListSessions or fflStopSession. It could be more specific about what details are returned, but the presence of an output schema mitigates this.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does 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 fflListSessions or fflGetSessionEvents. The description implies it's for individual session details, but does not explicitly differentiate or provide context.

    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?

    No annotations are provided, so the description must cover behavioral traits. It only says 'Stop', omitting whether the operation is safe, idempotent, or has side effects, leaving significant gaps.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, clear sentence with no wasted words. However, it could be more informative without sacrificing brevity.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple one-parameter tool, the description barely covers the basics. It does not mention the output schema, preconditions, or error cases, which limits completeness.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The description merely mentions 'by sessionId' without adding meaning beyond the parameter name. With 0% schema coverage, the description fails to clarify the parameter's format or constraints.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Description clearly states the action ('Stop'), resource ('ffl session'), and the required identifier ('sessionId'). It effectively distinguishes from sibling tools like fflGetSession and fflListSessions.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The implied usage is to stop a running session, but there is no explicit guidance on when to use it versus alternatives, or conditions for use.

    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 carries full responsibility for behavioral disclosure. It only states the basic action and omits critical details such as idempotency, potential side effects, or authentication requirements. A simple list tool may be safe, but this is not confirmed.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the tool's purpose.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given no parameters and an output schema, the description provides the essential function. However, it lacks details about possible empty results, pagination, or side effects. For a simple tool, it is minimally adequate but not rich.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters, and the schema coverage is 100%. The description adds nothing about parameters, which is acceptable since there are none to describe. Baseline score of 4 is appropriate for no parameters.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('list'), the resource ('active ffl share sessions'), and the scope ('started by this MCP server'). It effectively distinguishes from sibling tools like fflGetSession (single session) and fflGetSessionEvents (events).

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies the tool is used to view active sessions started by this server, but it does not explicitly state when to use it over alternatives (e.g., fflGetSession) or provide any exclusions or prerequisites. Usage context is implied rather than stated.

    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?

    No annotations provided, so description carries full burden. It mentions sharing and returning a link, but lacks details on side effects, error handling, permissions, or rate limits. Important note about presenting URL is a usage instruction but not behavioral transparency.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Description is front-loaded with purpose and important note, then structured parameter list. Some redundancy (e.g., default values repeated), but reasonable for the number of parameters.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Complex tool with 28 params, no annotations, and an output schema exists (so return values not needed). Input parameter descriptions are thorough, but missing behavioral warnings and explicit usage guidance. Still fairly complete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 0%, so description fully compensates by explaining all 28 parameters with clear semantics, defaults, and usage notes. Each parameter gets a meaningful explanation beyond the schema's type-only information.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Description clearly states the verb 'share', resource 'multiple local files', and action 'auto-zips them into a single download'. Distinguishes from siblings like fflShareFile (single file) and fflShareBase64 (base64).

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Description implies use for multiple files ('auto-zips') but does not explicitly state when to use this tool versus alternatives. No explicit 'when not to use' or comparison with sibling tools.

    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 full burden. It explains that the tool returns a sessionId and link, and that qrInTerminal yields a QR code. However, it lacks details on error handling, security implications, or behavior under failure conditions. The extensive parameter list describes configuration but not overall behavioral traits.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is lengthy but well-structured. The critical usage note is front-loaded. The Args section is systematic, though slightly verbose. Every sentence adds value, but it could be more concise by grouping related parameters.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Despite the complexity (22 parameters, no output schema description needed as output schema exists), the description covers all parameters and basic outputs. However, it omits context about the ffl system dependencies, authentication prerequisites, or error scenarios, which would aid completeness.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so the description must compensate. It provides a detailed Args list for all 22 parameters, explaining each parameter's role (e.g., 'authUser: HTTP Basic Auth username to protect the link'). This fully adds meaning beyond the bare schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose: 'Share arbitrary binary data (base64-encoded) using ffl.' It specifies the verb (share), resource (binary data via base64), and output (sessionId and link). This distinguishes it from sibling tools like fflShareFile, fflShareText, etc., which handle file or text sharing.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description includes an important usage note about presenting the link as clickable, but it does not explicitly state when to use this tool vs alternatives (e.g., fflShareFile for files). Usage context is implied but no exclusions or prerequisites are mentioned.

    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 burden of behavioral disclosure. It explains the primary function, return values, and parameter effects, but does not address error handling, side effects, or limitations. The description is informative but leaves some behavioral aspects implicit.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is structured with an introductory sentence, an important usage note, and a bulleted parameter list. While verbose due to 22 parameters, the structure is logical and front-loaded with key information. Some redundancy could be trimmed, but it is functional.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (22 parameters, 1 required), the description covers the core functionality, return values (sessionId, link, optional QR), and parameter details. It lacks explicit error handling or edge case guidance, but for selecting and invoking the tool, it provides sufficient context.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 0%, meaning no parameter descriptions in the JSON Schema. However, the tool description provides a comprehensive 'Args' section detailing every parameter's purpose, default values, and constraints (e.g., types, defaults, special conditions). This fully compensates for the schema gap.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Share text content using ffl' and mentions returning a sessionId and link. This is a specific verb+resource, and the shared context with sibling tools (e.g., fflShareFile, fflShareBase64) differentiates it effectively.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides important usage guidance, such as how to present the link to users and the optional QR code behavior. However, it does not explicitly compare to sibling tools or state when not to use this tool, though the context implies text sharing.

    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 full burden. It discloses WebRTC P2P usage, resume capability, authentication modes, and proxy support. However, it does not mention potential file overwriting or error conditions.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured with headings and an Args section. It is front-loaded with the core purpose. Minor verbosity in parameter listing is justified by complexity, but every sentence earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given 10 parameters, no annotations, and an output schema, the description covers return value, authentication scenarios, and network protocol choice. Missing enableReporting and error handling details prevent a perfect score.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 0%, so description must compensate. It explains 9 of 10 parameters (missing enableReporting) with meaningful context beyond schema types, such as 'Resume incomplete download' and 'Recipient authentication mode required by sender.'

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states it downloads a file from a FastFileLink or HTTP(S) URL, distinguishing between the two modes. The verb 'download' and resource 'file' are specific, and it differentiates from sibling tools like fflShareFile.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explains when to use FastFileLink vs regular URLs but does not explicitly state when not to use this tool or mention alternatives like fflShareFile for uploading. Context is clear but lacks explicit exclusions.

    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?

    No annotations are provided, so the description carries full burden. It discloses that it shares via ffl, respects ALLOWED_BASE_DIR, and can return a QR code. The IMPORTANT note about presenting the link is helpful. However, it does not detail what happens to the files after sharing (e.g., cleanup, session lifecycle) or potential side effects, which could be improved.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is long due to many parameters, but it is well-structured with a clear initial purpose, an important usage note, and a list of parameters. While verbose, every part serves a purpose. It could be slightly more concise by grouping related parameters, but it remains functional.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the complexity (29 parameters, 1 required), the description covers most parameters in detail, though it misses a few (port, invite, pause, enableReporting) that are in the schema. There is an output schema but it is not shown, so return values are not explained. Overall, it provides strong context but has minor gaps.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Despite the schema having 0% description coverage, the tool description exhaustively explains each parameter with meaning, defaults, and examples (e.g., 'exclude: Exclude files matching glob or regex patterns, comma-separated'). This adds significant value beyond the raw schema, aiding correct usage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Share a local file or folder using ffl.' The verb 'share' and resource 'local file or folder' are specific. It also mentions respecting ALLOWED_BASE_DIR, providing context. This distinguishes it from siblings like fflShareText and fflShareBase64, which handle other data types.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage for local file/folder sharing, and the sibling list provides alternatives for other types. However, it lacks explicit guidance on when to choose this tool over siblings or when not to use it. The context is clear enough but without outright exclusions.

    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?

    No annotations are provided, so the description carries the full burden. It fully discloses that it generates two files, the naming convention, the public/private key roles, and the output format (returncode and output). This is comprehensive for a simple file-generation tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured with a summary, file output details, usage examples, and parameter/return documentation. It is concise (no wasted words) and front-loads the core purpose.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple tool with one parameter and a clear output, the description covers all necessary information: what it does, how to use it, what files are created, and how they integrate with sibling tools. The agent can correctly select and invoke the tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The single parameter 'name' is explained as the base name for generated files, with a default behavior (ffl assigns a name). This adds meaning beyond the bare schema, which only specifies type and default.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states it generates an RSA keypair for passwordless pubkey authentication, specifies the output files (.fflpub and .fflkey), and explains how the keys are used with sibling tools (fflShareFile, fflDownload), distinguishing its purpose.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides explicit examples of when to use the tool (generating keys for passwordless auth) and shows how the output keys are used with other tools, though it doesn't explicitly state when not to use it.

    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

ffl-mcp MCP server

Copy to your README.md:

Score Badge

ffl-mcp MCP server

Copy to your README.md:

Latest Blog Posts

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/nuwainfo/ffl-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server