{
  "markdown": "# @socialai/website-mcp\n\nModel Context Protocol server for the Social AI Website Builder.\n\nUse Social AI from Claude, OpenAI Codex, Cursor, Windsurf, VS Code, or any MCP-compatible client to create websites, edit pages, manage shops, upload media, configure payments, inspect analytics, and publish live sites.\n\n## What Users Can Do\n\n- Create a blank website or shop.\n- Create a website from a Social AI template.\n- Browse block types with reference links before adding headers, heroes, promo/ad sections, product rows, forms, and footers.\n- Use setup presets for shop categories, variants, header menus, footer columns, contact pages, and product CSVs.\n- Edit pages and blocks.\n- Generate website copy, page sections, and themes with AI.\n- Manage products, variants, categories, CSV import/export, discounts, and orders.\n- Upload and host images.\n- Configure country, currency, payment provider, and public site settings.\n- Check preview, domain, analytics, leads, snapshots, and media limits.\n- Publish a site when the account has an active package website slot.\n\n## Choose the Right Connection\n\nFor Claude.ai, Claude Desktop, Cowork, and other remote OAuth clients, add this custom connector URL:\n\n```text\nhttps://socialai.one/api/mcp\n```\n\nComplete Social AI sign-in, approve access, enable Social AI in a new conversation, and ask the client to call `get_started`. No npm install, JSON edit, or API key is required for this path.\n\nFor local CLI and IDE clients, use the npm package below. This path requires Node.js 18 or newer and a Social AI API key from `Settings -> API Keys`. Put the live key directly in the local config or secret store; never paste it into chat.\n\n## Local Package Quick Start\n\nAdd this MCP server to a local AI client:\n\n```json\n{\n  \"mcpServers\": {\n    \"socialai-websites\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@socialai/website-mcp\"],\n      \"env\": {\n        \"SOCIALAI_API_KEY\": \"sai_user_xxxxx\",\n        \"SOCIALAI_API_URL\": \"https://socialai.one\"\n      }\n    }\n  }\n}\n```\n\nThen restart your AI client and try:\n\n```text\nHelp me create a Social AI website. Ask me one question at a time.\n```\n\nThe MCP includes `get_started`, `get_proactive_next_steps`, `get_store_setup_preset`, `get_intake_questions`, `quick_build`, `product_csv(action=\"template\")`, and a `socialai_start_website` prompt. Good AI clients can use those to guide the user through a friendly setup flow instead of dumping raw JSON.\n\nFor template browsing, ask for a small shortlist:\n\n```text\nShow me 5 shop templates with preview links for a South African fashion store.\n```\n\nFor block browsing, ask for focused options:\n\n```text\nShow me 8 hero and header blocks with reference links.\n```\n\n## Claude Code\n\nAdd to `~/.claude/settings.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"socialai-websites\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@socialai/website-mcp\"],\n      \"env\": {\n        \"SOCIALAI_API_KEY\": \"sai_user_xxxxx\",\n        \"SOCIALAI_API_URL\": \"https://socialai.one\"\n      }\n    }\n  }\n}\n```\n\n## OpenAI Codex\n\nAdd to `~/.codex/config.toml`:\n\n```toml\n[mcp_servers.socialai_websites]\ncommand = \"npx\"\nargs = [\"-y\", \"@socialai/website-mcp\"]\n\n[mcp_servers.socialai_websites.env]\nSOCIALAI_API_KEY = \"sai_user_xxxxx\"\nSOCIALAI_API_URL = \"https://socialai.one\"\n```\n\n## Cursor or Windsurf\n\nAdd to `.cursor/mcp.json` or the Windsurf MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"socialai-websites\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@socialai/website-mcp\"],\n      \"env\": {\n        \"SOCIALAI_API_KEY\": \"sai_user_xxxxx\",\n        \"SOCIALAI_API_URL\": \"https://socialai.one\"\n      }\n    }\n  }\n}\n```\n\n## VS Code\n\nAdd to `.vscode/settings.json`:\n\n```json\n{\n  \"mcp\": {\n    \"servers\": {\n      \"socialai-websites\": {\n        \"type\": \"stdio\",\n        \"command\": \"npx\",\n        \"args\": [\"-y\", \"@socialai/website-mcp\"],\n        \"env\": {\n          \"SOCIALAI_API_KEY\": \"sai_user_xxxxx\",\n          \"SOCIALAI_API_URL\": \"https://socialai.one\"\n        }\n      }\n    }\n  }\n}\n```\n\n## Tool Groups\n\n### Getting Started\n\n- `get_started`\n- `get_proactive_next_steps`\n- `get_intake_questions`\n- `get_store_setup_preset`\n- `quick_build`\n- `product_csv` with `action: \"template\"`\n- `list_blocks`\n- `list_block_types`\n- Prompt: `socialai_start_website`\n- Resources: `socialai://mcp/getting-started`, `socialai://mcp/workflows/create-website`\n\n### Websites\n\n- `list_templates`\n- `create_website_from_template`\n- `transfer_website_to_template`\n- `manage_websites`\n- `export_site`\n- `apply_site`\n- `publish_website`\n- `get_preview_url`\n- `manage_domain`\n- `manage_snapshots`\n\n### Pages and Navigation\n\n- `update_page_blocks`\n- `manage_pages`\n- `manage_navigation`\n- `manage_posts`\n\n### Block Catalog\n\n- `list_blocks`\n- `list_block_types`\n\nUse this before adding sections when the user wants to choose a block visually or by name. Each result includes `type`, `label`, `group`, `keywords`, and `referenceUrl`.\n\n### AI and Theme\n\n- `generate_content`\n- `manage_theme`\n\n### Store, Products, Orders, and Discounts\n\n- `manage_products`\n- `manage_variants`\n- `manage_categories`\n- `product_csv`\n- `manage_orders`\n- `manage_discounts`\n\n### Media\n\n- `manage_media`\n\n### Payments and Settings\n\n- `manage_store_settings`\n\n### Analytics, Leads, Snapshots, and Support\n\n- `get_traffic_summary`\n- `list_leads`\n- `report_issue`\n\n### Marketplace sellers\n\n- `manage_shop_seller` — run a third-party seller account on the main Social AI Shop marketplace. This is a different shop from the website-builder store: `manage_products` and the other store tools are scoped to a website project, while most marketplace listings have none, so a marketplace seller cannot reach their own catalogue through them. Covers products (list/get/update/delete, plus `set_offer` for shared listings where the price lives on the offer rather than the product), image upload from the local machine or an https URL, CSV export/preview/import matched on SKU, dispatch and collection addresses with the courier prices the customer is charged, orders and shipment marking, returns decisions, balance and payout requests. A new product is submitted for Social AI approval rather than published; `delete_product`, `delete_location`, `import_products` and `request_payout` require `confirm=true`; payouts go only to the bank account saved in the seller portal and cannot be redirected from MCP; an order shows only the calling seller's own lines. Every write is recorded against the acting agent. Intentionally excluded from the OpenAI review profile.\n\n### Team & Partners\n\n- `manage_team` — durable team inbox (`my_inbox`), assigned-task acknowledgement, submission with artifact URLs, owner approval/change requests, day/week/month work logs, and authorised team channels. Open Team pages receive live channel updates; assignments/submissions also send in-app notifications and email, while MCP clients retrieve state with `my_inbox` or `my_tasks`. Channel posts can optionally email recipients, and `@sai` answers with live team stats. Reports are filed to the owner and mirrored into `#bugs`.\n- `manage_business_teams` — full-client multi-business administration: create/list businesses, select country/currency/accounting books, manage role-based members, choose Stripe/PayStack/PayFast and sandbox mode, narrow Team/MCP switches, and inspect accounting-linked customers/debtors. It never accepts or returns gateway secrets and is intentionally excluded from the OpenAI review profile.\n- `manage_team_invoices` — full-client Team invoice CRUD, secure customer links, and confirmed email delivery. It can select Stripe, PayStack, or PayFast for the customer portal but cannot execute or mark a payment; signed provider webhooks do that. Delete and email actions require explicit confirmation. Administrators can disable Team invoicing, gateways, email, or the MCP invoice surface independently. This finance-adjacent tool is intentionally excluded from the OpenAI review profile.\n- `manage_feedback_surveys` — full-client Team feedback survey CRUD, email preview, satisfaction/matrix/NPS/text questions, selected or all-Team delivery, invitation metrics, and response analysis. Delete and email actions require explicit confirmation. Team permissions and administrator switches are enforced, and the tool is intentionally excluded from the OpenAI review profile.\n- `manage_feedback_surveys` — full-client Team feedback survey CRUD, email preview, satisfaction/matrix/NPS/text questions, selected or all-Team delivery, invitation metrics, and response analysis. Delete and email actions require explicit confirmation. Team permissions and administrator switches are enforced, and the tool is intentionally excluded from the OpenAI review profile.\n\n## Example Prompts\n\n```text\nHelp me create a Social AI website. Ask me one question at a time, then recommend templates.\n```\n\n```text\nShow me 5 premium shop templates with preview links for a South African fashion store.\n```\n\n```text\nCreate a website from the best template for a premium dental clinic in Johannesburg.\n```\n\n```text\nList my websites, make the newest one the active package-slot website, and show me the preview URL.\n```\n\n```text\nImport this product CSV, upload the image URLs, create categories, and configure South African payments.\n```\n\n```text\nExport only the demo products with source columns, then replace the demo products with my real CSV.\n```\n\n```text\nCheck my store orders, list open leads, and summarize the last 30 days of traffic.\n```\n\n```text\nDuplicate the About page, rename it Our Story, update the navigation, and publish when I confirm.\n```\n\n```text\nShow me promo/ad style blocks with reference links, then add the one I choose to the homepage.\n```\n\n## Template Browsing Without Huge Output\n\n`list_templates` supports filters so AI clients do not need to load every template:\n\n- `limit` and `offset` for pagination.\n- `q` for natural search text such as `fashion`, `coffee`, `law`, or `skincare`.\n- `projectType` as `website` or `shop`.\n- `category` for category/tag filtering.\n- `premium` for premium/free filtering.\n- `includePages=false` and `summaryOnly=true` for short chat output.\n\nEach result includes a `previewUrl` so the user can click and inspect the template before choosing it.\n\n## Product CSV and Demo Products\n\nTemplate shops can include demo products so the store looks complete before the seller adds their own catalog. Those demo rows are tagged separately from seller-imported rows.\n\n- Use `product_csv` with `action: \"template\"` to create a fillable product CSV for the chosen store type.\n- Use `product_csv` with `action: \"export\"` and `scope: \"demo\"` to download only template demo products.\n- Use `product_csv` with `action: \"export\"` and `scope: \"user\"` to download only seller/imported products.\n- Use `includeSource: true` when the AI or admin needs to see whether a row is demo or user-owned.\n- Use `product_csv` with `action: \"import\"` and `replaceDemoProducts: true` when the seller confirms they want to delete the demo catalog and replace it with their real products.\n- For a storefront URL migration, use Import Studio for the design direction and `import_products_from_url` for Shopify or WooCommerce/WordPress product feeds. Public WooCommerce works through the Store API; pass `wooConsumerKey` and `wooConsumerSecret` for private Woo catalogs and richer variation imports. The seller admin **Products -> Import products from a store URL** flow uses the same importer. URL imports create draft products first so the seller can review, edit, bulk-activate, mirror product images into Social AI storage, and publish intentionally.\n\nThe import endpoint imports core product fields plus supported variant/detail/spec columns. Follow-up MCP actions such as `manage_variants`, `manage_categories`, and `manage_products(action: \"mirror_images\")` can refine anything that needs custom handling after import.\n\n## Safeguards and Entitlements\n\nThe MCP respects Social AI plan rules:\n\n- API keys must have the right scopes.\n- Paid package slots control publishing, commerce, payments, and custom-domain power.\n- Draft sites can exist without being assigned to a paid package slot.\n- Media uploads are checked against storage, monthly upload count, file size, dimensions, and image type limits.\n- AI generation checks plan access, rate limits, and credit billing.\n- Expired/free accounts can read where allowed, but write, publish, commerce, AI, and custom-domain tools can be blocked by plan state.\n- Project-scoped keys can only access their pinned project.\n\nWhen a tool is blocked, the server returns an error code such as:\n\n- `mcp_access_denied`\n- `website_edit_mode_denied`\n- `inactive_package_slot`\n- `active_package_slot_limit`\n- `published_site_limit`\n- `media_storage_limit`\n- `monthly_media_upload_limit`\n- `ai_provider_failed`\n\n## Country-Aware Payments\n\nUse `manage_store_settings` with `action: \"set_payments\"` and a country code:\n\n```text\nConfigure this shop for South Africa.\n```\n\nThe tool can set `country=ZA`, `currency=ZAR`, and recommend providers such as Paystack, PayFast, and Ozow. Payment provider secret keys are not accepted through MCP; they must be entered in the Social AI dashboard.\n\n## Local Testing\n\nPowerShell:\n\n```powershell\ncd C:\\sai\\SaiApp\\mcp\n$env:SOCIALAI_API_URL = \"http://localhost:3000\"\n$env:SOCIALAI_API_KEY = \"sai_user_xxxxx\"\nnode test-local.mjs\n```\n\nDo not paste the `PS C:\\...>` prompt itself. Only paste the commands.\n\n## Publishing a New npm Version\n\nThe repository release contract is `mcp/compatibility.json`. The full OAuth endpoint is `https://socialai.one/api/mcp`; the OpenAI submission endpoint is the review-stable `https://socialai.one/api/mcp/openai`. Existing SocialAI entitlements apply on both endpoints, but the OpenAI profile does not expose checkout, subscription purchase, credit purchase, money transfer, or payment execution. `lib/mcpOpenAiPolicy.json` is the canonical OpenAI hint/payment policy; run `npm run generate:chatgpt-submission` and `npm run check:chatgpt-submission` whenever tools or hints change. Update the contract together with `mcp/package.json`, `mcp/package-lock.json`, the runtime version in `mcp/src/server.ts`, the public `/mcp` page, `public/llms.txt`, `mcp/SETUP.md`, and the admin MCP manual.\n\n```powershell\ncd C:\\sai\\SaiApp\\mcp\nnpm login\nnpm version patch --no-git-tag-version\nnpm run build\nnpm pack --dry-run\nnpm publish --access public\ncd ..\nnpm run check:mcp-registry\n```\n\nThe npm package only updates the local stdio server. Deploy the Social AI web app so the matching `/api/mcp-api/*` routes, `https://socialai.one/api/mcp`, and `/mcp` instructions are current. Then complete a clean hosted OAuth test with any local stdio Social AI server disabled.\n\n## Environment Variables\n\n| Variable | Required | Description |\n| --- | --- | --- |\n| `SOCIALAI_API_KEY` | Yes | User or project API key from Social AI. |\n| `SOCIALAI_API_URL` | No | Social AI API base URL. Defaults to `https://socialai.one`. |\n\n## License\n\nMIT",
  "bytes": 14957,
  "sha": "750bf011a04ac9b04b96d6b95cd7d56a2a343546b77f16b1960963a4b70abc6f",
  "repo_slug": "",
  "fonte": "npm",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_one_socialai_website_mcp_f3cf4edb/readme"
}