Apps and MCP Tools
Use this guide to understand the platform's app suites, MCP (Model Context Protocol) integration, and how to connect AI tools to your handle.
All browser-first operator surfaces now run on https://app.10x.in. Use /apps/ as the current catalog/front door for product workflows, /creator/* for creator workflows, and /smartwork/launch/{projectId} when a Smartwork project is opened from the first-party launcher. Handle hosts and mapped custom domains remain public-only surfaces, so they do not redirect /admin, /app, /apps, /creator, /purchases, or /smartwork into the control plane.
When to use
- You want to manage campaigns, deployments, or analytics from an app interface.
- You want to connect an AI assistant or LLM to your handle via MCP.
- You need to register custom function bindings for tool-based integrations.
For a single end-to-end runbook across schema setup, analytics checks, and function-binding data delivery, use Platform-Wide Feature Exploration Lab.
If you need the operator-facing guide for reviewing the hosted connector surface, use MCP Builder and Hosted Tools.
Browser app surfaces
The platform exposes two browser app collections on the unified app.10x.in host: creator workflows under /creator/* and the /apps/ catalog for product and operations workflows.
Creator workflows
These routes are direct browser entry points under https://app.10x.in/creator/*.
| Module | Route | What it does |
|---|---|---|
| Planner Studio | /creator/planner | Discover opportunities, generate strategies, and approve proposals |
| Traffic Conflict Ops | /creator/traffic-conflicts | Detect route conflicts, preview routing decisions, and run link health checks |
| Campaign Control | /creator/campaign-control | Create campaigns, test conversions, and monitor campaign health |
| Site Runtime Ops | /creator/site-runtime | Deploy sites, preview deployments, and switch site modes |
| QA Automation Console | /creator/qa-automation | Create test environments, run QA suites, and finalize runs |
| Revenue Ops | /creator/revenue-ops | Stripe Connect onboarding, earnings monitoring, and group-buy publishing |
| Campaign Ads | /creator/campaign-ads | Review ad pacing, budget signals, keyword insights, and proposal approvals |
Access: JWT authentication required (CREATOR role or above).
Apps catalog and product workflows
The canonical product entry point is https://app.10x.in/apps/. Each module opens from the browse catalog at /apps/browse/{appId}/playground; older shortcut paths such as /apps/attribution are preserved only as compatibility redirects inside the SPA.
| Surface | Canonical route | What it does |
|---|---|---|
| Apps catalog | /apps/ | Browse the current app catalog and launch a workflow from one place |
| Attribution + Link Tracking | /apps/browse/attribution/playground | Create tracked links, preview routes, and debug conversion attribution |
| Personalization + Campaign Studio | /apps/browse/personalization/playground | Configure personalization rules and campaign routing |
| Knowledge Commerce Hub | /apps/browse/knowledge-commerce/playground | Manage knowledge docs, rebuild indexes, and inspect gated content flows |
| Lifecycle Messaging + Retargeting | /apps/browse/lifecycle-messaging/playground | Model chain signals, prefetch behavior, and webhook-backed lifecycle flows |
| Domain Commerce + Trust | /apps/browse/domain-commerce/playground | Manage account domains, purchase approvals, and route maps |
| Creator Revenue | /apps/browse/creator-revenue/playground | Inspect checkout, entitlement, payouts, and monetization flows |
| Targeting Lab | /apps/browse/targeting-lab/playground | Exercise targeting, consent, segment, and cookie behaviors |
| AI Visibility | /apps/browse/ai-visibility/playground | Audit crawler/referrer analytics and site-intel readiness |
| Ad Intelligence | /apps/browse/ad-intelligence/playground | Work ad-account, audit, keyword, bid, pacing, and reporting scenarios |
| Cost Forecast Workbench | /apps/cost-forecast | Model spend and forecasting assumptions |
| Targeting Lab Harness | /apps/targeting-lab-harness | Run the standalone targeting scenario harness |
Smartwork browser runtime
Smartwork is part of the same unified browser host, but it is launched separately from the /apps/ catalog.
| Surface | Route | What it does |
|---|---|---|
| Smartwork launcher | /smartwork/launch/{projectId} | First-party launcher that resolves a project into the Smartwork runtime |
| Smartwork runtime | /smartwork/* | Mounted runtime for the launched project session |
| Legacy project deep link | /smartworks/{projectId} | Compatibility path that redirects into /smartwork/launch/{projectId} |
MCP integration
The platform exposes a Model Context Protocol (MCP) server that allows AI assistants and LLMs to interact with one handle programmatically.
What is MCP?
MCP is a protocol that lets AI tools (like Claude, ChatGPT, or custom agents) call structured functions on your behalf. Instead of navigating the UI or writing API calls, you describe what you want in natural language and the AI uses MCP tools to execute it.
Available MCP tools
The hosted MCP surface can expose three capability shapes for a handle:
- tools for actions and structured reads
- read-only
tenx://...resources - reusable prompts for onboarding, debugging, and guided workflows
The table below focuses on tool families. For the operator-facing composition view of tools, resources, and prompts together, use MCP Builder and Hosted Tools.
| Category | Tools | What they do |
|---|---|---|
| System | system_discover | Handle discovery and metadata |
| Links | links_list, links_upsert, links_health_check, links_route_preview | Create, update, and inspect links |
| Forms | forms_schema_get, forms_feedback_record, links_form_submit | Retrieve the current shipped link form schema (link_form_v1) and submit with validation |
| Tracking | Tracking template tools | Manage fixed tracking templates and handle-level personalization rules |
| Routing | Routing rule tools | Manage and evaluate routing rules |
| Analytics | Analytics query tools | Query analytics and reporting data |
| Knowledge | knowledge_query, knowledge_topics, knowledge_stats | Query indexed handle knowledge and inspect coverage |
| Commerce | commerce_pages_list, commerce_page_buyers_list, commerce_access_check, commerce_refund_issue, commerce_checkout_session_preview | Review paid pages, buyers, access state, refunds, and checkout readiness |
| Webhooks | Webhook subscription tools | Manage HTTPS webhook subscriptions with endpointUrl and eventTypes |
| Agent | agent_discover, agent_generate_strategy, agent_list_proposals, agent_create_proposal, agent_approve_proposal, agent_reject_proposal, agent_start_run, agent_get_run_status, agent_rollback_run | Full agent planning and execution lifecycle |
| Code Runs | Code execution tools | Execute and monitor code runtimes |
| Site Management | site_deploy_inline, site_deploy_multifile, site_list_deployments, site_preview_deployment, pages_list | Deploy custom site files/HTML, publish routed pages like /perfume via multifile nested index.html files, list creator pages, and open returned public URLs through ChatGPT launcher buttons |
| Campaign Site Structure | campaign_structure_get, campaign_structure_upsert, campaign_structure_publish | Manage campaign detail page schemas (CAMPAIGN_DETAIL_V1) backed by page metadata and S3 JSON |
Connecting an AI assistant
- Create one connector per handle.
- Point the connector to
https://{handle}.mcp.10x.in/mcporhttps://ai.10x.in/mcp/{handle}/mcp. - Complete the OAuth redirect and approve the scopes the connector needs.
- Let the shared bootstrap workflow recover auth, validate scopes, and resume the requested handle workflow.
- Let the hosted MCP transport use the OAuth-issued bridge credential. Do not paste raw usernames or passwords.
For detailed ChatGPT/OpenAI setup (auth handshake, scopes, and verification), follow ChatGPT MCP Setup.
MCP Builder and hosted composition
The operator-facing browser path for hosted MCP now lives under https://app.10x.in:
- Open the handle in the control plane.
- Navigate to
Integrations -> MCP & Tools. - Review the connector endpoint, then use
MCP Builderto inspect visible tools, resources, and prompts.
MCP Builder is the review and composition surface for the hosted connector. It lets you:
- inspect preview counts for visible tools, resources, and prompts
- enable or disable capability packs
- control which authenticated function bindings are exposed as MCP tools
- manage custom read-only resources and reusable prompts
Use MCP Builder and Hosted Tools for the full browser workflow and verification checklist.
Warning
Do not point MCP tools at a mapped custom domain. Custom domains are for site and redirect traffic; MCP remains on the platform environment hostname ({handle}.mcp.10x.in in production, staging/test platform hostname outside prod).
MCP hosting
The MCP server can be accessed in multiple ways:
| Mode | URL pattern | Use case |
|---|---|---|
| Handle subdomain | {handle}.mcp.{domain} | Per-handle MCP access |
| Direct API | Via API Gateway | Programmatic access |
Sessions are managed via Redis with a configurable TTL (default 30 minutes). Each session is scoped to a handle and authenticated with the OAuth-issued bridge bearer for that connector.
Why MCP stays on platform domains
Platform MCP hosting currently depends on:
- platform-managed wildcard DNS and certificates for per-handle MCP subdomains
- environment-owned OAuth discovery metadata and protected-resource metadata
- environment-owned host parsing for handle resolution and session routing
Supporting MCP on customer-managed custom domains would require additional wildcard delegation, certificate lifecycle management, and OAuth metadata hosting for every customer domain. That is not supported today.
WebMCP browser tools
The platform also provides 6 built-in browser tools that work in the page context:
| Tool | What it does |
|---|---|
read_page_context | Read the current page's targeting context |
explain_variant_selection | Explain why a particular personalization variant was selected |
write_signal | Write a behavioral signal to the chain |
resolve_intent | Resolve the visitor's intent from accumulated signals |
prefetch_decisions | Pre-compute decisions for multiple trigger events |
track_conversion | Track a conversion event with ctx token |
Function bindings
Function bindings let you register custom tool definitions that are exposed through the MCP server and public API.
Architecture summary:
- A binding is a handle-scoped registry entry, not uploaded custom code.
- Public browser/WebMCP clients can discover only
ACTIVEtemplate-backed bindings and invoke them through the public/_fn/*compatibility path. - Authenticated MCP clients can discover a broader set of
ACTIVEbindings and invoke either template-backed or skill-backed targets through the PAT-protected MCP binding surfaces.
For the deeper platform design, see Function Bindings MCP Architecture.
Creating a function binding
POST /v2/handles/{handle}/function-bindings
{
"bindingKey": "product_lookup",
"status": "ACTIVE",
"target": {
"type": "template",
"templateKey": "proxy_request"
},
"exposure": {
"publicWeb": true,
"authenticatedMcp": true
},
"execution": {
"mode": "sync"
},
"tool": {
"name": "product_lookup",
"description": "Look up product details by SKU"
},
"inputSchema": {
"type": "object",
"properties": {
"sku": { "type": "string" }
},
"required": ["sku"]
},
"config": {
"endpointUrl": "https://catalog.example.com/products"
}
}
Requirements:
- PRO plan or above (
growth_toolsfeature gate). - Binding key must match
^[a-z0-9][a-z0-9_-]{1,63}$. - Template targets can use
proxy_request,webhook_forward,form_submit, orsigned_redirect. - Public Web exposure is limited to template-backed bindings in v1.
- Skill-backed bindings are allowed for authenticated MCP when the referenced skill has been published.
Listing function bindings
GET /v2/handles/{handle}/function-bindings
Returns the full registry for the handle, including disabled bindings and bindings that are only exposed to authenticated MCP.
Discovering public bindings
GET /v2/public/handles/{handle}/function-bindings
Returns only ACTIVE template-backed bindings with exposure.publicWeb=true. Browser/WebMCP clients use this endpoint for safe public discovery.
Discovering authenticated MCP bindings
GET /v2/public/handles/{handle}/function-bindings/mcp
Requires a PAT with mcp.connect plus per-binding or per-skill invoke authorization. This surface can include both template-backed and skill-backed bindings.
Invoking a binding at the edge
GET|POST /_edge/fn/{handle}/{bindingKey}
Use this path to invoke a public template-backed binding after creation/discovery.
Invoking an authenticated MCP binding
POST /v2/public/handles/{handle}/function-bindings/{bindingKey}/invoke
Requires a PAT with mcp.connect plus binding.invoke:{bindingKey} for template targets, or the underlying skill.invoke:{skillKey} permission for skill-backed targets. Responses use a normalized envelope:
- Sync:
{ "mode": "sync", "ok": true, "output": ..., "meta": ... } - Async:
{ "mode": "async", "ok": true, "invocationId": "...", "status": "QUEUED", "meta": ... }
UI path
- Open
https://app.10x.in. - Navigate to your handle settings.
- Open the Integrations tab.
- Open
MCP & Toolsto view the hosted connector endpoint and theMCP Buildercomposition surface. - Configure function bindings or review authenticated binding exposure from the same Integrations area.
- Use
/apps/from the main navigation to browse product workflows, or open the creator modules under/creator/*. - Open
/smartwork/launch/{projectId}when you need the first-party Smartwork launcher for a project.
Required auth
- CREATOR-level
JWTfor app suite access. - OAuth connector grant with appropriate scopes for MCP tool usage.
pages.read/pages.writescopes for campaign-structure MCP tools.- PRO plan required for function bindings (
growth_toolsgate). PATis required for authenticated MCP binding discovery/invocation.
Common errors
| Code | Error | Cause |
|---|---|---|
| 403 | feature_locked | Function bindings require PRO plan |
| 400 | invalid_binding_key | Binding key does not match required pattern |
| 401 | invalid_token | OAuth connector grant is missing, expired, or invalid for the MCP session |
Related: