Skip to main content
Glama

fa_normalize

Normalize Persian (Farsi) text: convert Arabic letter variants (ي, ك) to their Persian forms, unify ZWNJ and spacing, and map Arabic-Indic digits to Persian digits. Use it before indexing, searching or comparing Persian text so that lookalike spellings match. Returns the normalized string. ($0.01 per call, USDC on Base)

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "text": "<text>"
    },
    "name": "fa_normalize"
  }
}

Input Schema

NameRequiredDescriptionDefault
textYesPersian (Farsi) text or value to process. Max 100000 characters.
optionsNooptional, e.g. {"digits":"ascii"}

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
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 and does substantial work: it says exactly what is mutated, that the normalized string is returned, and discloses pricing ($0.01 per call, USDC on Base). It omits auth/invocation requirements and any idempotency or failure-mode detail, but the core behavioral profile is well covered.

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?

Three sentences, front-loaded with the operation itself, then usage guidance, then return/cost. Zero filler and each sentence earns its place; the pricing parenthetical is short and operationally relevant for cost-aware callers.

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 two-parameter transformation tool with no output schema, the description supplies the return value, the default digit direction, the intended pipeline position, and cost. There is no meaningful gap an agent would need to close before calling it correctly.

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 description coverage is already 100% with a baseline of 3, and the description adds meaning by specifying the default digit behavior (Arabic-Indic to Persian digits), which clarifies the otherwise opaque `options` field whose schema shows only an example of {"digits":"ascii"}. The 100000-character limit is left to the schema, but no parameter is misleading.

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?

States a specific verb and resource (normalize Persian/Farsi text) and enumerates the concrete transformations: Arabic letter variants to Persian forms, ZWNJ/spacing unification, and Arabic-Indic to Persian digit mapping. This clearly separates it from siblings like fa_digits, fa_transliterate, or fa_fixRtl, which perform narrower or different transformations.

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?

Gives explicit context for use: 'before indexing, searching or comparing Persian text so that lookalike spellings match.' That is a real when-to-use statement with a rationale. It does not, however, state exclusions or name a sibling alternative for the digit-mapping overlap with fa_digits.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources