Fictura

co.fictura由 fictura.co 发布官方发布者v0.1.2更新于 Nov 5, 2026

Paywalls, onboarding, subscription analytics, A/B tests, attribution and errors for mobile apps.

已验证Streamable HTTP可网页运行安全与监控数据与分析商业与电商

概览

AI 生成的概览

Fictura 让 AI 助手读取移动应用的付费墙、引导流程、订阅分析、实验、归因和崩溃数据,并可编辑草稿。

可以做什么
  • 搜索、列出并阅读 Fictura 文档页面,无需登录
  • 读取应用配置:SDK 密钥与 API 地址、功能与第三方集成状态、商店订阅产品、深度链接配置、推送配置
  • 获取订阅分析、漏斗、同期群、埋点计划、用户、权益判定、实验、归因、广告花费、广告系列、创作者与商店分析
  • 查看与搜索错误问题,获取堆栈、问题简报和分布式追踪
  • 读取、校验、创建并保存付费墙与引导流程草稿,并与已打开的 Studio 编辑器配对以把文档放到画布上
适用场景
适合助手处理已接入 Fictura 的 Expo 或 React Native 应用:用真实凭据接入 SDK、排查漏斗流失或崩溃、查看实验胜出情况,或起草待审核的付费墙和引导流程。
运行要求
远程端点 mcp.fictura.co(streamable HTTP),或使用 @fictura/mcp npm 包作为本地 stdio 桥接(需 Node.js)。需通过 OAuth 登录 Fictura 账号,或以 X-API-Key、Authorization Bearer 提供 MCP 密钥,本地桥接可用 FICTURA_MCP_KEY。应用数据需有效的 Fictura 订阅并开通 AI 访问;文档工具无需任何凭据。
安装前请注意
MCP 密钥(fk_mcp_...)可读取收入和用户数据,应放在环境变量或客户端密钥存储中,切勿写入代码仓库。密钥默认只读,除非创建时授予草稿编辑权限;update_error_issue 和 AppsFlyer 导入需额外开启权限。保存草稿和修改编辑器会写入数据,但线上付费墙和流程无法被修改,每次保存都是可回滚的版本。应用数据会发送至 Fictura。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Fictura,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/co.fictura%2Fmcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "fictura": {
      "type": "http",
      "url": "https://mcp.fictura.co/mcp"
    }
  }
}

README

[Fictura]

Fictura MCP server

Give your AI agent your mobile app's real paywalls, funnels, experiments, attribution and crashes, and let it build paywall and onboarding drafts you review before anything goes live.

Fictura is the growth platform for Expo and React Native apps: paywalls and onboarding flows built in the Studio editor, subscription analytics and funnels, A/B experiments, attribution and ad spend, deep links, App Store and Google Play analytics, and error tracking with stack traces. This server puts all of it in reach of Claude, ChatGPT, Codex, Cursor, VS Code, Windsurf, Gemini CLI and any other MCP client.

text
https://mcp.fictura.co/mcp

Streamable HTTP, stateless, JSON responses. https://api.fictura.co/mcp serves the same server.

What your agent can do

AskWhat happens
"Add Fictura to this Expo app and show the onboarding flow at the right placement."Reads the app's real SDK key and API base (get_app_setup), the docs (read_doc) and the placements that exist (list_surfaces), then writes the integration with no placeholders.
"Why did trial-to-paid drop last week? Show me where people leave the funnel."Pulls the funnel with drop-off per step and compares cohorts (get_analytics).
"Fix the top crash in the latest release."Finds the issue, reads its source-mapped stack, breadcrumbs and a fix prompt (list_error_issues, get_error_issue_brief), then edits your code.
"Draft an annual-plan paywall from a template so I can review it in Studio."Picks a real template (list_templates) and creates a draft (create_paywall_draft). You publish it in the dashboard, or don't.

More: "Which campaigns paid back this month?" (get_acquisition_report), "Which experiment is winning, and how sure are we?" (list_experiments), "Are Universal Links set up right?" (get_link_infrastructure).

