Fictura
REMOTE · MCP.FICTURA.CO · 2 COMPONENTS
Paywalls, onboarding, subscription analytics, A/B tests, attribution and errors for mobile apps.
Available components
Last scanned (3 hours ago)
Scores higher than 85% of remote servers
Unreachable for 2 days in a row. Last reached 3 Nov 2026.
Category Marketing and SEO
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security14
- TLS not yet verified: we couldn't open a connection to check the certificate. View diagnostics → Unverified
- Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS not yet verified: we couldn't read the response headers to check for it. View diagnostics → Unverified
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability0
- Transport check failed: declared streamable-http, but we couldn't connect to verify it. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability0
- Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
- Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
- Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified
Unverified: 5 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 0
- Endpoint reachability: reachable → unreachable ▼ security
- HSTS header: fail → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Authorization: pass → unverified ▼ security
- TLS certificate: pass → unverified ▼ security
- Stability: 0.17 → unverified ▼ security
- Transport: pass → fail ▼ security
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- 3 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Oct 26 +1
- Stability: unverified → 0.03 ▲ functional
- 29 Oct 26 79
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://mcp.fictura.co/mcp
TLS unreached
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of mcp.fictura.co. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| co. | present | 7786 | 8 | Verified |
| fictura.co. | present | 23922 | 13 | Verified |
| mcp.fictura.co. | Verified address RRset verified with the apex keys |
Authentication Inconclusive
We could not reach the endpoint well enough to judge its authorisation posture.
| Result | Inconclusive |
|---|
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.fictura.co/mcp | Unreachable | ||
| http (plaintext) | http://mcp.fictura.co/mcp | HTTPS enforced |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
check_entitlement Check whether a user is subscribed ~124
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.
| Name | Type | Req | Description |
|---|---|---|---|
| user_id | string | yes | Device id, account id or RevenueCat id |
No output schema declared.
No examples provided.
create_onboarding_draft Create a new DRAFT onboarding flow ~77
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.
| Name | Type | Req | Description |
|---|---|---|---|
| doc | object | yes | A complete onboarding document |
| name | string | yes | The flow's name in the dashboard |
No output schema declared.
No examples provided.
create_paywall_draft Create a new DRAFT Studio paywall ~108
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.
| Name | Type | Req | Description |
|---|---|---|---|
| doc | object | – | A complete document, instead of a template |
| name | string | yes | The paywall's name in the dashboard |
| template_key | string | – | A webview template key to start from |
No output schema declared.
No examples provided.
editor_get_doc Read the document open in the paired editor ~82
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.
| Name | Type | Req | Description |
|---|---|---|---|
| pairing_id | string | yes | From pair_editor |
No output schema declared.
No examples provided.
editor_set_doc Put a document on the paired editor's canvas ~106
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.
| Name | Type | Req | Description |
|---|---|---|---|
| doc | object | yes | The complete edited document |
| note | string | – | What changed, shown to the person in the editor |
| pairing_id | string | yes | From pair_editor |
No output schema declared.
No examples provided.
get_acquisition_report Get paid acquisition performance ~151
`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.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Lookback, for view=spend |
| provider | string | – | Filter, for view=spend |
| since | string | – | YYYY-MM-DD, for view=roas |
| until | string | – | YYYY-MM-DD, for view=roas |
| view | string | yes | Which acquisition view |
No output schema declared.
No examples provided.
get_analytics Get funnel, overview or cohort analytics ~133
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).
| Name | Type | Req | Description |
|---|---|---|---|
| view | string | yes | Which analytics view to return |
No output schema declared.
No examples provided.
get_app_setup Get this app's Fictura credentials and endpoints ~91
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_appsflyer_attribution_summary Summarize imported AppsFlyer attribution ~133
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.
| Name | Type | Req | Description |
|---|---|---|---|
| since | string | – | Install date from, YYYY-MM-DD |
| top_campaigns | integer | – | Default 20 |
| until | string | – | Install date to, YYYY-MM-DD |
No output schema declared.
No examples provided.
get_appsflyer_import_status Get AppsFlyer import status ~77
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_attribution_report Get attribution, install and KPI reporting ~146
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.
| Name | Type | Req | Description |
|---|---|---|---|
| group_by | string | – | For view=kpis (default source) |
| limit | integer | – | For view=installs (default 100) |
| since | string | – | YYYY-MM-DD (default 28 days ago) |
| until | string | – | YYYY-MM-DD (default today) |
| view | string | yes | Which report to return |
No output schema declared.
No examples provided.
get_error_issue Get one error issue with stack traces ~135
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.
| Name | Type | Req | Description |
|---|---|---|---|
| issue_id | string | yes | Issue id, from list_error_issues |
No output schema declared.
No examples provided.
get_error_issue_brief Get an issue brief and a fix prompt ~72
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.
| Name | Type | Req | Description |
|---|---|---|---|
| issue_id | string | yes | Issue id, from list_error_issues |
No output schema declared.
No examples provided.
get_experiment Get one experiment ~34
One experiment with its variants and full Bayesian results.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Experiment id, from list_experiments |
No output schema declared.
No examples provided.
get_link_infrastructure Get deep link and tracking domain configuration ~156
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 fingerprints that Fictura serves in the Universal Links / App Links association files, plus ios_ready and android_ready. Get these wrong and BOTH files fail SILENTLY — they parse, associate nothing, report no error, and links simply keep opening the browser instead of the app, so verify the ready flags rather than assuming. `domains` lists branded link domains and their DNS verification state, `web_config` the web-to-app smart banner, `esp` the email provider link setup.
| Name | Type | Req | Description |
|---|---|---|---|
| view | string | yes | Which part of the link setup |
No output schema declared.
No examples provided.
get_onboarding_doc Get an onboarding flow's document ~86
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | The onboarding flow id, from list_surfaces |
No output schema declared.
No examples provided.
get_paywall_doc Get a Studio paywall's document ~105
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | The paywall id, from list_surfaces |
No output schema declared.
No examples provided.
get_push_config Get push notification configuration ~55
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_setup_status Get integration and feature status ~89
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_store_analytics Get App Store and Google Play analytics (Appfigures) ~134
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.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Lookback in days, default 28 |
| reviews | integer | – | How many recent reviews to include, default 20 |
No output schema declared.
No examples provided.
get_surface Get one paywall or onboarding flow's config ~86
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | The surface id, from list_surfaces |
| kind | string | yes | Which kind of surface |
No output schema declared.
No examples provided.
get_trace Get one distributed trace ~89
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.
| Name | Type | Req | Description |
|---|---|---|---|
| trace_id | string | yes | 32-character hex W3C trace id |
No output schema declared.
No examples provided.
get_tracking_plan Get the event tracking plan ~68
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_user Get one user's full history ~77
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.
| Name | Type | Req | Description |
|---|---|---|---|
| user_id | string | yes | Master user id, or any known identifier |
No output schema declared.
No examples provided.
list_campaigns List live ad campaigns ~70
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.
| Name | Type | Req | Description |
|---|---|---|---|
| provider | string | yes | Which ad platform |
No output schema declared.
No examples provided.
list_creators List creators and their performance ~38
Creator records with a 28-day funnel per creator (clicks, installs, trials, paying users) and the tracking links tagged to each.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_docs List Fictura documentation pages ~48
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_error_issues List error issues ~96
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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_legacy | boolean | – | Also list issues grouped before grouping v2 (default false) |
| status | string | – | Which issues to include (default unresolved) |
No output schema declared.
No examples provided.
list_experiments List experiments ~38
Every experiment with status and, for running or finished ones, full Bayesian results — exposures, conversions, and the probability each variant is best.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_store_products List App Store subscription products ~104
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).
| Name | Type | Req | Description |
|---|---|---|---|
| subscription_id | string | – | Also return price points for this subscription |
| territory | string | – | Territory for price points (default USA) |
No output schema declared.
No examples provided.
list_surfaces List paywalls, onboarding flows and placements ~95
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_templates List built-in paywall and onboarding templates ~63
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.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | yes | Which template catalog |
No output schema declared.
No examples provided.
list_users List users ~106
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.
| Name | Type | Req | Description |
|---|---|---|---|
| churn_state | string | – | Only users in this billing state |
| limit | integer | – | Max users (default 50) |
No output schema declared.
No examples provided.
pair_editor Pair with an open Studio editor ~83
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.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The code shown in the editor |
No output schema declared.
No examples provided.
read_doc Read a Fictura documentation page ~86
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.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | Page path, e.g. /implementation/sdk-reference/expo-react-native |
No output schema declared.
No examples provided.
save_onboarding_doc Save a DRAFT onboarding flow's document ~110
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.
| Name | Type | Req | Description |
|---|---|---|---|
| doc | object | yes | The complete edited document |
| id | string | yes | The draft flow's id |
| note | string | – | What changed, for the version history |
No output schema declared.
No examples provided.
save_paywall_doc Save a DRAFT paywall's document ~118
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.
| Name | Type | Req | Description |
|---|---|---|---|
| doc | object | yes | The complete edited document |
| id | string | yes | The draft paywall's id |
| note | string | – | What changed, for the version history |
No output schema declared.
No examples provided.
search_docs Search Fictura documentation ~119
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max pages to return (default 8) |
| query | string | yes | What to search for, e.g. 'purchases adapter' |
No output schema declared.
No examples provided.
search_error_issues Search error issues ~87
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| platform | string | – | – |
| query | string | – | Text to look for in the title or culprit |
| release | string | – | – |
| status | string | – | – |
No output schema declared.
No examples provided.
start_appsflyer_import Start the AppsFlyer import ~199
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.
| Name | Type | Req | Description |
|---|---|---|---|
| mode | string | – | Default auto |
| resume | boolean | – | Continue the last failed or cancelled run |
No output schema declared.
No examples provided.
unpair_editor End the pairing with the editor ~32
Stops this pairing. The editor shows that the agent left.
| Name | Type | Req | Description |
|---|---|---|---|
| pairing_id | string | yes | From pair_editor |
No output schema declared.
No examples provided.
update_error_issue Change an error issue ~89
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).
| Name | Type | Req | Description |
|---|---|---|---|
| assignee | – | – | – |
| issue_id | string | yes | – |
| note | string | – | – |
| priority | – | – | – |
| resolved_in_release | string | – | – |
| status | string | – | – |
No output schema declared.
No examples provided.
validate_onboarding_doc Check an onboarding document without saving it ~53
Runs a document through the same parser, step-key check and renderer a save uses and reports what is wrong, if anything. Changes nothing.
| Name | Type | Req | Description |
|---|---|---|---|
| doc | object | yes | An onboarding document (version: 1) |
No output schema declared.
No examples provided.
validate_paywall_doc Check a paywall document without saving it ~50
Runs a document through the same parser and renderer a save uses and reports what is wrong, if anything. Changes nothing.
| Name | Type | Req | Description |
|---|---|---|---|
| doc | object | yes | A paywall document (version: 1) |
No output schema declared.
No examples provided.
How do I install the Fictura MCP server?
Fictura is a hosted endpoint at https://mcp.fictura.co/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.fictura.co
claude mcp add --transport http co-fictura-mcp 'https://mcp.fictura.co/mcp'
What is the Fictura MCP server?
Fictura is an MCP server listed in the public MCP registry as co.fictura/mcp. Paywalls, onboarding, subscription analytics, A/B tests, attribution and errors for mobile apps. This page covers its hosted endpoint (https://mcp.fictura.co/mcp).
Is the Fictura MCP server safe to use?
Fictura scores 82 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Fictura MCP server expose?
Fictura exposes 44 tools: search_docs, list_docs, read_doc, get_app_setup, get_setup_status, and 39 more. Their descriptions and schemas cost roughly 4,098 tokens of context every time the server is loaded.
Does the Fictura MCP server require authentication?
Its publisher declares no required credentials for Fictura. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.
Is the Fictura MCP server still maintained?
Fictura is still listed in the MCP registry, though our most recent checks did not reach this channel. We last reached this channel on 3 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.