Convert any website, SaaS product, or API into a live, discoverable, agent-executable integration. This skill encodes the complete Agent-See workflow — from conversion through deployment, publication, backend connection, and ongoing maintenance.
Operating principle: Never stop at artifact generation. After every step, present the go-live status dashboard and proactively ask what's needed next. The conversion is the starting point, not the finish line.
Before running any agent-see command:
Check if agent-see is installed:
bash
agent-see --version 2>/dev/null
If not installed, auto-install from the repository: bash
pip install git+https://github.com/Danielfoojunwei/Convert-any-SaaS-application-into-an-Agentic-interface.git --break-system-packages
If Python 3.11+ is not available, install via uv:
bash
uv python install 3.11
uv venv --python 3.11 .venv
source .venv/bin/activate
uv pip install git+https://github.com/Danielfoojunwei/Convert-any-SaaS-application-into-an-Agentic-interface.git
For website/SaaS URL conversion, Playwright is required: bash
playwright install chromium
Transform a website URL, SaaS product URL, or OpenAPI specification into a grounded agent bundle.
User providesSource typeExampleA website URLWebsitehttps://example.comA SaaS product URLSaaShttps://app.example.comA local file path ending in .json, .yaml, or .ymlOpenAPI spec./openapi.json
If the source type is ambiguous, ask the user to clarify.
Set the output directory. Default to ./agent-output unless the user specifies otherwise.
bash
agent-see convert <source> --output <output-dir> --verbose
Read and summarize the key outputs:
agent_card.json — confirm identity and discovery metadataAGENTS.md — verify the agent/operator guidance is accurateopenapi.yaml — check the API contract was captured correctlyskills/ — enumerate the business action wrappers generatedOPERATIONAL_READINESS.md — review execution boundariesPresent a structured summary:
If conversion fails:
playwright install chromiumAfter conversion succeeds, immediately:
Run verification: agent-see verify <output-dir>/proof/proof.json
Present the go-live status dashboard showing what's done and what remains: StepStatusWhat's neededConversion✅ Done—Verification⏳ Running—Launch layer❌ Not startedBusiness name, domain, contact infoRuntime deployment❌ Not startedHosting platform choiceDiscovery publishing❌ Not startedWebsite accessBackend connection❌ Not startedReal API/database detailsMaintenance❌ Not startedSchedule preferences
Ask: "Should we continue with generating the launch layer, or do you want to deploy the server first?"
Core bundle files:
ArtifactDescriptionmcp_server/Callable tool surface for agents. Contains server.py, deployment configs (Dockerfile, docker-compose.yml, fly.toml, railway.json, render.yaml), and runtime metadata (route_map.json, tool_metadata.json, runtime_state.json).openapi.yamlMachine-readable API contract. All discovered endpoints, request/response schemas, auth requirements, rate limits.agent_card.jsonIdentity and discovery metadata. Agent name, description, capabilities, supported protocols, trust signals.AGENTS.mdHuman and agent-readable guidance. What the integration does, how to use it, operational boundaries, caveats.OPERATIONAL_READINESS.mdExecution boundaries. Auth requirements, state-changing operations, rate limits, known limitations.skills/*.mdIndividual business action wrappers (e.g., list_products.md, add_to_cart.md).skills/workflows/*.mdComposite workflow files chaining multiple skills (e.g., purchase_flow.md).proof/Grounding evidence: screenshots, DOM snapshots, API response samples, cross-validation reports.capability_graph.jsonStructured graph of capabilities and their relationships.
Assess conversion quality across coverage, fidelity, and hallucination metrics.
bash
agent-see verify <output-dir>/proof/proof.json
MetricHighMediumLowCoverage>80% — most actions captured50-80% — significant gaps<50% — re-run requiredFidelityFaithfully represents sourceSimplified/approximatedSignificant deviationsHallucinationNone detectedWeak grounding evidenceFabricated capabilities — must remove
Present a structured summary:
Issue typeActionLow coverageRe-run conversion with adjusted scope or better accessLow fidelityRe-run with verbose modeHallucinationsRemove fabricated entries from skills/ and update agent_card.jsonMissing proofRe-run conversion to regenerate grounding evidence
Generate the public discovery and trust layer from an existing grounded agent bundle.
Confirm a grounded agent bundle exists:
bash
ls <output-dir>/agent_card.json
Check for or generate a launch intake file:
bash
agent-see launch init ./launch-intake.json \
--name "<business name>" \
--domain "https://<domain>" \
--business-type <type> \
--summary "<description>" \
--contact-email "<email>" \
--support-url "https://<domain>/support" \
--agent-see-output-dir <output-dir> \
--verbose
Key fields to confirm with the user: business name and URL, public page locations, trust signals, contact information.
bash
agent-see launch sync ./launch-intake.json --verbose
bash
agent-see launch check <launch-output> --bundle <output-dir>
Read and summarize:
ArtifactWhat to checklaunch/llms.txtAccurately describes public pageslaunch/agents.mdTruthful agent access instructionslaunch/reference_layer/Supporting usage, limitation, trust, policy pageslaunch/launch_report.mdReadiness warningslaunch/surface_alignment.jsonPublic claims match runtime capabilitieslaunch/update_register.mdMaintenance plan
ArtifactPurposellms.txtModel-facing guide at website root. Tells LLMs which pages are most important. Follows the llms.txt convention.agents.mdCanonical "how to use this integration" document. Actions, connection details, boundaries, contacts.Reference layerUsage guide, limitations, trust signals, policy page.Launch reportInternal readiness assessment. Checks artifacts generated, claims supported.Surface alignment JSONMachine-readable comparison: each claim tagged aligned, partial, or misaligned.Update registerMaintenance plan: trigger conditions, commands, expected outputs.
After launch artifacts are generated, immediately:
Present the updated go-live status dashboard
Ask: "Launch layer is ready. These files need to be published on your website. Should we:"
Recommend this order: deploy runtime → publish discovery (with real endpoint URL) → connect real data
Wrap a grounded agent bundle as a distributable plugin for a target harness.
Confirm bundle exists:
bash
ls <output-dir>/agent_card.json
Default to Claude workspace format. Supported targets:
HarnessDescriptionArtifact mixClaudeClaude workspaces / Cowork pluginsMCP runtime or OpenAPI, AGENTS guidance, plugin guideManusManus-style agentsMCP runtime, AGENTS guidance, skills, readiness outputsOpenClawOpenClaw-like orchestratorsRuntime metadata, agent card, route map, connector guideGenericAny other agent systemOpenAPI, AGENTS guidance, plugin manifest, starter kit
bash
agent-see plugin sync <output-dir> --launch-output <launch-output> --verbose
ArtifactPurposeplugins/plugin_manifest.jsonMachine-readable inventory of the grounded bundleplugins/PLUGIN_GUIDE.mdStep-by-step usage for target harnessplugins/connectors/Harness-specific connection guides (claude_workspace.md, manus.md, openclaw.md, generic.md)plugins/starter_kit/Templates: plugin_template.md, skill_template.md, connector_template.md
Claude Workspaces / Cowork:
text
plugin-name/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ └── skill-name/
│ └── SKILL.md
├── .mcp.json (if runtime endpoint exists)
└── README.md
MCP integration in .mcp.json:
json
{
"mcpServers": {
"agent-see-runtime": {
"command": "python",
"args": ["${CLAUDE_PLUGIN_ROOT}/mcp_server/server.py"],
"env": { "API_BASE_URL": "${API_BASE_URL}" }
}
}
}
Manus-style agents: MCP endpoint URL + tool_metadata.json + skills + AGENTS.md
OpenClaw-like orchestrators: agent_card.json registered with discovery service + route_map.json + capability_graph.json + thin protocol connector
Generic harnesses: OpenAPI spec + AGENTS.md guidance + plugin manifest + starter kit templates
Proactive end-to-end orchestrator that guides a business owner from a completed conversion all the way to a live, discoverable, agent-executable integration.
The conversion is the starting point, not the finish line. A converted business needs to become easy for agents and LLMs to retrieve, understand, trust, and act on. This means operating two layers simultaneously: the human-facing website and the machine-facing agent integration surface.
Read the bundle directory and present a status dashboard:
StepStatusWhat's neededConversion✅/❌Source URL or OpenAPI specVerification✅/❌Run agent-see verifyLaunch layer✅/❌Business name, domain, contact infoRuntime deployment✅/❌Hosting platform choiceDiscovery publishing✅/❌Website access or hosting detailsBackend connection✅/❌Real database/API credentialsStructured data✅/❌Website template accessMaintenance loop✅/❌Schedule preferences
Ask: "Which of these do you want to tackle next, or should we go through them in order?"
For each extracted capability, suggest a corresponding URL:
CapabilitySuggested URLUser intent it answerslist_products/products or /menu"What do you sell?"get_product_details/products/{slug}"Tell me about this item"add_to_cart/cart"I want to buy this"submit_checkout/checkout"I'm ready to pay"get_order_status/orders/{id}"Where's my order?"
Ask: "Do these URLs exist on your site? Which ones need to be created or updated?"
For each canonical URL, the top of the page must immediately answer: who the offer is for, what action can be completed, what inputs are required, what constraints exist, and what the next step is.
Ask: "Do you want help rewriting any of these pages? I can generate answer-first content based on your converted capabilities."
Trigger Skill 6: Deploy Runtime. Ask:
Trigger Skill 8: Publish Discovery. Ask:
Help the user create a public /agents page from launch-output/agents.md. Ask:
Generate JSON-LD snippets based on business type:
Organization for the homepageProduct for product pagesFAQPage for FAQBreadcrumbList for navigationAsk about Search Console verification, Google Business Profile, and contact detail consistency across web properties.
Trigger Skill 7: Connect Backend. Ask:
Trigger Skill 9: Maintain. Ask:
agent-see launch check for surface alignmentPresent a final go-live report.
After ANY skill completes (convert, verify, launch, package), immediately present this status dashboard and offer to continue with the next incomplete step. Do not stop at artifact generation.
Deploy the generated MCP server so agents can call it over the network.
Confirm mcp_server/server.py exists in the bundle output.
Ask the user for every required setting before deploying.
Mandatory:
SettingEnvironment variableWhat to askTarget API URLTARGET_URL"What's the base URL of your real API that this server should proxy to?"PortPORTDefault 8000 unless specified
Authentication (ask which applies):
MethodVariablesWhat to askBearer tokenAUTH_TOKEN"Does your API use a bearer token?"Custom headerAUTH_HEADER_NAME, AUTH_HEADER_VALUE"Custom auth header name and value?"None—"Is the API publicly accessible?"
Operational limits:
SettingVariableDefaultRequest timeoutREQUEST_TIMEOUT_MS30000Max retriesMAX_RETRIES3Session TTLSESSION_TTL_SECONDS3600Max sessionsMAX_SESSIONS100
Docker (Local or VPS):
bash
cd <output-dir>/mcp_server
cp .env.example .env
# User fills in .env values
docker-compose up -d
Fly.io:
bash
cd <output-dir>/mcp_server
fly launch --no-deploy
fly secrets set TARGET_URL=<value> AUTH_TOKEN=<value>
fly deploy
Railway:
bash
cd <output-dir>/mcp_server
railway init
railway up
Render: Push mcp_server/ to a Git repo and connect via Render dashboard.
curl <deployed-url>/healthcurl <deployed-url>/toolslist_products and verify real dataAfter deployment, record the live URL. Ask: "Deployment is live at <url>. Should we continue with publishing discovery files?"
Configuration:
TARGET_URL set and correctREQUEST_TIMEOUT_MS)MAX_RETRIES)SESSION_TTL_SECONDS)MAX_SESSIONS)Runtime Safety:
/healthExecution Resilience:
Session Management:
Approval Governance:
Known Limitations:
Wire the generated MCP server to real data sources.
Read route_map.json and tool_metadata.json to understand what endpoints exist.
Ask the user:
"Where does your real product/service data live?"
"Is there API documentation or an OpenAPI spec for your backend?"
"What authentication does your backend require?"
"Do you have a staging/test environment, or should we work against production?"
Existing REST API:
Update TARGET_URL to point to the real API
Map each MCP tool to corresponding real endpoint: MCP ToolGenerated routeReal API endpointlist_productsPOST /tools/list_productsGET /api/productsadd_to_cartPOST /tools/add_to_cartPOST /api/cart/items
Adjust request/response transformations if schemas differ
Set authentication headers
Database Direct:
server.pyE-commerce Platform (Shopify, WooCommerce, Square):
Spreadsheet or Static File:
For each capability:
After all tools connected, run the complete workflow end-to-end.
Place generated discovery and trust files on the business's actual web surface.
Ask before proceeding:
robots.txt and sitemap.xml?"1. robots.txt
Ask: "Do you want AI search crawlers to find your site?"
text
User-agent: *
Allow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: Applebot
Allow: /
Sitemap: https://<domain>/sitemap.xml
Ask: "Allow AI training crawlers too, or only search/user-directed access?"
2. sitemap.xml
Generate XML sitemap with all canonical task URLs and accurate lastmod dates.
xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://<domain>/</loc>
<lastmod>YYYY-MM-DD</lastmod>
<changefreq>weekly</changefreq>
</url>
</urlset>
3. llms.txt
Update the generated llms.txt with actual deployed runtime endpoint and real domain URLs. Place at https://<domain>/llms.txt.
4. /agents Page
Customize launch-output/agents.md with real endpoint URLs. Ask: "HTML page, markdown, or CMS-pasteable content?"
5. Reference Layer Pages
coverage.md, limitations.md, pricing_eligibility.md, support_escalation.md, change_policy.md
Ask: "Separate pages or combined into one reference page?"
6. Structured Data (JSON-LD)
Generate snippets based on business type:
Homepage — Organization:
json
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "<business name>",
"url": "https://<domain>",
"logo": "https://<domain>/logo.png",
"contactPoint": {
"@type": "ContactPoint",
"email": "<support email>",
"contactType": "customer service"
}
}
Product pages — Product:
json
{
"@context": "https://schema.org",
"@type": "Product",
"name": "<name>",
"description": "<description>",
"offers": {
"@type": "Offer",
"price": "<price>",
"priceCurrency": "<currency>",
"availability": "https://schema.org/InStock"
}
}
7. IndexNow Setup
Ask: "Want search engines notified automatically when content changes?" If yes, generate key file and provide submission URL format.
PlatformHow to publishNetlify/VercelAdd files to public/ or static/, deploy normallyWordPressFile manager plugin or FTP for root files; WP admin for pages; structured data via pluginShopifyTheme editor for JSON-LD in theme.liquid; pages for /agents contentCustom serverPlace in static/public directory; add routes for /agents and reference pages
bash
curl -I https://<domain>/robots.txt
curl -I https://<domain>/sitemap.xml
curl -I https://<domain>/llms.txt
curl -I https://<domain>/agents
Keep the agent-facing surface aligned with the real business.
Ask: "What changed in your business?"
Change typeWhat needs refreshingProducts/menu added or removedRe-run conversion, update sitemap, product pages, IndexNowPrices changedUpdate product pages, schema markup, sitemap lastmod, IndexNowPolicies changedUpdate policy pages, reference layer, sitemap lastmodWorkflows changedRe-run conversion, redeploy runtime, update /agents pageAuth or access changedRe-run conversion, update MCP server config, update /agents pageContact/support info changedUpdate Organization markup, Business Profile, support pagesNew capability addedRe-run conversion, refresh all downstream layersBranding or domain changeUpdate all URLs in llms.txt, sitemap, agents page, structured data
1. Re-run Conversion (if business logic changed):
bash
agent-see convert <source> --output <output-dir> --verbose
agent-see verify <output-dir>/proof/proof.json
2. Refresh Launch Layer:
bash
agent-see launch sync <launch-intake.json> --bundle <output-dir> --output <launch-output>
agent-see launch check <launch-output> --bundle <output-dir>
3. Refresh Plugin Layer:
bash
agent-see plugin sync <output-dir> --launch-output <launch-output>
4. Redeploy Runtime (if server code changed)
5. Update Published Discovery Files:
6. Verify Alignment:
agent-see launch checkCadenceWhat to reviewWeeklyBroken links, stale prices, runtime uptime, support details, primary CTAsMonthlySearch Console signals, sitemap freshness, robots.txt, schema validityAfter every material changeRe-run Agent-See, redeploy runtime, update discovery files, IndexNowQuarterlyReassess customer prompts, add task pages, review competitor gaps, expand reference pages
Signs the agent surface has drifted:
If drift detected, run the full re-sync protocol immediately.
A business becomes strong in the prompt economy when it wins four decisions inside a model pipeline: whether the business is retrieved, whether it is selected, whether it is trusted, and whether it can be executed immediately.
LayerGoalBusiness owner must doAgent-See providesDiscoveryGet retrievedPublish crawlable, text-rich, task-shaped pages and discovery filesRuntime artifacts and machine-usable operational surfaceSelectionGet recommendedMake use cases, fit, constraints, pricing, policies explicitStructured description of actions and workflowsTrustGet cited as safeMaintain entity data, support info, policy pages, visible consistencyClear workflow boundaries, auth notes, approval-sensitive actionsExecutionLet agents actDeploy the runtime and expose clear connection guidanceMCP/OpenAPI/runtime outputs and harness-facing artifactsMaintenanceStay freshUpdate pages, feeds, schema, sitemaps, re-run conversionRegeneration path for the executable surface
Every high-value page must immediately answer: who the offer is for, what action can be completed, what inputs are required, what constraints exist, and what the next step is.
FileLocationPurposerobots.txtWebsite rootControl crawler access intentionallysitemap.xmlWebsite rootComplete URL inventory with accurate lastmodllms.txtWebsite rootCurated guide for models to find highest-value pages/agents pagePublic docs or siteConnection instructions for agents
Page typeSchema typeWhyHomepageOrganizationOfficial identity, logo, contactsProduct pagesProductPrice, availability, ratings, shippingFAQFAQPageDirect answers to recurring objectionsNavigationBreadcrumbListPage hierarchy and topical relationships
Do not invent capabilities in the launch or plugin layer. Extract the real business surface first, then wrap it with thin public guidance and thin harness-specific packaging.