Connect

One-click

[Add to Cursor] [Install in VS Code]

Both buttons add the URL only; sign in with your Fictura account when the editor asks. If the buttons do nothing on your system, open these links directly:

text
cursor://anysphere.cursor-deeplink/mcp/install?name=fictura&config=eyJ1cmwiOiJodHRwczovL21jcC5maWN0dXJhLmNvL21jcCJ9vscode:mcp/install?%7B%22name%22%3A%22fictura%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.fictura.co%2Fmcp%22%7D

Claude (claude.ai, Claude Desktop, Cowork)

  1. Open Customize → Connectors, select + Add, then Add custom connector.
  2. Name it Fictura, paste https://mcp.fictura.co/mcp and select Continue.
  3. Keep the detected sign-in settings, select Add, then connect and sign in with Fictura. To use an MCP key instead, choose No sign in and add the key under Request headers as X-API-Key.

On Team and Enterprise plans an Owner adds the connector first under Organization settings → Connectors, then each member connects.

ChatGPT

  1. Go to chatgpt.com/plugins, select +, then Add custom MCP server.
  2. Enter https://mcp.fictura.co/mcp and choose OAuth for authentication.
  3. Select Create as a plugin, then sign in with Fictura.

Your account or workspace policy must allow custom MCP servers.

Claude Code

Install the plugin from this repository. It adds the server and a skill that makes Claude read your app's real setup before it writes integration code:

bash
claude plugin marketplace add Apex-Byte-Technologies/fictura-mcpclaude plugin install fictura@fictura

Or add only the server:

bash
claude mcp add --transport http fictura https://mcp.fictura.co/mcp

Then run /mcp, pick fictura and sign in. To use an MCP key instead:

bash
claude mcp add --transport http fictura https://mcp.fictura.co/mcp \  --header "X-API-Key: $FICTURA_MCP_KEY"

Codex (CLI, IDE extension, ChatGPT desktop app)

bash
codex mcp add fictura --url https://mcp.fictura.co/mcpcodex mcp login fictura

With an MCP key instead of sign-in, keep the key in an environment variable:

bash
export FICTURA_MCP_KEY=fk_mcp_...codex mcp add fictura --url https://mcp.fictura.co/mcp --bearer-token-env-var FICTURA_MCP_KEY

The same thing in ~/.codex/config.toml:

toml
[mcp_servers.fictura]url = "https://mcp.fictura.co/mcp"bearer_token_env_var = "FICTURA_MCP_KEY"

Cursor

Use the button above, or add this to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

json
{  "mcpServers": {    "fictura": {      "url": "https://mcp.fictura.co/mcp"    }  }}

With an MCP key, add "headers": { "X-API-Key": "${env:FICTURA_MCP_KEY}" } to the fictura entry.

VS Code

Use the button above to sign in with Fictura. To use an MCP key instead, add this to .vscode/mcp.json; VS Code asks for the key once and stores it securely.

json
{  "inputs": [    {      "type": "promptString",      "id": "fictura-mcp-key",      "description": "Fictura MCP key (fk_mcp_...)",      "password": true    }  ],  "servers": {    "fictura": {      "type": "http",      "url": "https://mcp.fictura.co/mcp",      "headers": { "X-API-Key": "${input:fictura-mcp-key}" }    }  }}

Windsurf

Open the Cascade panel's ... menu, then Open MCP config file, and add:

json
{  "mcpServers": {    "fictura": {      "serverUrl": "https://mcp.fictura.co/mcp",      "headers": { "X-API-Key": "${env:FICTURA_MCP_KEY}" }    }  }}

Gemini CLI

bash
gemini extensions install https://github.com/Apex-Byte-Technologies/fictura-mcp

The installer asks for an optional MCP key and keeps it in your system keychain. Change it later with gemini extensions config fictura.

Claude Desktop with a local bridge (npx)

