@respira/wordpress-mcp-server 3.3.7 → 4.0.2
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 +11 -2
- package/dist/config.d.ts +16 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +217 -175
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +146 -19
- package/dist/server.js.map +1 -1
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +112 -3
- package/dist/setup.js.map +1 -1
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/wordpress-client.d.ts +8 -4
- package/dist/wordpress-client.d.ts.map +1 -1
- package/dist/wordpress-client.js +119 -4
- package/dist/wordpress-client.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
| Inventory and stock tools | Yes (add-on) | No |
|
|
63
63
|
| Sales reports and inventory intelligence | Yes (add-on) | No |
|
|
64
64
|
|
|
65
|
-
### Tool Inventory (
|
|
65
|
+
### Tool Inventory (v4.0)
|
|
66
66
|
|
|
67
67
|
- `82` always-on `wordpress_*` tools
|
|
68
68
|
- `21` conditional `woocommerce_*` tools (only when WooCommerce add-on is installed and licensed)
|
|
@@ -116,6 +116,8 @@ WooCommerce add-on details: [respira.press/addons/woocommerce](https://respira.p
|
|
|
116
116
|
|
|
117
117
|
### Step 2: Configure Your AI Tool
|
|
118
118
|
|
|
119
|
+
For agencies or anyone managing multiple connected sites, use the dedicated hosted setup page at [respira.press/dashboard/mcp](https://www.respira.press/dashboard/mcp). It generates the all-sites config, one-time install command, and AI setup prompt from your account inventory.
|
|
120
|
+
|
|
119
121
|
<details>
|
|
120
122
|
<summary><b>Cursor</b></summary>
|
|
121
123
|
|
|
@@ -184,7 +186,7 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
|
|
|
184
186
|
|
|
185
187
|
</details>
|
|
186
188
|
|
|
187
|
-
### Step 3: Add Your Site
|
|
189
|
+
### Step 3: Add Your Site (Manual / Advanced)
|
|
188
190
|
|
|
189
191
|
Create `~/.respira/config.json`:
|
|
190
192
|
```json
|
|
@@ -203,6 +205,13 @@ Create `~/.respira/config.json`:
|
|
|
203
205
|
|
|
204
206
|
**Done!** Restart your AI tool and start editing.
|
|
205
207
|
|
|
208
|
+
### Guided Agency Setup
|
|
209
|
+
|
|
210
|
+
- Download client-specific config from [respira.press/dashboard/mcp](https://www.respira.press/dashboard/mcp)
|
|
211
|
+
- Or copy the one-time installer command:
|
|
212
|
+
- `npx -y @respira/wordpress-mcp-server --install-config --client codex --install-token <token>`
|
|
213
|
+
- Treat exported configs and install commands like passwords. They grant access to connected sites. Never commit them to git or paste them into public chats or tickets.
|
|
214
|
+
|
|
206
215
|
---
|
|
207
216
|
|
|
208
217
|
## Safe Editing (Unique to Respira)
|
package/dist/config.d.ts
CHANGED
|
@@ -2,15 +2,28 @@
|
|
|
2
2
|
* Configuration management
|
|
3
3
|
*/
|
|
4
4
|
import type { RespiraConfig, WordPressSiteConfig } from './types/index.js';
|
|
5
|
+
export declare const CONFIG_DIR: string;
|
|
6
|
+
export declare const CONFIG_FILE: string;
|
|
5
7
|
/**
|
|
6
|
-
* Load configuration from file or
|
|
7
|
-
*
|
|
8
|
+
* Load configuration from inline base64, explicit file path, default file, or env vars.
|
|
9
|
+
*
|
|
10
|
+
* Precedence by default:
|
|
11
|
+
* 1. RESPIRA_CONFIG_B64
|
|
12
|
+
* 2. RESPIRA_CONFIG_FILE
|
|
13
|
+
* 3. ~/.respira/config.json
|
|
14
|
+
* 4. WORDPRESS_URL + WORDPRESS_API_KEY
|
|
15
|
+
*
|
|
16
|
+
* Set RESPIRA_CONFIG_MODE=env to force env-only mode for single-site setups.
|
|
8
17
|
*/
|
|
9
18
|
export declare function loadConfig(): RespiraConfig;
|
|
10
19
|
/**
|
|
11
|
-
* Save configuration to file
|
|
20
|
+
* Save configuration to the default Respira config file.
|
|
12
21
|
*/
|
|
13
22
|
export declare function saveConfig(config: RespiraConfig): void;
|
|
23
|
+
/**
|
|
24
|
+
* Save configuration to an explicit file path.
|
|
25
|
+
*/
|
|
26
|
+
export declare function saveConfigToPath(config: RespiraConfig, path: string): void;
|
|
14
27
|
/**
|
|
15
28
|
* Add a new site to configuration
|
|
16
29
|
*/
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,eAAO,MAAM,UAAU,QAA8B,CAAC;AACtD,eAAO,MAAM,WAAW,QAAkC,CAAC;AA+L3D;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,IAAI,aAAa,CA2C1C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAOtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAO1E;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAavD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAe/C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAYnD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBlE"}
|
package/dist/config.js
CHANGED
|
@@ -2,205 +2,250 @@
|
|
|
2
2
|
* Configuration management
|
|
3
3
|
*/
|
|
4
4
|
import { readFileSync, existsSync, writeFileSync, mkdirSync } from 'fs';
|
|
5
|
-
import { join } from 'path';
|
|
5
|
+
import { join, dirname } from 'path';
|
|
6
6
|
import { homedir } from 'os';
|
|
7
|
-
const CONFIG_DIR = join(homedir(), '.respira');
|
|
8
|
-
const CONFIG_FILE = join(CONFIG_DIR, 'config.json');
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
7
|
+
export const CONFIG_DIR = join(homedir(), '.respira');
|
|
8
|
+
export const CONFIG_FILE = join(CONFIG_DIR, 'config.json');
|
|
9
|
+
function validateAndFixSiteUrl(url) {
|
|
10
|
+
let fixedUrl = (url || '').trim();
|
|
11
|
+
let fixed = false;
|
|
12
|
+
const dupProtocolMatch = fixedUrl.match(/^(https?:\/\/){2,}/i);
|
|
13
|
+
if (dupProtocolMatch) {
|
|
14
|
+
const firstProtocol = fixedUrl.startsWith('https') ? 'https://' : 'http://';
|
|
15
|
+
fixedUrl = fixedUrl.replace(/^(https?:\/\/)+/i, firstProtocol);
|
|
16
|
+
fixed = true;
|
|
17
|
+
}
|
|
18
|
+
if (fixedUrl.match(/^http:\/\/https:\/\//i)) {
|
|
19
|
+
fixedUrl = fixedUrl.replace(/^http:\/\/https:\/\//i, 'https://');
|
|
20
|
+
fixed = true;
|
|
21
|
+
}
|
|
22
|
+
if (fixedUrl.match(/^https:\/\/http:\/\//i)) {
|
|
23
|
+
fixedUrl = fixedUrl.replace(/^https:\/\/http:\/\//i, 'https://');
|
|
24
|
+
fixed = true;
|
|
25
|
+
}
|
|
26
|
+
if (fixedUrl.match(/^(https?)\/\//i)) {
|
|
27
|
+
fixedUrl = fixedUrl.replace(/^(https?)\/\//i, '$1://');
|
|
28
|
+
fixed = true;
|
|
29
|
+
}
|
|
30
|
+
if (fixedUrl.match(/^(https?:\/\/)\//)) {
|
|
31
|
+
fixedUrl = fixedUrl.replace(/^(https?:\/\/)\//, '$1');
|
|
32
|
+
fixed = true;
|
|
33
|
+
}
|
|
34
|
+
const protocolMatch = fixedUrl.match(/^(https?:\/\/)(.*)$/i);
|
|
35
|
+
if (protocolMatch) {
|
|
36
|
+
const protocol = protocolMatch[1];
|
|
37
|
+
const path = protocolMatch[2];
|
|
38
|
+
const fixedPath = path.replace(/\/+/g, '/');
|
|
39
|
+
fixedUrl = protocol + fixedPath;
|
|
40
|
+
if (path !== fixedPath) {
|
|
41
|
+
fixed = true;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (!fixedUrl.match(/^https?:\/\//i)) {
|
|
45
|
+
const host = fixedUrl.split('/')[0]?.split(':')[0] || '';
|
|
46
|
+
const isLocal = /^(localhost|127\.0\.0\.1|.*\.local|.*\.localdomain|.*\.lndo\.site)$/i.test(host);
|
|
47
|
+
fixedUrl = `${isLocal ? 'http' : 'https'}://${fixedUrl}`;
|
|
48
|
+
fixed = true;
|
|
49
|
+
}
|
|
50
|
+
const urlObj = new URL(fixedUrl);
|
|
51
|
+
if (urlObj.protocol !== 'http:' && urlObj.protocol !== 'https:') {
|
|
52
|
+
throw new Error(`Invalid URL protocol: ${urlObj.protocol}`);
|
|
53
|
+
}
|
|
54
|
+
if (!urlObj.hostname || urlObj.hostname.length === 0) {
|
|
55
|
+
throw new Error('Invalid hostname');
|
|
56
|
+
}
|
|
57
|
+
if (urlObj.port === '80' && urlObj.protocol === 'http:') {
|
|
58
|
+
urlObj.port = '';
|
|
59
|
+
}
|
|
60
|
+
if (urlObj.port === '443' && urlObj.protocol === 'https:') {
|
|
61
|
+
urlObj.port = '';
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
url: urlObj.toString().replace(/\/$/, ''),
|
|
65
|
+
fixed,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function normalizeConfig(config, sourceLabel, persistPath) {
|
|
69
|
+
if (!config?.sites || config.sites.length === 0) {
|
|
70
|
+
throw new Error(`No WordPress sites configured in ${sourceLabel}`);
|
|
71
|
+
}
|
|
72
|
+
let changed = false;
|
|
73
|
+
const normalizedSites = config.sites.map((site, index) => {
|
|
74
|
+
if (!site.id || !site.name || !site.url || !site.apiKey) {
|
|
75
|
+
throw new Error(`Site ${index + 1} is missing required fields (id, name, url, apiKey)`);
|
|
76
|
+
}
|
|
77
|
+
const validated = validateAndFixSiteUrl(site.url);
|
|
78
|
+
if (validated.fixed) {
|
|
79
|
+
changed = true;
|
|
80
|
+
console.warn(`Warning: Site "${site.name}" had malformed URL: ${site.url}`);
|
|
81
|
+
console.warn(` Auto-fixed to: ${validated.url}`);
|
|
82
|
+
}
|
|
83
|
+
if (!site.apiKey.startsWith('respira_')) {
|
|
84
|
+
console.warn(`Warning: API key for "${site.name}" doesn't start with "respira_" prefix`);
|
|
85
|
+
}
|
|
25
86
|
return {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
id: 'env-site',
|
|
29
|
-
name: 'WordPress (from env)',
|
|
30
|
-
url,
|
|
31
|
-
apiKey: envKey,
|
|
32
|
-
default: true,
|
|
33
|
-
},
|
|
34
|
-
],
|
|
35
|
-
preferences: {
|
|
36
|
-
autoDuplicate: true,
|
|
37
|
-
securityChecks: true,
|
|
38
|
-
},
|
|
87
|
+
...site,
|
|
88
|
+
url: validated.url,
|
|
39
89
|
};
|
|
90
|
+
});
|
|
91
|
+
const normalizedConfig = {
|
|
92
|
+
...config,
|
|
93
|
+
sites: normalizedSites,
|
|
94
|
+
preferences: {
|
|
95
|
+
autoDuplicate: config.preferences?.autoDuplicate ?? true,
|
|
96
|
+
securityChecks: config.preferences?.securityChecks ?? true,
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
if (changed && persistPath) {
|
|
100
|
+
writeConfig(normalizedConfig, persistPath);
|
|
40
101
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
102
|
+
return normalizedConfig;
|
|
103
|
+
}
|
|
104
|
+
function readConfigFromPath(path, sourceLabel, persistFixes = false) {
|
|
105
|
+
const configData = readFileSync(path, 'utf-8');
|
|
106
|
+
const parsed = JSON.parse(configData);
|
|
107
|
+
return normalizeConfig(parsed, sourceLabel, persistFixes ? path : undefined);
|
|
108
|
+
}
|
|
109
|
+
function readConfigFromBase64(encoded) {
|
|
110
|
+
const raw = Buffer.from(encoded, 'base64').toString('utf8');
|
|
111
|
+
const parsed = JSON.parse(raw);
|
|
112
|
+
return normalizeConfig(parsed, 'RESPIRA_CONFIG_B64');
|
|
113
|
+
}
|
|
114
|
+
function ensureDefaultConfigFile() {
|
|
115
|
+
console.error('No configuration file found. Creating default configuration...');
|
|
116
|
+
console.error(`Please edit ${CONFIG_FILE} to add your WordPress sites.`);
|
|
117
|
+
if (!existsSync(CONFIG_DIR)) {
|
|
118
|
+
mkdirSync(CONFIG_DIR, { recursive: true });
|
|
119
|
+
}
|
|
120
|
+
saveConfig({
|
|
121
|
+
sites: [
|
|
122
|
+
{
|
|
123
|
+
id: 'example-site',
|
|
124
|
+
name: 'My WordPress Site',
|
|
125
|
+
url: 'https://example.com',
|
|
126
|
+
apiKey: 'respira_your-api-key-here',
|
|
127
|
+
default: true,
|
|
62
128
|
},
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
129
|
+
],
|
|
130
|
+
preferences: {
|
|
131
|
+
autoDuplicate: true,
|
|
132
|
+
securityChecks: true,
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
throw new Error(`Configuration file created at ${CONFIG_FILE}\n` +
|
|
136
|
+
'Please update it with your WordPress site URL and API key, then run again.');
|
|
137
|
+
}
|
|
138
|
+
function loadEnvSingleSiteConfig() {
|
|
139
|
+
const envUrl = process.env.WORDPRESS_URL?.trim();
|
|
140
|
+
const envKey = process.env.WORDPRESS_API_KEY?.trim();
|
|
141
|
+
if (!envUrl || !envKey) {
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
const validated = validateAndFixSiteUrl(envUrl);
|
|
145
|
+
return {
|
|
146
|
+
sites: [
|
|
147
|
+
{
|
|
148
|
+
id: 'env-site',
|
|
149
|
+
name: 'WordPress (from env)',
|
|
150
|
+
url: validated.url,
|
|
151
|
+
apiKey: envKey,
|
|
152
|
+
default: true,
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
preferences: {
|
|
156
|
+
autoDuplicate: true,
|
|
157
|
+
securityChecks: true,
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
function writeConfig(config, path) {
|
|
162
|
+
const targetDir = dirname(path);
|
|
163
|
+
if (!existsSync(targetDir)) {
|
|
164
|
+
mkdirSync(targetDir, { recursive: true });
|
|
67
165
|
}
|
|
166
|
+
writeFileSync(path, JSON.stringify(config, null, 2));
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Load configuration from inline base64, explicit file path, default file, or env vars.
|
|
170
|
+
*
|
|
171
|
+
* Precedence by default:
|
|
172
|
+
* 1. RESPIRA_CONFIG_B64
|
|
173
|
+
* 2. RESPIRA_CONFIG_FILE
|
|
174
|
+
* 3. ~/.respira/config.json
|
|
175
|
+
* 4. WORDPRESS_URL + WORDPRESS_API_KEY
|
|
176
|
+
*
|
|
177
|
+
* Set RESPIRA_CONFIG_MODE=env to force env-only mode for single-site setups.
|
|
178
|
+
*/
|
|
179
|
+
export function loadConfig() {
|
|
180
|
+
const forcedMode = process.env.RESPIRA_CONFIG_MODE?.trim();
|
|
68
181
|
try {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
throw new Error('No WordPress sites configured in config.json');
|
|
74
|
-
}
|
|
75
|
-
// Validate each site
|
|
76
|
-
config.sites.forEach((site, index) => {
|
|
77
|
-
if (!site.id || !site.name || !site.url || !site.apiKey) {
|
|
78
|
-
throw new Error(`Site ${index + 1} is missing required fields (id, name, url, apiKey)`);
|
|
79
|
-
}
|
|
80
|
-
if (!site.apiKey.startsWith('respira_')) {
|
|
81
|
-
console.warn(`Warning: API key for "${site.name}" doesn't start with "respira_" prefix`);
|
|
82
|
-
}
|
|
83
|
-
// Validate and fix URL
|
|
84
|
-
let fixedUrl = site.url.trim();
|
|
85
|
-
let urlFixed = false;
|
|
86
|
-
// Fix duplicate protocols (https://https://, http://http://, etc.) - preserve original protocol
|
|
87
|
-
const dupProtocolMatch = fixedUrl.match(/^(https?:\/\/){2,}/i);
|
|
88
|
-
if (dupProtocolMatch) {
|
|
89
|
-
const firstProtocol = fixedUrl.startsWith('https') ? 'https://' : 'http://';
|
|
90
|
-
fixedUrl = fixedUrl.replace(/^(https?:\/\/)+/i, firstProtocol);
|
|
91
|
-
urlFixed = true;
|
|
92
|
-
}
|
|
93
|
-
// Fix mixed protocols (http://https://, https://http://)
|
|
94
|
-
if (fixedUrl.match(/^http:\/\/https:\/\//i)) {
|
|
95
|
-
fixedUrl = fixedUrl.replace(/^http:\/\/https:\/\//i, 'https://');
|
|
96
|
-
urlFixed = true;
|
|
97
|
-
}
|
|
98
|
-
if (fixedUrl.match(/^https:\/\/http:\/\//i)) {
|
|
99
|
-
fixedUrl = fixedUrl.replace(/^https:\/\/http:\/\//i, 'https://');
|
|
100
|
-
urlFixed = true;
|
|
101
|
-
}
|
|
102
|
-
// Fix malformed protocols (https//, http//)
|
|
103
|
-
if (fixedUrl.match(/^(https?)\/\//i)) {
|
|
104
|
-
fixedUrl = fixedUrl.replace(/^(https?)\/\//i, '$1://');
|
|
105
|
-
urlFixed = true;
|
|
106
|
-
}
|
|
107
|
-
// Fix triple slashes (https:///example.com)
|
|
108
|
-
if (fixedUrl.match(/^(https?:\/\/)\//)) {
|
|
109
|
-
fixedUrl = fixedUrl.replace(/^(https?:\/\/)\//, '$1');
|
|
110
|
-
urlFixed = true;
|
|
182
|
+
if (forcedMode === 'env') {
|
|
183
|
+
const envConfig = loadEnvSingleSiteConfig();
|
|
184
|
+
if (!envConfig) {
|
|
185
|
+
throw new Error('RESPIRA_CONFIG_MODE=env requires WORDPRESS_URL and WORDPRESS_API_KEY.');
|
|
111
186
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
// Validate URL format
|
|
125
|
-
try {
|
|
126
|
-
// Add protocol if missing - use http for local dev (Local, Lando, etc.)
|
|
127
|
-
if (!fixedUrl.match(/^https?:\/\//i)) {
|
|
128
|
-
const host = fixedUrl.split('/')[0]?.split(':')[0] || '';
|
|
129
|
-
const isLocal = /^(localhost|127\.0\.0\.1|.*\.local|.*\.localdomain|.*\.lndo\.site)$/i.test(host);
|
|
130
|
-
fixedUrl = `${isLocal ? 'http' : 'https'}://${fixedUrl}`;
|
|
131
|
-
urlFixed = true;
|
|
132
|
-
}
|
|
133
|
-
const urlObj = new URL(fixedUrl);
|
|
134
|
-
// Ensure protocol is http or https
|
|
135
|
-
if (urlObj.protocol !== 'http:' && urlObj.protocol !== 'https:') {
|
|
136
|
-
throw new Error(`Site ${index + 1} ("${site.name}") has invalid URL protocol: ${urlObj.protocol}`);
|
|
137
|
-
}
|
|
138
|
-
// Validate hostname
|
|
139
|
-
if (!urlObj.hostname || urlObj.hostname.length === 0) {
|
|
140
|
-
throw new Error(`Site ${index + 1} ("${site.name}") has invalid hostname`);
|
|
141
|
-
}
|
|
142
|
-
// Remove default ports
|
|
143
|
-
if (urlObj.port === '80' && urlObj.protocol === 'http:') {
|
|
144
|
-
urlObj.port = '';
|
|
145
|
-
}
|
|
146
|
-
if (urlObj.port === '443' && urlObj.protocol === 'https:') {
|
|
147
|
-
urlObj.port = '';
|
|
148
|
-
}
|
|
149
|
-
// Update site URL if it was fixed
|
|
150
|
-
if (urlFixed) {
|
|
151
|
-
const normalizedUrl = urlObj.toString().replace(/\/$/, '');
|
|
152
|
-
console.warn(`Warning: Site "${site.name}" had malformed URL: ${site.url}`);
|
|
153
|
-
console.warn(` Auto-fixed to: ${normalizedUrl}`);
|
|
154
|
-
site.url = normalizedUrl;
|
|
155
|
-
// Save fixed config back
|
|
156
|
-
saveConfig(config);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
catch (e) {
|
|
160
|
-
if (e instanceof TypeError && e.message.includes('Invalid URL')) {
|
|
161
|
-
throw new Error(`Site ${index + 1} ("${site.name}") has invalid URL: ${site.url}`);
|
|
162
|
-
}
|
|
163
|
-
throw e;
|
|
187
|
+
return envConfig;
|
|
188
|
+
}
|
|
189
|
+
const inlineConfig = process.env.RESPIRA_CONFIG_B64?.trim();
|
|
190
|
+
if (inlineConfig) {
|
|
191
|
+
return readConfigFromBase64(inlineConfig);
|
|
192
|
+
}
|
|
193
|
+
const explicitPath = process.env.RESPIRA_CONFIG_FILE?.trim();
|
|
194
|
+
if (explicitPath) {
|
|
195
|
+
if (!existsSync(explicitPath)) {
|
|
196
|
+
throw new Error(`RESPIRA_CONFIG_FILE points to a missing file: ${explicitPath}`);
|
|
164
197
|
}
|
|
165
|
-
|
|
166
|
-
|
|
198
|
+
return readConfigFromPath(explicitPath, explicitPath, true);
|
|
199
|
+
}
|
|
200
|
+
if (existsSync(CONFIG_FILE)) {
|
|
201
|
+
return readConfigFromPath(CONFIG_FILE, CONFIG_FILE, true);
|
|
202
|
+
}
|
|
203
|
+
const envConfig = loadEnvSingleSiteConfig();
|
|
204
|
+
if (envConfig) {
|
|
205
|
+
return envConfig;
|
|
206
|
+
}
|
|
207
|
+
return ensureDefaultConfigFile();
|
|
167
208
|
}
|
|
168
209
|
catch (error) {
|
|
169
|
-
if (error.code === 'ENOENT') {
|
|
170
|
-
return DEFAULT_CONFIG;
|
|
171
|
-
}
|
|
172
210
|
if (error instanceof SyntaxError) {
|
|
173
|
-
throw new Error(`Invalid JSON in
|
|
211
|
+
throw new Error(`Invalid JSON in configuration: ${error.message}`);
|
|
174
212
|
}
|
|
175
213
|
const errorMessage = error?.message || error?.toString() || 'Unknown error';
|
|
176
|
-
throw new Error(`Failed to load configuration
|
|
214
|
+
throw new Error(`Failed to load Respira configuration: ${errorMessage}`);
|
|
177
215
|
}
|
|
178
216
|
}
|
|
179
217
|
/**
|
|
180
|
-
* Save configuration to file
|
|
218
|
+
* Save configuration to the default Respira config file.
|
|
181
219
|
*/
|
|
182
220
|
export function saveConfig(config) {
|
|
183
221
|
try {
|
|
184
|
-
|
|
185
|
-
mkdirSync(CONFIG_DIR, { recursive: true });
|
|
186
|
-
}
|
|
187
|
-
writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
|
|
222
|
+
writeConfig(config, CONFIG_FILE);
|
|
188
223
|
console.error(`Configuration saved to ${CONFIG_FILE}`);
|
|
189
224
|
}
|
|
190
225
|
catch (error) {
|
|
191
226
|
throw new Error(`Failed to save configuration: ${error.message}`);
|
|
192
227
|
}
|
|
193
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* Save configuration to an explicit file path.
|
|
231
|
+
*/
|
|
232
|
+
export function saveConfigToPath(config, path) {
|
|
233
|
+
try {
|
|
234
|
+
writeConfig(config, path);
|
|
235
|
+
console.error(`Configuration saved to ${path}`);
|
|
236
|
+
}
|
|
237
|
+
catch (error) {
|
|
238
|
+
throw new Error(`Failed to save configuration to ${path}: ${error.message}`);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
194
241
|
/**
|
|
195
242
|
* Add a new site to configuration
|
|
196
243
|
*/
|
|
197
244
|
export function addSite(site) {
|
|
198
245
|
const config = loadConfig();
|
|
199
|
-
|
|
200
|
-
if (config.sites.some((s) => s.id === site.id)) {
|
|
246
|
+
if (config.sites.some((existing) => existing.id === site.id)) {
|
|
201
247
|
throw new Error(`Site with ID "${site.id}" already exists`);
|
|
202
248
|
}
|
|
203
|
-
// If this is the first site, make it default
|
|
204
249
|
if (config.sites.length === 0) {
|
|
205
250
|
site.default = true;
|
|
206
251
|
}
|
|
@@ -212,13 +257,12 @@ export function addSite(site) {
|
|
|
212
257
|
*/
|
|
213
258
|
export function removeSite(siteId) {
|
|
214
259
|
const config = loadConfig();
|
|
215
|
-
const index = config.sites.findIndex((
|
|
260
|
+
const index = config.sites.findIndex((site) => site.id === siteId);
|
|
216
261
|
if (index === -1) {
|
|
217
262
|
throw new Error(`Site with ID "${siteId}" not found`);
|
|
218
263
|
}
|
|
219
264
|
config.sites.splice(index, 1);
|
|
220
|
-
|
|
221
|
-
if (config.sites.length > 0 && !config.sites.some((s) => s.default)) {
|
|
265
|
+
if (config.sites.length > 0 && !config.sites.some((site) => site.default)) {
|
|
222
266
|
config.sites[0].default = true;
|
|
223
267
|
}
|
|
224
268
|
saveConfig(config);
|
|
@@ -228,15 +272,13 @@ export function removeSite(siteId) {
|
|
|
228
272
|
*/
|
|
229
273
|
export function setDefaultSite(siteId) {
|
|
230
274
|
const config = loadConfig();
|
|
231
|
-
const site = config.sites.find((
|
|
275
|
+
const site = config.sites.find((candidate) => candidate.id === siteId);
|
|
232
276
|
if (!site) {
|
|
233
277
|
throw new Error(`Site with ID "${siteId}" not found`);
|
|
234
278
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
s.default = false;
|
|
279
|
+
config.sites.forEach((candidate) => {
|
|
280
|
+
candidate.default = false;
|
|
238
281
|
});
|
|
239
|
-
// Set new default
|
|
240
282
|
site.default = true;
|
|
241
283
|
saveConfig(config);
|
|
242
284
|
}
|
|
@@ -245,7 +287,7 @@ export function setDefaultSite(siteId) {
|
|
|
245
287
|
*/
|
|
246
288
|
export async function testConnection(siteId) {
|
|
247
289
|
const config = loadConfig();
|
|
248
|
-
const site = config.sites.find((
|
|
290
|
+
const site = config.sites.find((candidate) => candidate.id === siteId);
|
|
249
291
|
if (!site) {
|
|
250
292
|
throw new Error(`Site with ID "${siteId}" not found`);
|
|
251
293
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH;;;GAGG;AACH,iBAAS,iBAAiB,IAAI,IAAI,CAQjC;AAGD,QAAA,MAAM,IAAI,UAAwB,CAAC;AACnC,QAAA,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH;;;GAGG;AACH,iBAAS,iBAAiB,IAAI,IAAI,CAQjC;AAGD,QAAA,MAAM,IAAI,UAAwB,CAAC;AACnC,QAAA,MAAM,cAAc,SASC,CAAC;AACtB,QAAA,MAAM,cAAc,SAA2B,CAAC;AAkBhD,iBAAe,cAAc,kBAoB5B;AAED,iBAAe,cAAc,kBAmD5B"}
|
package/dist/index.js
CHANGED
|
@@ -25,6 +25,7 @@ const isSetupCommand = args.includes('--setup') ||
|
|
|
25
25
|
args.includes('-l') ||
|
|
26
26
|
args.includes('--test') ||
|
|
27
27
|
args.includes('-t') ||
|
|
28
|
+
args.includes('--install-config') ||
|
|
28
29
|
args.includes('--help') ||
|
|
29
30
|
args.includes('-h');
|
|
30
31
|
const isStdioCommand = args.includes('--stdio');
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -8,9 +8,13 @@ export declare class RespiraWordPressServer {
|
|
|
8
8
|
private server;
|
|
9
9
|
private currentSite;
|
|
10
10
|
private sites;
|
|
11
|
+
private defaultSiteId;
|
|
11
12
|
private versionChecker;
|
|
12
13
|
private static readonly MCP_SERVER_VERSION;
|
|
13
14
|
constructor(siteConfigs: WordPressSiteConfig[]);
|
|
15
|
+
private getSiteSummary;
|
|
16
|
+
private getActiveSiteSummary;
|
|
17
|
+
private withSiteContext;
|
|
14
18
|
private setupHandlers;
|
|
15
19
|
private attachUpdateNotice;
|
|
16
20
|
private appendUpdateNoticeToError;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,KAAK,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,kBAAkB,CAAC;AAEzE,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,cAAc,CAAwB;IAE9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAW;gBAEzC,WAAW,EAAE,mBAAmB,EAAE;IAgC9C,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,aAAa;YAiHP,kBAAkB;YA6BlB,yBAAyB;YASzB,QAAQ;YAuxDR,2BAA2B;IAazC,OAAO,CAAC,mBAAmB;YAwTb,cAAc;IA2btB,GAAG;CAKV"}
|