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
已添加
render_information_ui
2026年9月17日 12:49