Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Authorization not required, issuer https://finestructure.ai
Added "preview_saved_version" and "set_agent_owner_relay" (97 tools before, 99 now)
Preview Saved Version — Prepare an isolated read-only Saved Version preview, if enabled by the deployment. Returns compiled files for an offline sandbox, never restores files or reads live records. Never execute the returned program with host credentials. Requires app access and versions:read.
Set Agent Owner Relay — Set the owner's consent for one owned agent to relay reports from another owned agent (or all sources with '*'). Uses the same preference as the agent screen. Does not send a message or grant access to customer conversations.
Authorization not required, issuer https://finestructure.ai
Authorization not required, issuer https://finestructure.ai
Authorization not required, issuer https://finestructure.ai
Changed the definition of "get_platform_guide"
⟨36 unchanged words⟩ domains","file_model","functions","generation","marketing","media","overview","platform_requests","publishing"," ⟨26 unchanged words⟩
Changed the definition of "list_apps"
ListapplicationsownedbyandtheacceptedauthenticatedStudio-shareduserapplications, newest activity first. Returns up to `limit` ⟨7 unchanged words⟩ page with `offset` when the account has more. Accepted editors can edit shared source; viewers can read it. Publishing, records, domains and security administration remain owner-only.
Added "get_agent_conversation", "get_agent_task", "list_agent_conversations" and 1 more (93 tools before, 97 now)
Get Agent Conversation — Read visible messages, answers and result links in an owned agent's conversation. Returns the newest page in chronological order. For older history, pass next_before_id as before_id. For new replies, omit before_id.
Get Agent Task — Check a durable task returned by send_agent_message or list_agent_tasks. Includes the latest execution status and pending approvals, including before a run starts. Task scheduling state is separate from run outcome. Read the conversation for the actual answer; accepted/queued is not completed. Approvals must still be decided by the owner in Fine Structure.
List Agent Conversations — List recent visible conversations belonging to one of your agents. Use get_agent_conversation to read replies and results.
Send Agent Message — Talk to an existing agent or assign it work using its normal tools, memory, permissions and team. Omit conversation_id to start a new owner conversation; supply it to continue one. Returns acceptance and a durable task_id immediately, NOT a completed answer. Poll get_agent_task and read get_agent_conversation for the actual response. Work continues after MCP disconnects. A follow-up in a busy conversation uses the normal queue. Customer conversations are readable but cannot be impersonated by this tool.
Authorization not required, issuer https://finestructure.ai
Authorization not required, issuer https://finestructure.ai
Authorization not required, issuer https://finestructure.ai
Added "get_app_metadata" and "set_app_metadata" (91 tools before, 93 now)
Get App Metadata — Read the saved public HTML-shell identity: name, description, language and image URLs/dimensions. Same settings as Studio SEO/GEO.
Set App Metadata — Update public HTML-shell metadata immediately, without AI, code edits, publishing or Saved Versions. Upload social_image/icon as base64 PNG/JPEG/WebP (max 5 MB, 4096px); null clears an image. Language sets HTML lang/dir and OG locale. For per-page cards, write optional seo.json and publish it; dynamic entries may read only explicitly public entity records.
Authorization not required, issuer https://finestructure.ai
Authorization not required, issuer https://finestructure.ai
Authorization not required, issuer https://finestructure.ai
Authorization not required, issuer https://finestructure.ai
Authorization not required, issuer https://finestructure.ai
Added "create_platform_request", "get_platform_request", "invoke_function" and 4 more; changed the definition of "get_app_security_context", "get_platform_guide" and "get_recommended_workflow" (84 tools before, 91 now)
⟨12 unchanged words⟩ generated-app members, route policies, entity policies, function policies, and recent security audit entries. Does not return ⟨9 unchanged words⟩
⟨34 unchanged words⟩ data_model","direct_file_edit","domains","file_model","functions","generation","media","overview","platform_requests","publishing","saas","safety","sdk ⟨23 unchanged words⟩
Changed the definition of "set_entity_policy"
CreateReplaceorserver-sideupdateentityserver-sideaccess policy. Optional action rules override read/writerolerolespolicyandforcananallowapppublicentity.
Authorization not required, issuer https://finestructure.ai
Authorization not required, issuer https://finestructure.ai
Authorization not required, issuer https://finestructure.ai
Authorization not required, issuer https://finestructure.ai
Authorization not required, issuer https://finestructure.ai
Certificate recorded, valid to 2026-11-21
Authorization not required, issuer https://finestructure.ai
First tool surface recorded: 84 tools (server version 1.0.0)
Showing the latest 27 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨39 unchanged words⟩ ","enum":["ab_test","agency_client_app","backend_function","create_app","direct_file_edit","domain_setup","edit_app"," ⟨15 unchanged words⟩
Create Platform Request — Open a request to the Fine Structure platform team: a bug, a feature request or a question about the platform itself (not about the user's app). Use it when something in the platform blocks you instead of working around it. Give a reproduction the team can run (invoke_function / curl / the exact tool call and result), what you expected, and how the team will know it is closed. Credential-looking values are redacted. Returns request_id and a Studio URL; the team's replies, status changes and deployments come back through get_platform_request / list_platform_requests. Limits: 20 per account per…
Get Platform Request — One platform request with its full history: team replies, status changes (open | triaged | in_progress | needs_info | deployed | wont_fix) and what was deployed (commit, time). Pass since=<ISO timestamp> to get only the events after it.
Invoke Function — Run a backend function of an owned app exactly like the HTTP route and return its status and JSON. caller='owner' runs as the app owner; caller='anonymous' first evaluates the function policy as a public visitor and returns the 401/403 decision without running when access would be denied. Use it to verify a function (secrets, outbound calls, policy) before wiring it into the app.
List Platform Requests — Your account's platform requests, newest activity first. Call it at the start of a session with since=<the updated_date you last saw> to learn what changed: replies, needs_info questions to answer, deployments with their commit. Filters: app_id, status.
Reply Platform Request — Add a reply or a finding to one of your platform requests without opening a new one, e.g. to answer a needs_info question (that reopens it).
Set Function Policy — Create or update the server-owned access policy of a backend function (functions/<name>.js). Without a policy a function answers only to the app owner's Studio token (401 for app visitors and webhooks). Recipes: anonymous checkout step or inbound webhook/IPN -> require_auth=false; signed-in members -> require_auth=true + allowed_roles (e.g. ['authenticated'] or ['admin','staff']); webhook with a shared secret -> require_secret=true + secret_name (an app secret) that the caller sends in secret_header. allowed_hosts fences the function's outbound network to those hosts plus the platform backend…
Update Platform Request — Platform team only: set the status of a request (open | triaged | in_progress | needs_info | deployed | wont_fix), attach the deployed commit and/or reply. deployed and needs_info mail the requester.
⟨16 unchanged words⟩ read":{"description":"Roles allowed to read when rules are omitted","items":{"type":"string"},"type":"array"},"rules":{"additionalProperties":false,"description":"Nonempty unconditional action/role rules. No matching rule denies access. Include owner/admin actions explicitly. Record conditions are not supported by this MCP input.","properties":{"rules":{"items":{"additionalProperties":false,"properties":{"actions":{"items":{"enum":["create","read","update","delete","write"],"type":"string"},"minItems":1,"type":"array"},"description":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"subject":{"additionalProperties":false,"properties":{"roles":{"items":{"type":"string"},"minItems":1,"type":"array"}},"required":["roles"],"type":"object"}},"required":["actions","subject"],"type":"object"},"minItems":1,"type":"array"},"version":{"enum":[1],"type":"integer"}},"required":["rules"],"type":"object"},"write":{"description":"Roles allowed to write when rules are omitted","items":{"type":"string"}, ⟨9 unchanged words⟩