{
 "voice": "One card of the book.",
 "agent": {
  "slug": "fictura",
  "name": "Fictura",
  "specialty": "data",
  "description": "Paywalls, onboarding, subscription analytics, A/B tests, attribution and errors for mobile apps.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-10-29T23:06:14.532Z",
  "card": "/agent/fictura",
  "url": "https://allagents.app/agent/fictura",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://mcp.fictura.co/mcp",
   "site": "https://docs.fictura.co/connections/outgoing/mcp-server"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [
   "npm"
  ],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://docs.fictura.co/connections/outgoing/mcp-server",
   "hire": null
  },
  "bubble": "closed",
  "score": 51,
  "score_label": "Fair",
  "mcp_tools": {
   "seen": "2026-10-30",
   "total": 25,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "search_docs",
     "description": "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…"
    },
    {
     "name": "list_docs",
     "description": "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…"
    },
    {
     "name": "read_doc",
     "description": "The complete markdown of one documentation page. Accepts a site-relative path such as '/implementation/welcome/sdk-quickstart' (a full docs.fictura.co URL…"
    },
    {
     "name": "get_app_setup",
     "description": "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…"
    },
    {
     "name": "get_setup_status",
     "description": "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…"
    },
    {
     "name": "get_analytics",
     "description": "This app's real numbers. `overview` gives headline metrics (users, trials, trial→paid rate, events by name, cancel reasons, 14-day activity). `funnel` gives…"
    },
    {
     "name": "get_attribution_report",
     "description": "Where installs and revenue actually came from. `summary` is the headline attribution picture (installs, organic vs non-organic, revenue). `kpis` breaks the…"
    },
    {
     "name": "list_users",
     "description": "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…"
    },
    {
     "name": "get_user",
     "description": "One user's identity (every stitched device / account / RevenueCat id), event breakdown, churn state and recent activity. Accepts the Fictura master user id…"
    },
    {
     "name": "check_entitlement",
     "description": "The authoritative paid/not-paid verdict for one user, unified across Stripe, RevenueCat, App Store and Play — the same answer GET…"
    },
    {
     "name": "get_tracking_plan",
     "description": "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…"
    },
    {
     "name": "list_surfaces",
     "description": "Every paywall and onboarding flow, what is actually being served at each placement (running experiment > live > none), and the valid placement names…"
    },
    {
     "name": "get_surface",
     "description": "The full configuration of one paywall or onboarding flow, plus its version history. Note that configs never contain price strings — prices resolve at render…"
    },
    {
     "name": "list_templates",
     "description": "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…"
    },
    {
     "name": "list_experiments",
     "description": "Every experiment with status and, for running or finished ones, full Bayesian results — exposures, conversions, and the probability each variant is best."
    },
    {
     "name": "get_experiment",
     "description": "One experiment with its variants and full Bayesian results."
    },
    {
     "name": "get_acquisition_report",
     "description": "`roas` gives per-campaign spend, attributed installs/trials/paying users, revenue, CPI, CAC and ROAS, plus blended totals and explicitly-unattributed revenue…"
    },
    {
     "name": "get_store_analytics",
     "description": "Store-reported numbers synced from Appfigures: downloads, re-downloads, updates, uninstalls, store revenue after the store's cut (subscriptions, in-app…"
    },
    {
     "name": "list_campaigns",
     "description": "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…"
    },
    {
     "name": "list_creators",
     "description": "Creator records with a 28-day funnel per creator (clicks, installs, trials, paying users) and the tracking links tagged to each."
    },
    {
     "name": "get_link_infrastructure",
     "description": "How links reach the app. `app_links` is the most important for integration work: it returns the iOS team id, bundle id, Android package and SHA-256…"
    },
    {
     "name": "get_push_config",
     "description": "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…"
    },
    {
     "name": "list_store_products",
     "description": "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…"
    },
    {
     "name": "list_error_issues",
     "description": "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…"
    },
    {
     "name": "get_error_issue",
     "description": "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": {
   "type": "mcp",
   "door": "https://mcp.fictura.co/mcp",
   "answers": true,
   "checked": "2026-10-30T05:58:15.134Z",
   "http": 405,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-10-30T06:42:13.912Z",
     "since": "2026-10-30T06:42:13.912Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-10-30T06:42:13.912Z",
    "since": "2026-10-30T06:42:13.912Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": 405,
   "checked": "2026-10-30T05:58:15.134Z"
  }
 }
}