For clients that only run local (stdio) servers, the @fictura/mcp package bridges to the hosted server. In Claude Desktop, open Settings → Developer → Edit Config and add:

json
{  "mcpServers": {    "fictura": {      "command": "npx",      "args": ["-y", "@fictura/mcp"],      "env": { "FICTURA_MCP_KEY": "fk_mcp_..." }    }  }}

The bridge reads FICTURA_MCP_KEY and, optionally, FICTURA_API_BASE (default https://api.fictura.co). Claude Desktop also supports the custom connector above, which needs no local install.

Authentication

OptionHowBest for
Sign in with Fictura (OAuth 2.1)Add the URL only. Your client opens Fictura's sign-in; on the consent screen you pick one app and an access level (read, or read and edit drafts).Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code
MCP keyCreate one in the Fictura dashboard under Setup → Coding agents (MCP). Send it as Authorization: Bearer fk_mcp_... or X-API-Key: fk_mcp_....CI, scripts, clients without MCP sign-in
NoneConnect without signing in.Reading the Fictura docs before you have an account

Without sign-in or a key, only the three documentation tools work: search_docs, list_docs and read_doc. Every other tool answers with how to connect.

A key is read-only unless you tick Can edit draft paywalls when you create it (those keys start with fk_mcpw_). The AppsFlyer import needs a key created with Can connect and import data. App data over MCP needs an active Fictura subscription with AI access.

Tools

44 tools and one prompt. "Read" tools change nothing.

AreaToolWhat it doesAccess
Docssearch_docsSearch Fictura documentationNo sign-in
Docslist_docsList Fictura documentation pagesNo sign-in
Docsread_docRead a Fictura documentation pageNo sign-in
Setupget_app_setupGet this app's Fictura credentials and endpointsRead
Setupget_setup_statusGet integration and feature statusRead
Setuplist_store_productsList App Store subscription productsRead
Setupget_link_infrastructureGet deep link and tracking domain configurationRead
Setupget_push_configGet push notification configurationRead
Analyticsget_analyticsGet funnel, overview or cohort analyticsRead
Analyticsget_tracking_planGet the event tracking planRead
Userslist_usersList usersRead
Usersget_userGet one user's full historyRead
Userscheck_entitlementCheck whether a user is subscribedRead
Paywalls & onboardinglist_surfacesList paywalls, onboarding flows and placementsRead
Paywalls & onboardingget_surfaceGet one paywall or onboarding flow's configRead
Paywalls & onboardinglist_templatesList built-in paywall and onboarding templatesRead
Paywalls & onboardingget_paywall_docGet a Studio paywall's documentRead
Paywalls & onboardingvalidate_paywall_docCheck a paywall document without saving itRead
Paywalls & onboardingsave_paywall_docSave a DRAFT paywall's documentEdit drafts
Paywalls & onboardingcreate_paywall_draftCreate a new DRAFT Studio paywallEdit drafts
Paywalls & onboardingget_onboarding_docGet an onboarding flow's documentRead
Paywalls & onboardingvalidate_onboarding_docCheck an onboarding document without saving itRead
Paywalls & onboardingsave_onboarding_docSave a DRAFT onboarding flow's documentEdit drafts
Paywalls & onboardingcreate_onboarding_draftCreate a new DRAFT onboarding flowEdit drafts
Studio editorpair_editorPair with an open Studio editorRead
Studio editoreditor_get_docRead the document open in the paired editorRead
Studio editoreditor_set_docPut a document on the paired editor's canvas (not saved)Edit drafts
Studio editorunpair_editorEnd the pairing with the editorRead
Experimentslist_experimentsList experimentsRead
Experimentsget_experimentGet one experimentRead
Acquisitionget_attribution_reportGet attribution, install and KPI reportingRead
Acquisitionget_acquisition_reportGet paid acquisition performanceRead
Acquisitionlist_campaignsList live ad campaignsRead
Acquisitionlist_creatorsList creators and their performanceRead
Storeget_store_analyticsGet App Store and Google Play analytics (Appfigures)Read
Errorslist_error_issuesList error issuesRead
Errorssearch_error_issuesSearch error issuesRead
Errorsget_error_issueGet one error issue with stack tracesRead
Errorsget_error_issue_briefGet an issue brief and a fix promptRead
Errorsupdate_error_issueChange an error issueWrite, if the app allows it
Errorsget_traceGet one distributed traceRead
AppsFlyer importget_appsflyer_import_statusGet AppsFlyer import statusRead
AppsFlyer importstart_appsflyer_importStart the AppsFlyer importWrite, import key
AppsFlyer importget_appsflyer_attribution_summarySummarize imported AppsFlyer attributionRead

Prompt: integrate_fictura_sdk (Integrate the Fictura SDK) walks the agent through wiring @fictura/sdk into an Expo / React Native app with the app's real credentials.

Security

  • The app comes from your sign-in or key, never from the agent. No tool takes an app id, so there is no argument an agent could pass to read another app's data. A sign-in reaches only the one app you chose on the consent screen.
  • Drafts never go live. The paywall and onboarding tools create and edit drafts only. Saving a live paywall or flow is refused, and going live is a click in the Fictura dashboard. Every save is a new version you can roll back; the history marks it mcp: <note>.
  • The editor stays yours. editor_set_doc changes the canvas of a Studio editor you paired with a one-time code. It does not save; you see the change, can undo it, and save it yourself.
  • Other writes are opt-in. update_error_issue works only after you turn on Let MCP keys change issues in the app's Issues settings. start_appsflyer_import needs a key created with Can connect and import data.
  • Revocation is immediate. A revoked or invalid key is rejected on its next request with an error, never silently downgraded.
  • Keep keys out of code. MCP keys (fk_mcp_...) read revenue and user data: store them in environment variables or your client's secret storage, never in a repository. The SDK key that get_app_setup returns (gk_...) is different: it is publishable and safe to ship in your app.

Report a vulnerability as described in SECURITY.md.

This repository

This repository holds the public listing files for the hosted server. The server itself runs at Fictura; there is no server code here.

PathWhat it is
server.jsonEntry for the official MCP Registry as co.fictura/mcp
.claude-plugin/marketplace.json, plugins/fictura/Claude Code plugin marketplace and plugin
.cursor-plugin/plugin.json, mcp.jsonCursor plugin
gemini-extension.jsonGemini CLI extension
openai/ChatGPT and Codex plugin bundle; build the upload ZIP with scripts/build-openai-zip.sh
assets/Icons (SVG, and PNG at 48, 128, 256, 400 and 512 px)

Links

License

MIT © Fictura

来源:README.md,提交 2ee01cc

工具

44

search_docs

Search Fictura documentation

Full-text search across the Fictura docs, grouped by page. Use this before answering any 'how do I…' question about the SDK, API, paywalls, entitlements, links or webhooks — the docs are the source of truth and are regenerated on every code change. Returns page paths; pass one to read_doc for the full text. No API key required.

输入参数limitquery必填

list_docs

List Fictura documentation pages

The full documentation index — every page path, grouped by section, with a one-line description. Use it to find the right page when a search term is hard to guess. No API key required.

无需输入参数。

read_doc

Read a Fictura documentation page

The complete markdown of one documentation page. Accepts a site-relative path such as '/implementation/welcome/sdk-quickstart' (a full docs.fictura.co URL works too). If the path is wrong, the closest real paths come back as suggestions. No API key required.

输入参数path必填

get_app_setup

Get this app's Fictura credentials and endpoints

The real values needed to wire the Fictura SDK into a codebase: the API base URL, this app's publishable SDK key (gk_…), and the RevenueCat webhook URL. ALWAYS call this before generating integration code — never leave a placeholder API key in what you write. The SDK key is publishable and safe to commit in app source; it identifies the app, not a person.

无需输入参数。

get_setup_status

Get integration and feature status

What is actually configured for this app: the setup checklist, every Fictura feature toggle and whether it is on, and which third-party integrations (Stripe, RevenueCat, Slack, Sentry, App Store Connect, …) are connected. Use it to check whether a feature is enabled before writing code that depends on it — a disabled tool is a server-side kill switch the SDK obeys.

无需输入参数。

get_analytics

Get funnel, overview or cohort analytics

This app's real numbers. `overview` gives headline metrics (users, trials, trial→paid rate, events by name, cancel reasons, 14-day activity). `funnel` gives the ordered conversion funnel with per-step drop-off. `cohorts` compares behaviour across billing outcomes — what converted users did that cancelled users didn't. Below ~100 users in a step the sample is too small to read. `stores` splits paying users, purchases and revenue by App Store / Google Play / web and by storefront country (last 28 days).

输入参数view必填

get_attribution_report

Get attribution, install and KPI reporting

Where installs and revenue actually came from. `summary` is the headline attribution picture (installs, organic vs non-organic, revenue). `kpis` breaks the same window down by source, campaign, link or day. `installs` lists individual installs with their attribution. Defaults to the trailing 28 days.

输入参数view必填limitsinceuntilgroup_by

list_users

List users

The app's users, most recently active first — each with an identity label, event count, last seen, and derived churn state (in_trial, converted, cancelled, expired, billing_issue, grace_period, paused, refunded, none). Capped so a large app does not flood the context; `total` reports how many matched before the cap.

输入参数limitchurn_state

get_user

Get one user's full history

One user's identity (every stitched device / account / RevenueCat id), event breakdown, churn state and recent activity. Accepts the Fictura master user id, or any identifier the app knows them by — a device id, account id or RevenueCat id.

输入参数user_id必填

check_entitlement

Check whether a user is subscribed

The authoritative paid/not-paid verdict for one user, unified across Stripe, RevenueCat, App Store and Play — the same answer GET /api/v1/entitlements/{user_id} returns to a server. Note: `environment` is SANDBOX when the verdict rests on test purchases, so always check it before granting production access; a cancellation only flips will_renew (access runs to expires_at); and an unknown user is a valid 'none' answer, not an error.

输入参数user_id必填

get_tracking_plan

Get the event tracking plan

Every event this app has ever sent, with volume, last-seen, and whether capture is switched off. Use it before adding instrumentation so you reuse the existing event name instead of introducing a near-duplicate — the name chosen here is the same string an experiment later names as its primary metric.

无需输入参数。

list_surfaces

List paywalls, onboarding flows and placements

Every paywall and onboarding flow, what is actually being served at each placement (running experiment > live > none), and the valid placement names. IMPORTANT: read `placements` before writing a placement string into code. The list is configured ∪ observed, so a name that appears only under `observed` is usually a typo in the app — and a placement that does not exist renders nothing at all, with no error.

无需输入参数。

get_surface

Get one paywall or onboarding flow's config

The full configuration of one paywall or onboarding flow, plus its version history. Note that configs never contain price strings — prices resolve at render time from the PurchasesAdapter's packages, so never copy a price literal out of (or into) a config.

输入参数id必填kind必填

list_templates

List built-in paywall and onboarding templates

The one-click starter templates available for paywalls or onboarding flows, with the template key and what each looks like. Use this when asked to add a paywall so you pick a real template key rather than inventing one.

输入参数kind必填

list_experiments

List experiments

Every experiment with status and, for running or finished ones, full Bayesian results — exposures, conversions, and the probability each variant is best.

无需输入参数。

get_experiment

Get one experiment

One experiment with its variants and full Bayesian results.

输入参数id必填

get_acquisition_report

Get paid acquisition performance

`roas` gives per-campaign spend, attributed installs/trials/paying users, revenue, CPI, CAC and ROAS, plus blended totals and explicitly-unattributed revenue — always keep attributed and blended figures apart when reporting these. `spend` gives raw daily ad-spend rows. `links` lists this app's tracking links.

输入参数daysview必填sinceuntilprovider

get_store_analytics

Get App Store and Google Play analytics (Appfigures)

Store-reported numbers synced from Appfigures: downloads, re-downloads, updates, uninstalls, store revenue after the store's cut (subscriptions, in-app purchases, ads), top countries, the ratings snapshot, recent reviews with text, and category chart positions. Money is in micros of `currency`. Store revenue is a separate figure from RevenueCat revenue; never add the two. Returns connected: false when Appfigures is not set up.

输入参数daysreviews

list_campaigns

List live ad campaigns

Campaigns read live from a connected ad platform: status, daily budget and ad sets. Returns a not_connected result rather than failing when the provider is not set up. This calls the provider's API, so prefer get_acquisition_report for historical numbers.

输入参数provider必填

list_creators

List creators and their performance

Creator records with a 28-day funnel per creator (clicks, installs, trials, paying users) and the tracking links tagged to each.

无需输入参数。

get_push_config

Get push notification configuration

Whether push is set up and who could receive it: registered-device counts per billing cohort (all / paid / trial / free) and whether OneSignal is configured. Returns counts and configuration only — never device tokens or individual recipients.

无需输入参数。

list_store_products

List App Store subscription products

This app's auto-renewable subscriptions in App Store Connect: product id, billing period and Apple review state. Use it to check that a paywall references a product that actually exists. Pass subscription_id to also fetch Apple's price ladder for that one product (Apple scopes price points per subscription, so there is no global list).

输入参数territorysubscription_id

list_error_issues

List error issues

The error feed: grouped issues with level, status, event and user counts, a 14-day sparkline, plus the app's uptime summary. Defaults to unresolved issues only. `synthetic: true` marks console lines the SDK captured, not crashes.

输入参数statusinclude_legacy

get_error_issue

Get one error issue with stack traces

One issue in full: the group, its 50 most recent occurrences with stack traces, release and environment, and 30 days of daily counts. This is the tool to reach for when asked to fix a production error. When the app uploaded source maps, each occurrence also has `stack_resolved` and `frames` (original file, line, column and function; `in_app` marks the app's own code) — read those instead of the minified `stack`. An occurrence with a trace_id can be opened with get_trace.

输入参数issue_id必填

search_error_issues

Search error issues

Find issues by text in the title or culprit, platform, or release (first or last seen in). Returns the same rows as list_error_issues, filtered.

输入参数limitquerystatusreleaseplatform

get_error_issue_brief

Get an issue brief and a fix prompt

One issue condensed for fixing it: latest stack (resolved when source maps exist), in-app frames, breadcrumbs before it, facets (release, OS, device, screen), cause chain, and a ready-to-use fix prompt.

输入参数issue_id必填

update_error_issue

Change an error issue

Resolve, ignore or reopen an issue, assign it, set its priority, or add a note. Only works when the app allows MCP writes (Issues settings → Let MCP keys change issues).

输入参数notestatusassigneeissue_id必填priorityresolved_in_release

get_trace

Get one distributed trace

Every span of one trace (app → backend → dependencies) as a tree: names, services, start offsets, durations, HTTP status and errors, plus the error events linked to the trace. Take the trace_id from an occurrence in get_error_issue. Use it to see where the time went or what failed first.

输入参数trace_id必填

get_paywall_doc

Get a Studio paywall's document

The JSON document a Studio (visual editor) paywall is made of, with its status and version, plus the reference to the document model. Read this before save_paywall_doc, and edit the document you got rather than writing one from scratch — keep node ids, change only what was asked. Prices are never typed: use {{ products.<slot>.price }} and the other product variables.

输入参数id必填

validate_paywall_doc

Check a paywall document without saving it

Runs a document through the same parser and renderer a save uses and reports what is wrong, if anything. Changes nothing.

输入参数doc必填

save_paywall_doc

Save a DRAFT paywall's document

Replaces a draft paywall's document with the one given, as a new version (History in the dashboard shows it as `mcp: <note>` and can roll it back). Refused for a live paywall — copy it in the dashboard first. Needs an MCP key that can edit. Products, translations and other settings are kept.

输入参数id必填doc必填note

create_paywall_draft

Create a new DRAFT Studio paywall

Creates a draft paywall from a Studio template (template_key, from list_templates — the webview ones) or from a document you wrote. It is never made live: going live is done in the dashboard. Needs an MCP key that can edit.

输入参数docname必填template_key

pair_editor

Pair with an open Studio editor

Connects to the paywall editor a person has open, using the 6-character code shown under “Pair an agent” in the Studio. Returns a pairing_id for the editor_* tools. The code works once and for 10 minutes; a pairing lasts 24 hours or until either side stops it.

输入参数code必填

editor_get_doc

Read the document open in the paired editor

The document exactly as it is on the person's screen (unsaved changes included), which paywall it is, the screen they are on and the node they have selected, plus the document model reference. Read this before editor_set_doc and edit what you got — keep node ids, change only what was asked.

输入参数pairing_id必填

editor_set_doc

Put a document on the paired editor's canvas

Replaces the document in the person's open editor with the one given. It is NOT saved: the person sees the change, can undo it, and saves it themselves. The document is validated first and refused with the problems if it does not parse. Needs an MCP key that can edit.

输入参数doc必填notepairing_id必填

unpair_editor

End the pairing with the editor

Stops this pairing. The editor shows that the agent left.

输入参数pairing_id必填

get_onboarding_doc

Get an onboarding flow's document

The JSON document a builder-made onboarding flow is made of, with its status and version, plus the reference to the document model. Read this before save_onboarding_doc, and edit the document you got rather than writing one from scratch — keep step keys and node ids, change only what was asked.

输入参数id必填

validate_onboarding_doc

Check an onboarding document without saving it

Runs a document through the same parser, step-key check and renderer a save uses and reports what is wrong, if anything. Changes nothing.

输入参数doc必填

save_onboarding_doc

Save a DRAFT onboarding flow's document

Replaces a draft flow's document with the one given, as a new version (the dashboard's history shows it as `mcp: <note>` and can roll it back). Refused for a live flow. Needs an MCP key that can edit. Translations, overrides and the exit setting are kept.

输入参数id必填doc必填note

create_onboarding_draft

Create a new DRAFT onboarding flow

Creates a draft onboarding flow from a document you wrote (see get_onboarding_doc's reference). It is never made live: going live is done in the dashboard. Needs an MCP key that can edit.

输入参数doc必填name必填

start_appsflyer_import

Start the AppsFlyer import

Import everything AppsFlyer holds for this app: installs and the channel, campaign, adset and ad behind each one, in-app events and purchases, uninstalls, reinstalls, ad revenue and retargeting traffic. All twelve raw-data reports are walked; ones the AppsFlyer plan lacks are skipped, not failed. Runs in the background and keeps going after this call. mode 'auto' (default) only pulls the days since the last finished import when there is one, and walks the full history otherwise. 'full' re-walks everything. resume=true continues a failed or cancelled run from where it stopped. Safe to call while a run is going: it reports that run instead of starting another. Anything already imported is counted once. Check progress with get_appsflyer_import_status.

输入参数moderesume

get_appsflyer_import_status

Get AppsFlyer import status

Whether AppsFlyer is connected, the latest import run (status, progress, rows imported, duplicates skipped, people created, date range covered, error if it stopped), and whether an import has ever finished. Call before start_appsflyer_import so a finished import is not offered again as though nothing had happened.

无需输入参数。

get_appsflyer_attribution_summary

Summarize imported AppsFlyer attribution

What the AppsFlyer import brought in about where people came from: people with an imported attribution, split by media source (organic included) and acquisition vs retargeting, plus the top campaigns. Filters on the install date. Imported verdicts never overwrite an attribution Fictura's own SDK resolved. For revenue and ROAS by source, use get_attribution_report with view=kpis.

输入参数sinceuntiltop_campaigns

版本历史

1
  1. v0.1.2最新Oct 29, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分