{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "category": "",
    "endpoint": "https://mcp.pixfaro.com/mcp",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pixfaro-mcp.json",
    "kind": "mcp",
    "listed": "indexed",
    "liveUrl": "https://www.anchorterminal.com/api/v1/live/pixfaro-mcp.json",
    "markdownUrl": "https://www.anchorterminal.com/tools/pixfaro-mcp.md",
    "mcpTools": {
      "check": {
        "checker": "anchor-check/1.0",
        "totalTokens": 2432,
        "counts": {
          "error": 0,
          "note": 1,
          "warn": 4
        },
        "findings": [
          {
            "rule": "TC11",
            "severity": "warn",
            "tool": "edit_image",
            "message": "2 parameters without a description: model, overlay",
            "fix": "Describe each one: format, units, an example, and what happens when it's left out."
          },
          {
            "rule": "TC11",
            "severity": "warn",
            "tool": "generate_image",
            "message": "1 parameter without a description: overlay",
            "fix": "Describe each one: format, units, an example, and what happens when it's left out."
          },
          {
            "rule": "TC11",
            "severity": "warn",
            "tool": "render_template",
            "message": "1 parameter without a description: overlay",
            "fix": "Describe each one: format, units, an example, and what happens when it's left out."
          },
          {
            "rule": "TC13",
            "severity": "warn",
            "tool": "render_template",
            "message": "slots (object with no properties)",
            "fix": "Declare the properties (or additionalProperties with a schema) and the array's items."
          },
          {
            "rule": "TC24",
            "severity": "note",
            "message": "8 of 8 tools have no outputSchema",
            "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
          }
        ]
      },
      "checkedAt": "2026-10-04T22:23:34Z",
      "count": 8,
      "note": "answered without the initialize handshake",
      "schemaTokens": 2432,
      "status": "ok",
      "tools": [
        {
          "name": "generate_image",
          "description": "Generate an image from a text prompt. Returns a hosted URL plus cost and balance. Slow models (mode \"async\" in list_models) return a j_… job id instead — poll it with check_job.",
          "inputSchema": {
            "properties": {
              "aspect_ratio": {
                "description": "e.g. \"16:9\" (default 1:1). Ratios are per-model — list_models names the ones verified for each. Gemini models take a fixed set (no 4:1 or wider); the budget fal models compute any bounded W:H, so use one of those for banner shapes — up to 4:1 / 1:4, beyond which the derived strip gets too thin to send. Every fal model is 1K-only, so that is the practical bound.",
                "type": "string"
              },
              "model": {
                "default": "nano-banana-2",
                "description": "Model id from list_models",
                "type": "string"
              },
              "overlay": {
                "oneOf": [
                  {
                    "const": "default",
                    "description": "Apply your saved brand kit (set with PUT /v1/brand-kit)",
                    "type": "string"
                  },
                  {
                    "description": "Optional brand overlay composited into a corner after generation. Provide EITHER text OR logo_id (an uploaded brand logo), not both.",
                    "properties": {
                      "color": {
                        "description": "text only; \"auto\" (default) or #RRGGBB",
                        "type": "string"
                      },
                      "font": {
                        "description": "text only; default space-grotesk",
                        "enum": [
                          "space-grotesk",
                          "inter",
                          "jetbrains-mono"
                        ],
                        "type": "string"
                      },
                      "logo_id": {
                        "description": "A logo uploaded via POST /v1/logos (mutually exclusive with text)",
                        "type": "string"
                      },
                      "logo_style": {
                        "description": "Logo treatment (logo_id only). RECOMMENDED default \"sticker\": crisp die-cut border + drop shadow, legible on any photo. \"shadow\": drop shadow only (use when the logo already contrasts the scene). \"outline\": border only, flat cut-out. \"none\": bare logo, its own alpha only (use only for a pre-processed logo on a controlled background).",
                        "enum": [
                          "sticker",
                          "shadow",
                          "outline",
                          "none"
                        ],
                        "type": "string"
                      },
                      "margin": {
                        "description": "\"safe\" (default) or a non-negative px number"
                      },
                      "opacity": {
                        "description": "0.2–1.0, default 0.9",
                        "type": "number"
                      },
                      "position": {
                        "description": "default bottom-right",
                        "enum": [
                          "top-left",
                          "top-right",
                          "bottom-left",
                          "bottom-right"
                        ],
                        "type": "string"
                      },
                      "size": {
                        "description": "text cap-height or logo width; default m",
                        "enum": [
                          "s",
                          "m",
                          "l"
                        ],
                        "type": "string"
                      },
                      "text": {
                        "description": "Handle to render, ≤64 chars, single line (mutually exclusive with logo_id)",
                        "type": "string"
                      },
                      "weight": {
                        "description": "text only; default 700",
                        "enum": [
                          400,
                          500,
                          700
                        ],
                        "type": "number"
                      }
                    },
                    "type": "object"
                  }
                ]
              },
              "prompt": {
                "description": "What to draw",
                "type": "string"
              },
              "resolution": {
                "description": "Output tier (default 1K); supported tiers and prices per model are in list_models",
                "enum": [
                  "1K",
                  "2K",
                  "4K"
                ],
                "type": "string"
              }
            },
            "required": [
              "prompt"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "readOnlyHint": false,
            "title": "Generate image"
          }
        },
        {
          "name": "edit_image",
          "description": "Edit a previously generated image by its img_… id with a natural-language instruction.",
          "inputSchema": {
            "properties": {
              "aspect_ratio": {
                "description": "Omit to keep the source image's shape. If set, it is per-model — see list_models.",
                "type": "string"
              },
              "image": {
                "description": "img_… id of a previous generation",
                "type": "string"
              },
              "instruction": {
                "description": "What to change",
                "type": "string"
              },
              "model": {
                "default": "nano-banana-2",
                "type": "string"
              },
              "overlay": {
                "oneOf": [
                  {
                    "const": "default",
                    "description": "Apply your saved brand kit (set with PUT /v1/brand-kit)",
                    "type": "string"
                  },
                  {
                    "description": "Optional brand overlay composited into a corner after generation. Provide EITHER text OR logo_id (an uploaded brand logo), not both.",
                    "properties": {
                      "color": {
                        "description": "text only; \"auto\" (default) or #RRGGBB",
                        "type": "string"
                      },
                      "font": {
                        "description": "text only; default space-grotesk",
                        "enum": [
                          "space-grotesk",
                          "inter",
                          "jetbrains-mono"
                        ],
                        "type": "string"
                      },
                      "logo_id": {
                        "description": "A logo uploaded via POST /v1/logos (mutually exclusive with text)",
                        "type": "string"
                      },
                      "logo_style": {
                        "description": "Logo treatment (logo_id only). RECOMMENDED default \"sticker\": crisp die-cut border + drop shadow, legible on any photo. \"shadow\": drop shadow only (use when the logo already contrasts the scene). \"outline\": border only, flat cut-out. \"none\": bare logo, its own alpha only (use only for a pre-processed logo on a controlled background).",
                        "enum": [
                          "sticker",
                          "shadow",
                          "outline",
                          "none"
                        ],
                        "type": "string"
                      },
                      "margin": {
                        "description": "\"safe\" (default) or a non-negative px number"
                      },
                      "opacity": {
                        "description": "0.2–1.0, default 0.9",
                        "type": "number"
                      },
                      "position": {
                        "description": "default bottom-right",
                        "enum": [
                          "top-left",
                          "top-right",
                          "bottom-left",
                          "bottom-right"
                        ],
                        "type": "string"
                      },
                      "size": {
                        "description": "text cap-height or logo width; default m",
                        "enum": [
                          "s",
                          "m",
                          "l"
                        ],
                        "type": "string"
                      },
                      "text": {
                        "description": "Handle to render, ≤64 chars, single line (mutually exclusive with logo_id)",
                        "type": "string"
                      },
                      "weight": {
                        "description": "text only; default 700",
                        "enum": [
                          400,
                          500,
                          700
                        ],
                        "type": "number"
                      }
                    },
                    "type": "object"
                  }
                ]
              },
              "resolution": {
                "description": "Output tier; defaults to the source image's",
                "enum": [
                  "1K",
                  "2K",
                  "4K"
                ],
                "type": "string"
              }
            },
            "required": [
              "image",
              "instruction"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "readOnlyHint": false,
            "title": "Edit image"
          }
        },
        {
          "name": "render_template",
          "description": "Render a typeset card from a template — a finished, on-brand social image (quote card, post card) in about two seconds. Cheaper and more legible than generating type with a model. Get the templates and their slots from list_templates.",
          "inputSchema": {
            "properties": {
              "overlay": {
                "oneOf": [
                  {
                    "const": "default",
                    "description": "Apply your saved brand kit (set with PUT /v1/brand-kit)",
                    "type": "string"
                  },
                  {
                    "description": "Optional brand overlay composited into a corner after generation. Provide EITHER text OR logo_id (an uploaded brand logo), not both.",
                    "properties": {
                      "color": {
                        "description": "text only; \"auto\" (default) or #RRGGBB",
                        "type": "string"
                      },
                      "font": {
                        "description": "text only; default space-grotesk",
                        "enum": [
                          "space-grotesk",
                          "inter",
                          "jetbrains-mono"
                        ],
                        "type": "string"
                      },
                      "logo_id": {
                        "description": "A logo uploaded via POST /v1/logos (mutually exclusive with text)",
                        "type": "string"
                      },
                      "logo_style": {
                        "description": "Logo treatment (logo_id only). RECOMMENDED default \"sticker\": crisp die-cut border + drop shadow, legible on any photo. \"shadow\": drop shadow only (use when the logo already contrasts the scene). \"outline\": border only, flat cut-out. \"none\": bare logo, its own alpha only (use only for a pre-processed logo on a controlled background).",
                        "enum": [
                          "sticker",
                          "shadow",
                          "outline",
                          "none"
                        ],
                        "type": "string"
                      },
                      "margin": {
                        "description": "\"safe\" (default) or a non-negative px number"
                      },
                      "opacity": {
                        "description": "0.2–1.0, default 0.9",
                        "type": "number"
                      },
                      "position": {
                        "description": "default bottom-right",
                        "enum": [
                          "top-left",
                          "top-right",
                          "bottom-left",
                          "bottom-right"
                        ],
                        "type": "string"
                      },
                      "size": {
                        "description": "text cap-height or logo width; default m",
                        "enum": [
                          "s",
                          "m",
                          "l"
                        ],
                        "type": "string"
                      },
                      "text": {
                        "description": "Handle to render, ≤64 chars, single line (mutually exclusive with logo_id)",
                        "type": "string"
                      },
                      "weight": {
                        "description": "text only; default 700",
                        "enum": [
                          400,
                          500,
                          700
                        ],
                        "type": "number"
                      }
                    },
                    "type": "object"
                  }
                ]
              },
              "scale": {
                "description": "device pixel ratio; 2 default, 3 costs $0.01 more",
                "enum": [
                  1,
                  2,
                  3
                ],
                "type": "number"
              },
              "size": {
                "description": "default 16:9",
                "enum": [
                  "16:9",
                  "1:1",
                  "4:5",
                  "og"
                ],
                "type": "string"
              },
              "slots": {
                "description": "The template's slot values, e.g. { \"quote\": \"…\", \"handle\": \"@you\" }. Image slots take an asset id from upload_asset, or \"default\" for your brand kit.",
                "type": "object"
              },
              "style": {
                "description": "Leave unset for the template default, \"auto\" for a random combination that avoids your last one, \"brand\" for your saved colours, or an object of style axes.",
                "oneOf": [
                  {
                    "enum": [
                      "auto",
                      "brand"
                    ],
                    "type": "string"
                  },
                  {
                    "properties": {
                      "font": {
                        "type": "string"
                      },
                      "layout": {
                        "type": "string"
                      },
                      "palette": {
                        "type": "string"
                      },
                      "shadow": {
                        "description": "crisp offset shadow behind the type",
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                ]
              },
              "template": {
                "description": "Template id from list_templates, e.g. \"quote-card\"",
                "type": "string"
              }
            },
            "required": [
              "template",
              "slots"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "readOnlyHint": false,
            "title": "Render template"
          }
        },
        {
          "name": "upload_asset",
          "description": "Upload an image (PNG or JPEG, ≤5 MB) as a reusable asset — an avatar for a card, for example. Returns an ast_… id to pass into a template slot.",
          "inputSchema": {
            "properties": {
              "data": {
                "description": "data URI or bare base64, e.g. \"data:image/png;base64,…\"",
                "type": "string"
              },
              "kind": {
                "description": "what the image is for; \"avatar\" for a card byline",
                "enum": [
                  "avatar",
                  "logo",
                  "photo",
                  "image"
                ],
                "type": "string"
              }
            },
            "required": [
              "data",
              "kind"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "readOnlyHint": false,
            "title": "Upload asset"
          }
        },
        {
          "name": "list_models",
          "description": "List available image models with pricing and latency.",
          "inputSchema": {
            "properties": {},
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true,
            "title": "List models"
          }
        },
        {
          "name": "list_templates",
          "description": "List card templates with their slots, style axes and exact price.",
          "inputSchema": {
            "properties": {},
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true,
            "title": "List templates"
          }
        },
        {
          "name": "get_balance",
          "description": "Show the current prepaid balance in USD.",
          "inputSchema": {
            "properties": {},
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true,
            "title": "Balance"
          }
        },
        {
          "name": "check_job",
          "description": "Check an async generation job by its j_… id. Slow models (mode \"async\" in list_models) return a job instead of an image — poll this until it succeeds or fails.",
          "inputSchema": {
            "properties": {
              "job_id": {
                "description": "j_… id returned by generate_image / edit_image",
                "type": "string"
              }
            },
            "required": [
              "job_id"
            ],
            "type": "object"
          },
          "annotations": {
            "readOnlyHint": true,
            "title": "Check job"
          }
        }
      ]
    },
    "name": "pixfaro.com MCP server",
    "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
    "packages": [
      {
        "registryType": "npm",
        "identifier": "@pixfaro/mcp",
        "version": "0.1.2",
        "transport": "stdio"
      }
    ],
    "pageJsonUrl": "https://www.anchorterminal.com/tools/pixfaro-mcp.json",
    "popularity": {
      "githubStars": 0,
      "npmWeekly": 55
    },
    "registryName": "com.pixfaro/mcp",
    "remotes": [
      {
        "type": "streamable-http",
        "url": "https://mcp.pixfaro.com/mcp"
      }
    ],
    "repository": "https://github.com/pixfaro/mcp",
    "reviewed": false,
    "slug": "pixfaro-mcp",
    "source": "the official MCP registry",
    "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=com.pixfaro/mcp",
    "summary": "Generate images with any major model — one API key, one prepaid balance, one MCP.",
    "updatedAt": "2026-08-19T00:34:19Z",
    "url": "https://www.anchorterminal.com/tools/pixfaro-mcp",
    "vendor": "pixfaro.com",
    "vendorUrl": "https://pixfaro.com",
    "version": "0.1.2",
    "websiteUrl": "https://pixfaro.com",
    "where": "both",
    "why": [
      "vendor"
    ]
  }
}
