websitepublisher-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,105 @@
1
+ # WebsitePublisher MCP Server
2
+
3
+ An MCP (Model Context Protocol) server that enables Claude Desktop and Claude Code to build and publish websites via [WebsitePublisher.ai](https://websitepublisher.ai).
4
+
5
+ ## What is this?
6
+
7
+ This MCP server allows Claude to:
8
+ - 📄 Create, update, and delete web pages
9
+ - 🖼️ Upload assets (images, CSS, JS files)
10
+ - 🚀 Manage your website directly through conversation
11
+
12
+ Just tell Claude: *"Build me a portfolio website"* and watch it happen!
13
+
14
+ ## Installation
15
+
16
+ ### Prerequisites
17
+
18
+ 1. A [WebsitePublisher.ai](https://websitepublisher.ai) account
19
+ 2. A project with API credentials (Project ID + API Token)
20
+ 3. [Claude Desktop](https://claude.ai/download) installed
21
+
22
+ ### Setup
23
+
24
+ Add this to your Claude Desktop configuration file:
25
+
26
+ **Mac:** `~/Library/Application Support/Claude/claude_desktop_config.json`
27
+ **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
28
+
29
+ ```json
30
+ {
31
+ "mcpServers": {
32
+ "websitepublisher": {
33
+ "command": "npx",
34
+ "args": ["-y", "websitepublisher-mcp"],
35
+ "env": {
36
+ "WPA_PROJECT_ID": "your-project-id",
37
+ "WPA_TOKEN": "your-api-token"
38
+ }
39
+ }
40
+ }
41
+ }
42
+ ```
43
+
44
+ Replace `your-project-id` and `your-api-token` with your actual credentials from the WebsitePublisher.ai dashboard.
45
+
46
+ ### Restart Claude Desktop
47
+
48
+ After saving the config, restart Claude Desktop. You should see the WebsitePublisher tools available.
49
+
50
+ ## Available Tools
51
+
52
+ | Tool | Description |
53
+ |------|-------------|
54
+ | `get_status` | Get project status (page count, asset count, domain) |
55
+ | `list_pages` | List all pages in your project |
56
+ | `create_page` | Create a new HTML page |
57
+ | `update_page` | Update an existing page |
58
+ | `delete_page` | Delete a page |
59
+ | `list_assets` | List all assets (images, CSS, JS) |
60
+ | `upload_asset` | Upload a new asset (base64 encoded) |
61
+
62
+ ## Example Usage
63
+
64
+ Once configured, you can ask Claude things like:
65
+
66
+ - *"Show me the status of my website"*
67
+ - *"Create a homepage with a hero section and navigation"*
68
+ - *"List all pages on my site"*
69
+ - *"Update the about page with new content"*
70
+ - *"Upload this logo to my website"*
71
+
72
+ ## Environment Variables
73
+
74
+ | Variable | Required | Description |
75
+ |----------|----------|-------------|
76
+ | `WPA_PROJECT_ID` | Yes | Your WebsitePublisher.ai project ID |
77
+ | `WPA_TOKEN` | Yes | Your API token |
78
+ | `WPA_API_BASE` | No | API base URL (default: `https://api.websitepublisher.ai`) |
79
+
80
+ ## Development
81
+
82
+ ```bash
83
+ # Clone the repo
84
+ git clone https://github.com/websitepublisher/websitepublisher-mcp.git
85
+ cd websitepublisher-mcp
86
+
87
+ # Install dependencies
88
+ npm install
89
+
90
+ # Build
91
+ npm run build
92
+
93
+ # Test with MCP Inspector
94
+ WPA_PROJECT_ID=xxx WPA_TOKEN=xxx npm run inspector
95
+ ```
96
+
97
+ ## Links
98
+
99
+ - [WebsitePublisher.ai](https://websitepublisher.ai) - Main website
100
+ - [API Documentation](https://websitepublisher.ai/docs/papi.html) - PAPI docs
101
+ - [MCP Protocol](https://modelcontextprotocol.io) - Learn about MCP
102
+
103
+ ## License
104
+
105
+ MIT
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/build/index.js ADDED
@@ -0,0 +1,283 @@
1
+ #!/usr/bin/env node
2
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
+ import { z } from "zod";
5
+ // =============================================================================
6
+ // Configuration
7
+ // =============================================================================
8
+ const config = {
9
+ projectId: process.env.WPA_PROJECT_ID || "",
10
+ token: process.env.WPA_TOKEN || "",
11
+ apiBase: process.env.WPA_API_BASE || "https://api.websitepublisher.ai",
12
+ };
13
+ async function apiRequest(method, endpoint, body) {
14
+ const url = `${config.apiBase}${endpoint}`;
15
+ const headers = {
16
+ "Authorization": `Bearer ${config.token}`,
17
+ "Content-Type": "application/json",
18
+ };
19
+ const options = {
20
+ method,
21
+ headers,
22
+ };
23
+ if (body) {
24
+ options.body = JSON.stringify(body);
25
+ }
26
+ try {
27
+ const response = await fetch(url, options);
28
+ const data = await response.json();
29
+ return data;
30
+ }
31
+ catch (error) {
32
+ return {
33
+ success: false,
34
+ error: {
35
+ message: error instanceof Error ? error.message : "Unknown error",
36
+ code: 500,
37
+ },
38
+ };
39
+ }
40
+ }
41
+ // =============================================================================
42
+ // MCP Server Setup
43
+ // =============================================================================
44
+ const server = new McpServer({
45
+ name: "websitepublisher-mcp",
46
+ version: "1.0.0",
47
+ });
48
+ // =============================================================================
49
+ // Tool: get_status
50
+ // =============================================================================
51
+ server.tool("get_status", "Get the current status of your WebsitePublisher.ai project including page and asset counts", {}, async () => {
52
+ // Validate configuration
53
+ if (!config.projectId || !config.token) {
54
+ return {
55
+ content: [
56
+ {
57
+ type: "text",
58
+ text: JSON.stringify({
59
+ success: false,
60
+ error: "Missing WPA_PROJECT_ID or WPA_TOKEN environment variables",
61
+ }),
62
+ },
63
+ ],
64
+ };
65
+ }
66
+ const result = await apiRequest("GET", `/project/${config.projectId}/status`);
67
+ return {
68
+ content: [
69
+ {
70
+ type: "text",
71
+ text: JSON.stringify(result, null, 2),
72
+ },
73
+ ],
74
+ };
75
+ });
76
+ // =============================================================================
77
+ // Tool: list_pages
78
+ // =============================================================================
79
+ server.tool("list_pages", "List all pages in your WebsitePublisher.ai project", {}, async () => {
80
+ if (!config.projectId || !config.token) {
81
+ return {
82
+ content: [
83
+ {
84
+ type: "text",
85
+ text: JSON.stringify({
86
+ success: false,
87
+ error: "Missing WPA_PROJECT_ID or WPA_TOKEN environment variables",
88
+ }),
89
+ },
90
+ ],
91
+ };
92
+ }
93
+ const result = await apiRequest("GET", `/project/${config.projectId}/pages`);
94
+ return {
95
+ content: [
96
+ {
97
+ type: "text",
98
+ text: JSON.stringify(result, null, 2),
99
+ },
100
+ ],
101
+ };
102
+ });
103
+ // =============================================================================
104
+ // Tool: create_page
105
+ // =============================================================================
106
+ server.tool("create_page", "Create a new page on your WebsitePublisher.ai website", {
107
+ slug: z.string().describe("The page filename/path, e.g., 'index.html' or 'blog/post1.html'"),
108
+ content: z.string().describe("The full HTML content of the page"),
109
+ title: z.string().optional().describe("The page title for SEO"),
110
+ description: z.string().optional().describe("The meta description for SEO"),
111
+ }, async ({ slug, content, title, description }) => {
112
+ if (!config.projectId || !config.token) {
113
+ return {
114
+ content: [
115
+ {
116
+ type: "text",
117
+ text: JSON.stringify({
118
+ success: false,
119
+ error: "Missing WPA_PROJECT_ID or WPA_TOKEN environment variables",
120
+ }),
121
+ },
122
+ ],
123
+ };
124
+ }
125
+ const result = await apiRequest("POST", `/project/${config.projectId}/pages`, {
126
+ slug,
127
+ content,
128
+ meta: { title: title || slug },
129
+ seo: { description: description || "" },
130
+ });
131
+ return {
132
+ content: [
133
+ {
134
+ type: "text",
135
+ text: JSON.stringify(result, null, 2),
136
+ },
137
+ ],
138
+ };
139
+ });
140
+ // =============================================================================
141
+ // Tool: update_page
142
+ // =============================================================================
143
+ server.tool("update_page", "Update an existing page on your WebsitePublisher.ai website", {
144
+ slug: z.string().describe("The page filename/path to update"),
145
+ content: z.string().optional().describe("The new HTML content"),
146
+ title: z.string().optional().describe("The new page title"),
147
+ description: z.string().optional().describe("The new meta description"),
148
+ }, async ({ slug, content, title, description }) => {
149
+ if (!config.projectId || !config.token) {
150
+ return {
151
+ content: [
152
+ {
153
+ type: "text",
154
+ text: JSON.stringify({
155
+ success: false,
156
+ error: "Missing WPA_PROJECT_ID or WPA_TOKEN environment variables",
157
+ }),
158
+ },
159
+ ],
160
+ };
161
+ }
162
+ const body = {};
163
+ if (content)
164
+ body.content = content;
165
+ if (title)
166
+ body.meta = { title };
167
+ if (description)
168
+ body.seo = { description };
169
+ const result = await apiRequest("PUT", `/project/${config.projectId}/pages/${slug}`, body);
170
+ return {
171
+ content: [
172
+ {
173
+ type: "text",
174
+ text: JSON.stringify(result, null, 2),
175
+ },
176
+ ],
177
+ };
178
+ });
179
+ // =============================================================================
180
+ // Tool: delete_page
181
+ // =============================================================================
182
+ server.tool("delete_page", "Delete a page from your WebsitePublisher.ai website", {
183
+ slug: z.string().describe("The page filename/path to delete"),
184
+ }, async ({ slug }) => {
185
+ if (!config.projectId || !config.token) {
186
+ return {
187
+ content: [
188
+ {
189
+ type: "text",
190
+ text: JSON.stringify({
191
+ success: false,
192
+ error: "Missing WPA_PROJECT_ID or WPA_TOKEN environment variables",
193
+ }),
194
+ },
195
+ ],
196
+ };
197
+ }
198
+ const result = await apiRequest("DELETE", `/project/${config.projectId}/pages/${slug}`);
199
+ return {
200
+ content: [
201
+ {
202
+ type: "text",
203
+ text: JSON.stringify(result, null, 2),
204
+ },
205
+ ],
206
+ };
207
+ });
208
+ // =============================================================================
209
+ // Tool: list_assets
210
+ // =============================================================================
211
+ server.tool("list_assets", "List all assets (images, CSS, JS files) in your WebsitePublisher.ai project", {}, async () => {
212
+ if (!config.projectId || !config.token) {
213
+ return {
214
+ content: [
215
+ {
216
+ type: "text",
217
+ text: JSON.stringify({
218
+ success: false,
219
+ error: "Missing WPA_PROJECT_ID or WPA_TOKEN environment variables",
220
+ }),
221
+ },
222
+ ],
223
+ };
224
+ }
225
+ const result = await apiRequest("GET", `/project/${config.projectId}/assets`);
226
+ return {
227
+ content: [
228
+ {
229
+ type: "text",
230
+ text: JSON.stringify(result, null, 2),
231
+ },
232
+ ],
233
+ };
234
+ });
235
+ // =============================================================================
236
+ // Tool: upload_asset
237
+ // =============================================================================
238
+ server.tool("upload_asset", "Upload an asset (image, CSS, JS file) to your WebsitePublisher.ai website", {
239
+ slug: z.string().describe("The asset filename/path, e.g., 'images/logo.png' or 'css/style.css'"),
240
+ content: z.string().describe("The base64 encoded content of the asset"),
241
+ alt: z.string().optional().describe("Alt text for images"),
242
+ }, async ({ slug, content, alt }) => {
243
+ if (!config.projectId || !config.token) {
244
+ return {
245
+ content: [
246
+ {
247
+ type: "text",
248
+ text: JSON.stringify({
249
+ success: false,
250
+ error: "Missing WPA_PROJECT_ID or WPA_TOKEN environment variables",
251
+ }),
252
+ },
253
+ ],
254
+ };
255
+ }
256
+ const result = await apiRequest("POST", `/project/${config.projectId}/assets`, {
257
+ slug,
258
+ content,
259
+ alt: alt || "",
260
+ });
261
+ return {
262
+ content: [
263
+ {
264
+ type: "text",
265
+ text: JSON.stringify(result, null, 2),
266
+ },
267
+ ],
268
+ };
269
+ });
270
+ // =============================================================================
271
+ // Start Server
272
+ // =============================================================================
273
+ async function main() {
274
+ const transport = new StdioServerTransport();
275
+ await server.connect(transport);
276
+ // Log to stderr so it doesn't interfere with MCP protocol on stdout
277
+ console.error("WebsitePublisher MCP server running on stdio");
278
+ }
279
+ main().catch((error) => {
280
+ console.error("Fatal error:", error);
281
+ process.exit(1);
282
+ });
283
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "websitepublisher-mcp",
3
+ "version": "1.0.0",
4
+ "description": "MCP server for WebsitePublisher.ai - Build and publish websites via Claude Desktop/Code",
5
+ "type": "module",
6
+ "main": "build/index.js",
7
+ "bin": {
8
+ "websitepublisher-mcp": "./build/index.js"
9
+ },
10
+ "files": [
11
+ "build"
12
+ ],
13
+ "scripts": {
14
+ "build": "tsc",
15
+ "watch": "tsc --watch",
16
+ "start": "node build/index.js",
17
+ "inspector": "npx @modelcontextprotocol/inspector build/index.js"
18
+ },
19
+ "keywords": [
20
+ "mcp",
21
+ "model-context-protocol",
22
+ "claude",
23
+ "websitepublisher",
24
+ "ai",
25
+ "website-builder"
26
+ ],
27
+ "author": "WebsitePublisher.ai",
28
+ "license": "MIT",
29
+ "dependencies": {
30
+ "@modelcontextprotocol/sdk": "^1.12.1",
31
+ "zod": "^3.25.30"
32
+ },
33
+ "devDependencies": {
34
+ "@types/node": "^22.10.10",
35
+ "typescript": "^5.7.3"
36
+ },
37
+ "engines": {
38
+ "node": ">=18"
39
+ },
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "https://github.com/websitepublisher/websitepublisher-mcp"
43
+ },
44
+ "homepage": "https://websitepublisher.ai/docs/mcp"
45
+ }