From a35a19d04dacb5e34f0730aeb644cb084695a794 Mon Sep 17 00:00:00 2001 From: Sil Date: Wed, 7 Oct 2026 20:45:11 +0200 Subject: [PATCH] Add Fulldev Sites as the product sites The CLI lists it at https://sites.full.dev/mcp, with its sign-in, tools and calls like the other products. For administrators only for now. Co-Authored-By: Claude Opus 5.5 (1M context) --- .changeset/fulldev-sites.md | 5 +++++ README.md | 1 + dist/cli.mjs | 6 ++++++ skills/fulldev/SKILL.md | 5 +++-- src/main.test.ts | 1 + src/products.test.ts | 4 +++- src/products.ts | 7 +++++++ 7 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 .changeset/fulldev-sites.md diff --git a/.changeset/fulldev-sites.md b/.changeset/fulldev-sites.md new file mode 100644 index 0000000..9e299cb --- /dev/null +++ b/.changeset/fulldev-sites.md @@ -0,0 +1,5 @@ +--- +"fulldev": minor +--- + +Add Fulldev Sites as the product `sites`, at `https://sites.full.dev/mcp`: have Fulldev make a finished website from a brief and tested design options. For administrators only for now. diff --git a/README.md b/README.md index a57222a..66228ae 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ Use Fulldev products from a terminal or an AI agent. The CLI is a thin client of | `cms` | `https://cms.full.dev/mcp` | Editing your website through the [Fulldev CMS](https://cms.full.dev) | | `connect` | `https://connect.full.dev/mcp` | Your business tools, such as Shopify, through [Fulldev Connect](https://connect.full.dev) | | `scan` | `https://scan.full.dev/mcp` | Scanning websites with [Fulldev Scan](https://scan.full.dev), for administrators only | +| `sites` | `https://sites.full.dev/mcp` | A finished website from [Fulldev Sites](https://sites.full.dev), for administrators only | ## Install diff --git a/dist/cli.mjs b/dist/cli.mjs index 7299d60..d0089b0 100644 --- a/dist/cli.mjs +++ b/dist/cli.mjs @@ -357,6 +357,12 @@ const products = [ title: "Fulldev Scan", url: "https://scan.full.dev/mcp", description: "Scan whole websites for problems. For administrators only." + }, + { + name: "sites", + title: "Fulldev Sites", + url: "https://sites.full.dev/mcp", + description: "Have Fulldev make a finished website from a brief and tested design options. For administrators only for now." } ]; function findProduct(name) { diff --git a/skills/fulldev/SKILL.md b/skills/fulldev/SKILL.md index 62e74f7..e59a27e 100644 --- a/skills/fulldev/SKILL.md +++ b/skills/fulldev/SKILL.md @@ -1,8 +1,8 @@ --- name: fulldev -description: Use the Fulldev CLI to work with Fulldev products for the person. Use cms when they want to change their Fulldev website, such as text, pages, images, prices, opening hours, or contact details, or publish a change. Use connect when they want to use their business tools, such as Shopify, through Fulldev Connect. Use scan to scan websites, only for Fulldev administrators. +description: Use the Fulldev CLI to work with Fulldev products for the person. Use cms when they want to change their Fulldev website, such as text, pages, images, prices, opening hours, or contact details, or publish a change. Use connect when they want to use their business tools, such as Shopify, through Fulldev Connect. Use scan to scan websites, only for Fulldev administrators. Use sites when they want Fulldev to make a new website from a brief, only for Fulldev administrators for now. license: MIT -compatibility: Needs Node.js 24 or later and network access to cms.full.dev, connect.full.dev, scan.full.dev and clerk.full.dev. +compatibility: Needs Node.js 24 or later and network access to cms.full.dev, connect.full.dev, scan.full.dev, sites.full.dev and clerk.full.dev. --- # Fulldev @@ -14,6 +14,7 @@ The `fulldev` CLI talks to the MCP server of each Fulldev product. The tools, th | `cms` | Editing the person's website. Every change goes to a branch and a draft pull request, within the file permissions Fulldev grants the person. | | `connect` | The person's business tools, such as Shopify, with the access their organization grants them. | | `scan` | Scanning websites. Only for Fulldev administrators. | +| `sites` | Making a new website with Fulldev Sites from a brief and design options. Only for Fulldev administrators for now. | ## Run diff --git a/src/main.test.ts b/src/main.test.ts index 93c8b9a..7fad5ed 100644 --- a/src/main.test.ts +++ b/src/main.test.ts @@ -153,6 +153,7 @@ describe("main", () => { { product: "cms", signedIn: false }, { product: "connect", signedIn: false }, { product: "scan", signedIn: false }, + { product: "sites", signedIn: false }, ], }) }) diff --git a/src/products.test.ts b/src/products.test.ts index 48a964c..df56ba3 100644 --- a/src/products.test.ts +++ b/src/products.test.ts @@ -12,11 +12,12 @@ import { const cms = findProduct("cms")! describe("products", () => { - it("has cms, connect and scan with their MCP servers", () => { + it("has cms, connect, scan and sites with their MCP servers", () => { expect(products.map(({ name, url }) => [name, url])).toEqual([ ["cms", "https://cms.full.dev/mcp"], ["connect", "https://connect.full.dev/mcp"], ["scan", "https://scan.full.dev/mcp"], + ["sites", "https://sites.full.dev/mcp"], ]) for (const product of products) { expect(product.title).toMatch(/^Fulldev /) @@ -55,6 +56,7 @@ describe("products", () => { "https://preview.example.com/mcp", "https://connect.full.dev/mcp", "https://scan.full.dev/mcp", + "https://sites.full.dev/mcp", ]) expect(parseCommandLine(["connect", "tools"], env)).toMatchObject({ target: { url: "https://connect.full.dev/mcp" }, diff --git a/src/products.ts b/src/products.ts index 763819a..373155a 100644 --- a/src/products.ts +++ b/src/products.ts @@ -32,6 +32,13 @@ export const products: Array = [ url: "https://scan.full.dev/mcp", description: "Scan whole websites for problems. For administrators only.", }, + { + name: "sites", + title: "Fulldev Sites", + url: "https://sites.full.dev/mcp", + description: + "Have Fulldev make a finished website from a brief and tested design options. For administrators only for now.", + }, ] /** A product with the server URL this run uses. */