Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

Fine Structure

REMOTE · FINESTRUCTURE.AI · SCANNED AUG 3

Remote MCP server for agents that create, edit, validate, and publish Fine Structure apps.

Available components

+5 this week 64 Trust /100
Trust breakdown (6 categories)

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 →

Endpoint Security63
Transport & Reachability100
Schema Quality & AI Usability71
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 7378 tokens (~77/item across 95 items; 95 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management26
  • Stability check failed: schema churn in the 8 days we've observed: 0 tool removals, 1 breaking changes, 0 auth/transport breaks, 3 additions. See how to fix → Fail
Tool Coverage94
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 82% of tool parameters carry a description.Partial
Capabilities20
  • Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · finestructure.ai

# add to Claude Code
claude mcp add --transport http ai-finestructure-fine-structure https://finestructure.ai/api/mcp
# ~/.codex/config.toml
[mcp_servers.ai-finestructure-fine-structure]
url = "https://finestructure.ai/api/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-finestructure-fine-structure": {
      "type": "remote",
      "url": "https://finestructure.ai/api/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add ai-finestructure-fine-structure --url https://finestructure.ai/api/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  ai-finestructure-fine-structure:
    url: "https://finestructure.ai/api/mcp"
// mcp.json
{
  "mcpServers": {
    "ai-finestructure-fine-structure": {
      "type": "http",
      "url": "https://finestructure.ai/api/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

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.

  • 3 Aug 26 +1
    • Stability: 0.23 → fail security
    • A breaking change shipped without a version bump: still 1.0.0 security
    • Tool “update_entity_record” rewrote its description, which is the text the model reads security
    • Tool “restore_saved_version” rewrote its description, which is the text the model reads security
    • Tool “seed_entity” rewrote its description, which is the text the model reads security
    • “restore_saved_version” dropped the required parameter “confirm” functional
    • New tool “create_entity_records” functional
    • New tool “delete_entity_records” functional
    • New tool “update_entity_records” functional
    • “seed_entity” added an optional parameter “reason” cosmetic
    • “update_entity_record” added an optional parameter “reason” cosmetic
    • “restore_saved_version” reworded the description of “snapshot_id” cosmetic
    • “seed_entity” reworded the description of “mode” cosmetic
    • “seed_entity” reworded the description of “records” cosmetic
  • 1 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 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.

  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 59

    First indexed and scored.

Diagnostics

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 3 Aug 2026 · Probed https://finestructure.ai/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=finestructure.ai CN=WE1,O=Google Trust Services,C=US 25 Jun 2026 23 Sept 2026 ECDSA 256 ECDSA-SHA256 66f212eab1dfc48113660350517c4ba4
SANs: finestructure.ai, *.finestructure.ai
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b
DNSSEC insecure

Validation of finestructure.ai. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 3799 8 Verified
finestructure.ai. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=31536000; includeSubDomains
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(self), geolocation=()
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://finestructure.ai/api/mcp Verified 200
http (plaintext) http://finestructure.ai/api/mcp HTTPS enforced 301 https://finestructure.ai/api/mcp
MCP tools — 95 exposed · ~7,378 tokens

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.

Tool Tokens
add_custom_domain ~74

Attach or replace the app custom domain through the same Fine Structure Studio custom-domain flow. Returns exact DNS verification and routing records for the user to configure at their DNS provider.

NameTypeReqDescription
app_idstringyesThe app ID
domainstringyesCustom domain to connect, for example example.com or app.example.com

No output schema declared.

No examples provided.

add_file_change ~97

Stage one file upsert or delete inside a change set. Does not modify the live app until apply_change_set.

NameTypeReqDescription
app_idstringyesThe app ID
change_set_idstringyesChange set ID
contentstringComplete file contents for upsert
file_typestringOptional file type override
operationstring
pathstringyesVirtual file path

No output schema declared.

No examples provided.

agency_create_claim_link ~130

Agency mode only. Create a client claim link for an existing app owned by the agent. The client must log in with the invited email before ownership transfers.

NameTypeReqDescription
app_idstringyesExisting app ID owned by the agent
claim_expires_in_daysintegerClaim link lifetime, 1-90 days
client_emailstringyesClient email allowed to claim ownership
client_full_namestringOptional client display name
keep_agent_collaboratorbooleanInvite agent as editor after claim
notestringOptional internal note

No output schema declared.

No examples provided.

agency_create_client ~84

Agency mode only. Create or update a client record for an account-level agent. This does not create a verified Fine Structure user account and does not transfer ownership.

NameTypeReqDescription
client_emailstringyesClient email that will be allowed to claim projects
client_full_namestringOptional client display name
notestringOptional internal note for the agency

No output schema declared.

No examples provided.

agency_create_client_app ~176

Agency mode only. Create a new app owned by the agent, start generation, and create a claim link for the client. Ownership transfers only when the invited client logs in with the same email and accepts the claim link.

NameTypeReqDescription
claim_expires_in_daysintegerClaim link lifetime, 1-90 days
client_emailstringyesClient email allowed to claim ownership
client_full_namestringOptional client display name
descriptionstringOptional short app description
keep_agent_collaboratorbooleanAfter claim, invite the agent back as an editor collaborator
namestringyesName for the app (1-100 chars)
notestringOptional internal client/project note
promptstringyesDetailed description of the app to build

No output schema declared.

No examples provided.

agency_get_claim_status ~49

Agency mode only. Inspect one handoff status without exposing the raw claim token.

NameTypeReqDescription
handoff_idstringyesHandoff ID returned by agency_create_claim_link or agency_create_client_app

No output schema declared.

No examples provided.

agency_list_clients ~43

Agency mode only. List client records and app handoff status for the authenticated agent.

NameTypeReqDescription
include_handoffsbooleanInclude claim links status without raw tokens

No output schema declared.

No examples provided.

apply_change_set ~69

Apply a staged change set to the app. Creates a Saved Version before applying. Blocks on validation errors unless force=true.

NameTypeReqDescription
app_idstringyesThe app ID
change_set_idstringyesChange set ID
forcebooleanApply even if validation has errors

No output schema declared.

No examples provided.

check_domain_verification ~64

Check Fine Structure custom-domain verification and SSL status for the configured custom domain, then save the latest status.

NameTypeReqDescription
app_idstringyesThe app ID
domainstringOptional configured custom domain. If omitted, uses the app's current custom domain.

No output schema declared.

No examples provided.

compare_current_to_version ~59

Compare the current app files to a Saved Version and return compact per-file diffs.

NameTypeReqDescription
app_idstringyesThe app ID
max_diff_charsinteger
snapshot_idstringyesSaved Version snapshot ID

No output schema declared.

No examples provided.

compare_saved_versions ~77

Compare two Saved Versions and return per-file additions, removals, modifications, and compact diffs.

NameTypeReqDescription
app_idstringyesThe app ID
base_snapshot_idstringyesOlder/base snapshot ID
max_diff_charsinteger
target_snapshot_idstringyesNewer/target snapshot ID

No output schema declared.

No examples provided.

configure_domain_redirects ~87

Configure custom-domain redirect policy: primary domain, optional www/root redirect, and HTTPS enforcement.

NameTypeReqDescription
app_idstringyesThe app ID
force_httpsbooleanRedirect HTTP custom-domain requests to HTTPS
primary_domainstringyesCanonical primary domain, for example example.com
redirect_wwwbooleanRedirect the www/root counterpart to primary_domain

No output schema declared.

No examples provided.

configure_integration ~81

Store safe non-secret integration metadata for an app. Use set_secret for API keys/tokens.

NameTypeReqDescription
app_idstringyesThe app ID
configobjectyesSafe metadata only, such as workspace/team/name/email
is_activebooleanSet false to disconnect this integration metadata
providerstringyesIntegration provider ID

No output schema declared.

No examples provided.

create_ab_test ~152

Create a native Fine Structure A/B test between existing app pages. Use update_app first if a variant page still needs to be generated. Creates a Saved Version before the change.

NameTypeReqDescription
app_idstringyesThe app ID
goal_event_filterobjectOptional goal filter, for example {'entity_name': 'Lead'}
goal_event_typestringOptional conversion goal type: entity_create, any, form_submit
is_activebooleanWhether to activate the test immediately
namestringyesExperiment name
page_namestringyesBase route page that triggers the experiment
variantsarrayyesAt least two variants. Traffic must total 100.

No output schema declared.

No examples provided.

create_app ~100

Create a new application from a natural language prompt. The AI generates a complete web app with pages, components, styling, and data models. Returns a job_id - poll get_job_status to track progress. When the job is done, the app is ready.

NameTypeReqDescription
descriptionstringOptional short description
namestringyesName for the app (1-100 chars)
promptstringyesDetailed description of the app to build

No output schema declared.

No examples provided.

create_change_set ~54

Create a staged file change set. Add multiple file changes, validate them as one app state, then apply atomically.

NameTypeReqDescription
app_idstringyesThe app ID
labelstringOptional short label

No output schema declared.

No examples provided.

create_entity_records ~99

Propose creating/inserting records in one app entity. No records are written until the app owner explicitly approves the frozen request in Studio chat.

NameTypeReqDescription
app_idstringyesThe app ID
entitystringyesEntity name
expected_countintegerOptional safety check for the number of proposed records
reasonstringWhy these records should be created
recordsarrayyesRecords to create after approval

No output schema declared.

No examples provided.

create_entity_schema ~86

Create an entity schema file in entities/<Entity>.json. Creates a Saved Version before writing.

NameTypeReqDescription
app_idstringyesThe app ID
entitystringyesEntity name
indexesarray
metadataobject
overwriteboolean
relationshipsarray
schemaobjectyesJSON schema object

No output schema declared.

No examples provided.

delete_ab_test ~50

Delete a native A/B test from an app. Creates a Saved Version before the change.

NameTypeReqDescription
app_idstringyesThe app ID
test_idstringyesA/B test ID

No output schema declared.

No examples provided.

delete_entity_records ~123

Propose deleting exact records by ID or exact-match filters. It freezes the matched IDs and returns a pending approval; zero records are deleted until the app owner approves in Studio chat.

NameTypeReqDescription
app_idstringyesThe app ID
entitystringyesEntity name
expected_countintegerRequired match count safety check, when known
filtersOne exact-match selector or a list of exact-match selectors
reasonstringWhy these records should be deleted
record_idsarrayExact record IDs to delete

No output schema declared.

No examples provided.

delete_secret ~36

Delete one app secret by key.

NameTypeReqDescription
app_idstringyesThe app ID
keystringyesSecret key name

No output schema declared.

No examples provided.

discard_change_set ~44

Discard a pending staged change set without changing app files.

NameTypeReqDescription
app_idstringyesThe app ID
change_set_idstringyesChange set ID

No output schema declared.

No examples provided.

email_marketing_app_configure ~120

Configure isolated Email Marketing settings for a generated app. Can be used by Studio/chat agents.

NameTypeReqDescription
app_idstringyesThe app ID
default_contact_entitystringEntity to sync as contacts, e.g. Customer or Lead
default_email_fieldstringField containing contact email
default_name_fieldstringField containing contact name
is_enabledboolean
reply_tostring
sender_emailstring
sender_namestring

No output schema declared.

No examples provided.

email_marketing_app_contact_profile ~56

Read a contact profile with email delivery, tracking, app-event, workflow, suppression, and unsubscribe timeline.

NameTypeReqDescription
app_idstringyesThe app ID
contactstringyesContact id or email address

No output schema declared.

No examples provided.

email_marketing_app_create_broadcast ~110

Create an app-scoped broadcast to contacts synced from that generated app, optionally scheduled or sent now.

NameTypeReqDescription
app_idstringyesThe app ID
body_htmlstringyes
filtersobjectApp contact filters such as source_entity, search, tags, field_equals
namestring
scheduled_atstring
send_nowboolean
subjectstringyes
timezonestring

No output schema declared.

No examples provided.

email_marketing_app_create_event_trigger ~121

Create an app-scoped email rule that sends when an app event is recorded, for example entity_created or Customer.created.

NameTypeReqDescription
app_idstringyesThe app ID
body_htmlstringyes
enabledboolean
entity_namestringOptional entity filter
event_namestringyesEvent name, e.g. entity_created, Customer.created, order_paid
filtersobjectOptional app contact filters
namestring
subjectstringyes

No output schema declared.

No examples provided.

email_marketing_app_create_segment ~80

Create an app-scoped saved audience segment using field, tag, and behavior filters.

NameTypeReqDescription
app_idstringyesThe app ID
filtersobjectyesSegment filters. Supports rules with field/operator/value plus opened/clicked/sent behavior fields.
namestringyes
sample_limitinteger

No output schema declared.

No examples provided.

email_marketing_app_create_sequence ~115

Create an app-scoped email sequence using fixed dates or day offsets between emails.

NameTypeReqDescription
app_idstringyesThe app ID
filtersobjectApp contact filters
namestring
schedule_modestring
start_atstringSequence start date/time for day_offsets mode
stepsarrayyesEmails in order. Each step supports subject, body_html, scheduled_at, day_offset, or gap_days.
timezonestring

No output schema declared.

No examples provided.

email_marketing_app_create_workflow ~133

Create an app-scoped automation workflow with email, wait, condition, split, and goal steps.

NameTypeReqDescription
app_idstringyesThe app ID
definitionobjectOptional full workflow definition; steps can also be supplied here.
enabledboolean
namestring
stepsarrayOrdered workflow steps. Supported type values: email, wait, condition, split, goal.
trigger_entity_namestringOptional entity filter
trigger_event_namestringyesEvent that enrolls a contact, e.g. Customer.created

No output schema declared.

No examples provided.

email_marketing_app_deliverability ~44

Read provider readiness, bounce/complaint rates, suppression reasons, and recent deliverability risk events.

NameTypeReqDescription
app_idstringyesThe app ID

No output schema declared.

No examples provided.

email_marketing_app_process_queue ~52

Process due app-scoped automation workflow runs and email queue jobs with locks, retries, and suppression checks.

NameTypeReqDescription
app_idstringyesThe app ID
max_jobsinteger

No output schema declared.

No examples provided.

email_marketing_app_queue_status ~54

Inspect app-scoped Email Marketing queue jobs and per-status counts.

NameTypeReqDescription
app_idstringyesThe app ID
limitinteger
statusstringOptional queue status filter

No output schema declared.

No examples provided.

email_marketing_app_record_event ~110

Record an app event and send matching app-scoped Email Marketing triggers.

NameTypeReqDescription
app_idstringyesThe app ID
contact_idstring
emailstringContact email if no contact_id is known
entity_namestring
event_namestringyes
propertiesobjectExtra event properties
recordobjectEntity record fields for template variables and contact extraction
record_idstring

No output schema declared.

No examples provided.

email_marketing_app_report ~66

Read app-scoped Email Marketing reporting: delivery counts, open/click rates, and recent tracking events.

NameTypeReqDescription
app_idstringyesThe app ID
include_eventsboolean
limitinteger
segment_limitinteger

No output schema declared.

No examples provided.

email_marketing_app_status ~54

Inspect app-scoped Email Marketing for one generated app: settings, contacts, campaigns, event triggers, and recent events.

NameTypeReqDescription
app_idstringyesThe app ID
include_logsboolean

No output schema declared.

No examples provided.

email_marketing_app_suppress_contact ~73

Suppress an app contact email after a bounce, complaint, manual block, provider block, or unsubscribe.

NameTypeReqDescription
app_idstringyesThe app ID
emailstringyes
metadataobject
reasonstring
sourcestring

No output schema declared.

No examples provided.

email_marketing_app_sync_contacts ~84

Sync an app entity table into app-scoped Email Marketing contacts. Records without a valid email are skipped.

NameTypeReqDescription
app_idstringyesThe app ID
email_fieldstring
entity_namestringyesEntity name, e.g. Customer or Lead
limitinteger
name_fieldstring

No output schema declared.

No examples provided.

email_marketing_configure_sender ~127

Admin only. Configure global Email Marketing sender details and module enabled state. Unsubscribe footer remains mandatory.

NameTypeReqDescription
default_timezonestringDefault timezone for scheduling
is_enabledbooleanEnable or disable the module at settings level
organization_namestringOrganization name used in unsubscribe footer
postal_addressstringOptional postal/contact address for compliance
reply_tostringReply-To email address
sender_emailstringSender email address used by the email provider
sender_namestringDisplay sender name

No output schema declared.

No examples provided.

email_marketing_create_broadcast ~142

Admin only. Create a filtered broadcast campaign, optionally scheduled or sent now.

NameTypeReqDescription
body_htmlstringyesHTML body. Unsubscribe is appended automatically.
filtersobjectRecipient filters: plans, roles, active_status, email_verified, min_apps, max_apps, has_published_app, search
namestringInternal campaign name
scheduled_atstringOptional ISO datetime. If no timezone is included, timezone is used.
send_nowbooleanSend immediately after creating the campaign
subjectstringyesEmail subject
timezonestringTimezone for naive scheduled_at

No output schema declared.

No examples provided.

email_marketing_create_sequence ~129

Admin only. Create a scheduled email sequence using fixed dates or day offsets. Each generated email keeps mandatory unsubscribe.

NameTypeReqDescription
filtersobjectRecipient filters
namestringyesSequence name
schedule_modestringyesfixed_dates uses each step.scheduled_at; day_offsets uses start_at + step day offsets
start_atstringISO datetime for day_offsets mode
stepsarrayyesSteps with subject, body_html, and either scheduled_at (fixed_dates) or day_offset/gap_days (day_offsets).
timezonestring

No output schema declared.

No examples provided.

email_marketing_create_variable_trigger ~133

Admin only. Create an email rule that sends when a named variable changes from one value to another. Empty from_value/to_value acts as wildcard.

NameTypeReqDescription
body_htmlstringyesHTML body. Unsubscribe is appended automatically.
enabledboolean
filtersobjectOptional recipient filters
from_valuestringPrevious value or empty wildcard
namestringTrigger name
subjectstringyesEmail subject
to_valuestringNew value or empty wildcard
variable_namestringyesVariable name, e.g. plan

No output schema declared.

No examples provided.

email_marketing_status ~50

Admin only. Inspect the isolated Email Marketing module: enabled state, sender settings, templates, sequences, variable triggers, and recent campaign status.

NameTypeReqDescription
include_logsbooleanInclude recent delivery logs

No output schema declared.

No examples provided.

email_marketing_trigger_variable ~85

Admin only. Manually fire variable-transition email rules for one user. Useful for MCP/agent workflows and tests.

NameTypeReqDescription
contextobjectExtra template variables
from_valuestringPrevious value
to_valuestringNew value
user_idstringyesPlatform user id
variable_namestringyesVariable name

No output schema declared.

No examples provided.

email_marketing_update_template ~95

Admin only. Update an automatic Email Marketing template, such as user_joined welcome email. The unsubscribe block is still appended by the server.

NameTypeReqDescription
body_htmlstringHTML body with {{variables}}
enabledbooleanWhether this automatic template is active
subjectstringEmail subject with {{variables}}
template_idstringyesTemplate/event id, e.g. user_joined

No output schema declared.

No examples provided.

get_ab_test_stats ~50

Get views, unique visitors, conversions, and conversion rates for an A/B test.

NameTypeReqDescription
app_idstringyesThe app ID
test_idstringyesA/B test ID

No output schema declared.

No examples provided.

get_app_detail ~54

Deep introspection of an app: entities, pages, settings, integrations, environment variables, and file structure. Use this to understand what an app contains before updating it.

NameTypeReqDescription
app_idstringyesThe app ID

No output schema declared.

No examples provided.

get_app_files ~33

Get the file tree for an app with paths and byte sizes.

NameTypeReqDescription
app_idstringyesThe app ID

No output schema declared.

No examples provided.

get_app_links ~56

Return editor, preview, published path, subdomain, and custom-domain links plus whether each works for anonymous visitors, app users, or Studio users based on publish and auth settings.

NameTypeReqDescription
app_idstringyesThe app ID

No output schema declared.

No examples provided.

get_app_security_audit ~40

Read recent server-side security audit events for an app.

NameTypeReqDescription
app_idstringyesThe app ID
limitinteger

No output schema declared.

No examples provided.

get_app_security_context ~74

Return safe security context for one owned app: owner id/email, Studio collaborators, generated-app members, route policies, entity policies, and recent security audit entries. Does not return secrets and does not grant access to other apps.

NameTypeReqDescription
app_idstringyesThe app ID
audit_limitinteger

No output schema declared.

No examples provided.