Fify

Turn grounded AI answers into trusted comparisons, plans, timelines, and decision views.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
81%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,235Tokens (tool definitions)
~6.1 KBTypical response size
Moderate attention impact (0.96% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "fify": {
      "url": "https://fify-chatgpt.renfei1992.chatgpt.site/api/mcp"
    }
  }
}

Remote endpoints

https://fify-chatgpt.renfei1992.chatgpt.site/api/mcpstreamable-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢render_information_ui(version, originalRequest, groundedAnswer, locale, profileSubject, ...)

Render a fully grounded answer as a non-consequential interactive information view when structure or interaction materially improves it. Complete factual reasoning first and always pass the authoritative plain answer. If the user supplied sufficient facts, use them directly and invoke immediately without extra retrieval. For a named real-person profile, set profileSubject to the canonical name unless the user requests no image; Fify will perform a bounded trusted Wikimedia portrait lookup. Pre-resolved attributed Wikimedia or Openverse media may also be supplied, but never invent or guess media URLs.

Input Schema

{
  "type": "object",
  "properties": {
    "version": {
      "type": "string",
      "const": "1.0"
    },
    "originalRequest": {
      "type": "string"
    },
    "groundedAnswer": {
      "type": "string",
      "minLength": 1,
      "maxLength": 16000
    },
    "locale": {
      "type": "string",
      "minLength": 2,
      "maxLength": 35
    },
    "profileSubject": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Canonical person name for a real-person profile. Omit when the user requests no image or the subject is not a person."
    },
    "sections": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[a-z0-9]+(?:[-_.:][a-z0-9]+)*$"
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 110
          },
          "body": {
            "type": "string",
            "maxLength": 4000
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/properties/sections/items/properties/id"
                },
                "label": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 90
                },
                "value": {
                  "type": "string",
                  "maxLength": 120
                },
                "detail": {
                  "type": "string",
                  "maxLength": 2048
                },
                "sourceIds": {
                  "type": "array",
                  "items": {
                    "$ref": "#/properties/sections/items/properties/id"
                  },
                  "maxItems": 8
                }
              },
              "required": [
                "id",
                "label",
                "value",
                "detail",
                "sourceIds"
              ],
              "additionalProperties": false
            },
            "maxItems": 12
          },
          "sourceIds": {
            "type": "array",
            "items": {
              "$ref": "#/properties/sections/items/properties/id"
            },
            "maxItems": 8
          }
        },
        "required": [
          "id",
          "title",
          "body",
          "items",
          "sourceIds"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 8
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/sections/items/properties/id"
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 180
          },
          "url": {
            "type": "string",
            "maxLength": 2048
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ],
        "additionalProperties": false
      },
      "maxItems": 32
    },
    "media": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 48,
            "pattern": "^[a-z0-9]+(?:[-_.:][a-z0-9]+)*$"
          },
          "url": {
            "type": "string",
            "maxLength": 2048
          },
          "alt": {
            "type": "string",
            "minLength": 1,
            "maxLength": 180
          },
          "caption": {
            "type": "string",
            "maxLength": 400
          },
          "role": {
            "type": "string",
            "enum": [
              "identity",
              "evidence",
              "illustration"
            ]
          },
          "sourceId": {
            "$ref": "#/properties/sections/items/properties/id"
          }
        },
        "required": [
          "id",
          "url",
          "alt",
          "caption",
          "role",
          "sourceId"
        ],
        "additionalProperties": false,
        "description": "Optional pre-resolved attributed visual evidence from an allowed Wikimedia or Openverse image URL and an existing source page."
      },
      "maxItems": 4
    },
    "suggestedRefinements": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 140
      },
      "maxItems": 2
    },
    "continuationState": {
      "type": "object",
      "properties": {
        "priorRunId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 96
        },
        "checkedIds": {
          "type": "array",
          "items": {
            "$ref": "#/properties/sections/items/properties/id"
          },
          "maxItems": 96
        },
        "selectedIds": {
          "type": "array",
          "items": {
            "$ref": "#/properties/sections/items/properties/id"
          },
          "maxItems": 24
        },
        "inputs": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          },
          "propertyNames": {
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[a-z0-9]+(?:[-_.:][a-z0-9]+)*$"
          }
        }
      },
      "required": [
        "priorRunId",
        "checkedIds",
        "selectedIds",
        "inputs"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "version",
    "originalRequest",
    "groundedAnswer",
    "locale",
    "sections",
    "sources",
    "suggestedRefinements"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "runId": {
      "type": "string"
    },
    "state": {
      "type": "string",
      "enum": [
        "running",
        "complete",
        "failed"
      ]
    },
    "lastSequence": {
      "type": "number"
    },
    "fallbackText": {
      "type": "string"
    },
    "frames": {
      "type": "array",
      "items": {}
    }
  },
  "required": [
    "runId",
    "state",
    "lastSequence",
    "fallbackText",
    "frames"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢read_information_ui_run(runId, afterSequence)

App-only unseen-frame reader for the mounted Fify widget.

Input Schema

{
  "type": "object",
  "properties": {
    "runId": {
      "type": "string"
    },
    "afterSequence": {
      "type": "integer",
      "minimum": 0
    }
  },
  "required": [
    "runId",
    "afterSequence"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "runId": {
      "type": "string"
    },
    "state": {
      "type": "string",
      "enum": [
        "running",
        "complete",
        "failed"
      ]
    },
    "lastSequence": {
      "type": "number"
    },
    "frames": {
      "type": "array",
      "items": {}
    }
  },
  "required": [
    "runId",
    "state",
    "lastSequence",
    "frames"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools
verifiedversion not recorded2 tools