MCP 서버

Fify

io.github.renfei-design/fify
생산성 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Renders grounded answers as interactive views for comparisons, plans, timelines, profiles, and other decision-oriented presentations.

read_information_ui_run
Read an information UI run
App-only unseen-frame reader for the mounted Fify widget.
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['runId', 'afterSequence'], 'properties': {'runId': {'type': 'string'}, 'afterSequence': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['runId', 'state', 'lastSequence', 'frames'], 'properties': {'runId': {'type': 'string'}, 'state': {'enum': ['running', 'complete', 'failed'], 'type': 'string'}, 'frames': {'type': 'array', 'items': {}}, 'lastSequence': {'type': 'number'}}, 'additionalProperties': False}
render_information_ui
Render information as an interactive view
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.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['version', 'originalRequest', 'groundedAnswer', 'locale', 'sections', 'sources', 'suggestedRefinements'], 'properties': {'media': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'url', 'alt', 'caption', 'role', 'sourceId'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9]+(?:[-_.:][a-z0-9]+)*$', 'maxLength': 48, 'minLength': 1}, 'alt': {'type': 'string', 'maxLength': 180, 'minLength': 1}, 'url': {'type': 'string', 'maxLength': 2048}, 'role': {'enum': ['identity', 'evidence', 'illustration'], 'type': 'string'}, 'caption': {'type': 'string', 'maxLength': 400}, 'sourceId': {'$ref': '#/properties/sections/items/properties/id'}}, 'description': 'Optional pre-resolved attributed visual evidence from an allowed Wikimedia or Openverse image URL and an existing source page.', 'additionalProperties': False}, 'maxItems': 4}, 'locale': {'type': 'string', 'maxLength': 35, 'minLength': 2}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'url'], 'properties': {'id': {'$ref': '#/properties/sections/items/properties/id'}, 'url': {'type': 'string', 'maxLength': 2048}, 'title': {'type': 'string', 'maxLength': 180, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 32}, 'version': {'type': 'string', 'const': '1.0'}, 'sections': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'body', 'items', 'sourceIds'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9]+(?:[-_.:][a-z0-9]+)*$', 'maxLength': 64, 'minLength': 1}, 'body': {'type': 'string', 'maxLength': 4000}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'value', 'detail', 'sourceIds'], 'properties': {'id': {'$ref': '#/properties/sections/items/properties/id'}, 'label': {'type': 'string', 'maxLength': 90, 'minLength': 1}, 'value': {'type': 'string', 'maxLength': 120}, 'detail': {'type': 'string', 'maxLength': 2048}, 'sourceIds': {'type': 'array', 'items': {'$ref': '#/properties/sections/items/properties/id'}, 'maxItems': 8}}, 'additionalProperties': False}, 'maxItems': 12}, 'title': {'type': 'string', 'maxLength': 110, 'minLength': 1}, 'sourceIds': {'type': 'array', 'items': {'$ref': '#/properties/sections/items/properties/id'}, 'maxItems': 8}}, 'additionalProperties': False}, 'maxItems': 8, 'minItems': 1}, 'groundedAnswer': {'type': 'string', 'maxLength': 16000, 'minLength': 1}, 'profileSubject': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Canonical person name for a real-person profile. Omit when the user requests no image or the subject is not a person.'}, 'originalRequest': {'type': 'string'}, 'continuationState': {'type': 'object', 'required': ['priorRunId', 'checkedIds', 'selectedIds', 'inputs'], 'properties': {'inputs': {'type': 'object', 'propertyNames': {'pattern': '^[a-z0-9]+(?:[-_.:][a-z0-9]+)*$', 'maxLength': 64, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 500}}, 'checkedIds': {'type': 'array', 'items': {'$ref': '#/properties/sections/items/properties/id'}, 'maxItems': 96}, 'priorRunId': {'type': 'string', 'maxLength': 96, 'minLength': 1}, 'selectedIds': {'type': 'array', 'items': {'$ref': '#/properties/sections/items/properties/id'}, 'maxItems': 24}}, 'additionalProperties': False}, 'suggestedRefinements': {'type': 'array', 'items': {'type': 'string', 'maxLength': 140, 'minLength': 1}, 'maxItems': 2}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['runId', 'state', 'lastSequence', 'fallbackText', 'frames'], 'properties': {'runId': {'type': 'string'}, 'state': {'enum': ['running', 'complete', 'failed'], 'type': 'string'}, 'frames': {'type': 'array', 'items': {}}, 'fallbackText': {'type': 'string'}, 'lastSequence': {'type': 'number'}}, 'additionalProperties': False}
추가됨
read_information_ui_run
2026년 9월 17일 12:49 PM
추가됨
render_information_ui
2026년 9월 17일 12:49 PM