Skip to main content
Glama

faf_about

Learn what the .faf file format is, including its structure and typical use cases.

Instructions

Learn what .faf format is

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The handleFafAbout method implements the tool logic. It returns a static informational message explaining what .faf format is, including package metadata, version, and a description of how it works.
      private async handleFafAbout(_args: any): Promise<CallToolResult> {  // βœ… FIXED: Prefixed unused args
        // Stop FAFfing about and get the facts!
        const packageInfo = {
          name: 'claude-faf-mcp',
          version: VERSION,
          description: 'We ARE the C in MCP. I⚑🍊 - The formula that changes everything.',
          author: 'FAF Team (team@faf.one)',
          website: 'https://faf.one',
          npm: 'https://www.npmjs.com/package/claude-faf-mcp'
        };
    
        const aboutText = `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    πŸ€– .faf = project DNA for AI
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    
    WHAT IS .FAF?
    β€’ .faf = Foundational AI-context Format
    β€’ One file captures your project DNA for any AI
    β€’ The dot (.) means it's a file format!
    
    🧑 Trust: Context verified, IANA-registered
    ⚑️ Speed: Generated in <29ms
    
    Version ${packageInfo.version}
    
    Your project's DNA β€” persistent context
    that survives sessions, tools, and AI systems.
    
    HOW IT WORKS:
    1. Drop a file or paste the path
    2. Create .faf (Foundational AI-context Format)
    3. Talk to Claude to bi-sync it
    4. You're done⚑
    
    🩡 You just made Claude Happy
    🧑⚑️ Persistent context. Zero drift.`;
    
        return {
          content: [{
            type: 'text',
            text: aboutText
          }]
        };
      }
  • Tool schema definition in listTools(): faf_about has no required input parameters (empty properties object), and returns a text description of .faf format.
    {
      name: 'faf_about',
      description: 'Learn what .faf format is',
      inputSchema: {
        type: 'object',
        properties: {},
      }
    },
  • Type metadata for faf_about: categorized as a 'core' tool in the 'help' category with priority 3.
    faf_about: {
      name: 'faf_about',
      visibility: 'core',
      category: 'help',
      description: 'Learn what .faf is - project DNA for AI',
      priority: 3,
    },
  • faf_about is listed in the CORE_TOOLS constant array, marking it as one of the 20 essential (non-advanced) tools.
      'faf_about',
    ] as const;
  • Routing registration in the callTool switch statement: dispatches 'faf_about' to handleFafAbout method.
    case 'faf_about':
      return await this.handleFafAbout(args);
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully convey behavioral traits. It only states the purpose, omitting details like whether it reads data, what the output is, or any side effects. The minimal text leaves the agent guessing.

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 very concise (one sentence). It is front-loaded but may be too brief; a bit more context could improve it without adding waste.

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 zero parameters and no output schema, the description is minimally adequate. However, it lacks details on what information is returned (e.g., textual explanation, link) and assumes the agent knows what '.faf format' refers to.

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?

There are no parameters, so the schema coverage is 100%. The description adds no parameter-specific meaning, but the baseline for 0 parameters is 4.

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 uses a specific verb 'Learn' and clearly identifies the resource '.faf format'. It effectively distinguishes this tool from siblings like faf_debug or faf_chat by indicating it's an educational tool.

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 any prerequisites, context, or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/Wolfe-Jam/grok-faf-mcp'

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