mcp-wordpress 1.2.2 → 1.3.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 +210 -182
- package/dist/cache/CacheInvalidation.d.ts +3 -3
- package/dist/cache/CacheInvalidation.d.ts.map +1 -1
- package/dist/cache/CacheInvalidation.js +119 -119
- package/dist/cache/CacheInvalidation.js.map +1 -1
- package/dist/cache/CacheManager.d.ts +5 -0
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/CacheManager.js +26 -16
- package/dist/cache/CacheManager.js.map +1 -1
- package/dist/cache/HttpCacheWrapper.d.ts +1 -1
- package/dist/cache/HttpCacheWrapper.d.ts.map +1 -1
- package/dist/cache/HttpCacheWrapper.js +29 -29
- package/dist/cache/HttpCacheWrapper.js.map +1 -1
- package/dist/cache/__tests__/CacheInvalidation.test.js +96 -94
- package/dist/cache/__tests__/CacheInvalidation.test.js.map +1 -1
- package/dist/cache/__tests__/CacheManager.test.js +113 -113
- package/dist/cache/__tests__/CacheManager.test.js.map +1 -1
- package/dist/cache/__tests__/CachedWordPressClient.test.js +102 -99
- package/dist/cache/__tests__/CachedWordPressClient.test.js.map +1 -1
- package/dist/cache/__tests__/HttpCacheWrapper.test.js +98 -95
- package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +1 -1
- package/dist/cache/index.d.ts +7 -7
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +4 -4
- package/dist/cache/index.js.map +1 -1
- package/dist/client/CachedWordPressClient.d.ts +4 -4
- package/dist/client/CachedWordPressClient.d.ts.map +1 -1
- package/dist/client/CachedWordPressClient.js +55 -51
- package/dist/client/CachedWordPressClient.js.map +1 -1
- package/dist/client/api.d.ts +10 -10
- package/dist/client/api.js +158 -158
- package/dist/client/api.js.map +1 -1
- package/dist/client/auth.d.ts +2 -2
- package/dist/client/auth.js +72 -72
- package/dist/client/managers/AuthenticationManager.d.ts +2 -2
- package/dist/client/managers/AuthenticationManager.js +46 -46
- package/dist/client/managers/BaseManager.d.ts +1 -1
- package/dist/client/managers/BaseManager.js +9 -9
- package/dist/client/managers/RequestManager.d.ts +5 -3
- package/dist/client/managers/RequestManager.d.ts.map +1 -1
- package/dist/client/managers/RequestManager.js +39 -19
- package/dist/client/managers/RequestManager.js.map +1 -1
- package/dist/client/managers/index.d.ts +3 -3
- package/dist/client/managers/index.js +3 -3
- package/dist/config/ConfigurationSchema.d.ts +2 -2
- package/dist/config/ConfigurationSchema.d.ts.map +1 -1
- package/dist/config/ConfigurationSchema.js +40 -40
- package/dist/config/ConfigurationSchema.js.map +1 -1
- package/dist/config/ServerConfiguration.d.ts +2 -2
- package/dist/config/ServerConfiguration.js +35 -35
- package/dist/config/ServerConfiguration.js.map +1 -1
- package/dist/docs/DocumentationGenerator.d.ts.map +1 -1
- package/dist/docs/DocumentationGenerator.js +296 -255
- package/dist/docs/DocumentationGenerator.js.map +1 -1
- package/dist/docs/MarkdownFormatter.d.ts +1 -1
- package/dist/docs/MarkdownFormatter.d.ts.map +1 -1
- package/dist/docs/MarkdownFormatter.js +60 -51
- package/dist/docs/MarkdownFormatter.js.map +1 -1
- package/dist/docs/index.d.ts +3 -3
- package/dist/docs/index.d.ts.map +1 -1
- package/dist/docs/index.js +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -16
- package/dist/index.js.map +1 -1
- package/dist/mcp-wordpress-1.3.0.tgz +0 -0
- package/dist/performance/MetricsCollector.d.ts +3 -3
- package/dist/performance/MetricsCollector.d.ts.map +1 -1
- package/dist/performance/MetricsCollector.js +33 -27
- package/dist/performance/MetricsCollector.js.map +1 -1
- package/dist/performance/PerformanceAnalytics.d.ts +12 -12
- package/dist/performance/PerformanceAnalytics.d.ts.map +1 -1
- package/dist/performance/PerformanceAnalytics.js +200 -154
- package/dist/performance/PerformanceAnalytics.js.map +1 -1
- package/dist/performance/PerformanceMonitor.d.ts +5 -5
- package/dist/performance/PerformanceMonitor.d.ts.map +1 -1
- package/dist/performance/PerformanceMonitor.js +53 -52
- package/dist/performance/PerformanceMonitor.js.map +1 -1
- package/dist/performance/index.d.ts +6 -6
- package/dist/performance/index.d.ts.map +1 -1
- package/dist/performance/index.js +3 -3
- package/dist/security/InputValidator.d.ts +1 -1
- package/dist/security/InputValidator.d.ts.map +1 -1
- package/dist/security/InputValidator.js +111 -88
- package/dist/security/InputValidator.js.map +1 -1
- package/dist/security/SecurityConfig.d.ts +5 -5
- package/dist/security/SecurityConfig.js +92 -92
- package/dist/security/SecurityConfig.js.map +1 -1
- package/dist/server/ConnectionTester.d.ts +1 -1
- package/dist/server/ConnectionTester.d.ts.map +1 -1
- package/dist/server/ConnectionTester.js +4 -4
- package/dist/server/ConnectionTester.js.map +1 -1
- package/dist/server/ToolRegistry.d.ts +2 -2
- package/dist/server/ToolRegistry.d.ts.map +1 -1
- package/dist/server/ToolRegistry.js +35 -32
- package/dist/server/ToolRegistry.js.map +1 -1
- package/dist/server.d.ts +2 -2
- package/dist/server.js +2 -2
- package/dist/tools/BaseToolManager.js +5 -5
- package/dist/tools/auth.d.ts +2 -2
- package/dist/tools/auth.d.ts.map +1 -1
- package/dist/tools/auth.js +32 -31
- package/dist/tools/auth.js.map +1 -1
- package/dist/tools/cache.d.ts +1 -1
- package/dist/tools/cache.d.ts.map +1 -1
- package/dist/tools/cache.js +71 -71
- package/dist/tools/cache.js.map +1 -1
- package/dist/tools/comments.d.ts +2 -2
- package/dist/tools/comments.d.ts.map +1 -1
- package/dist/tools/comments.js +79 -79
- package/dist/tools/comments.js.map +1 -1
- package/dist/tools/index.d.ts +10 -10
- package/dist/tools/index.js +10 -10
- package/dist/tools/media.d.ts +2 -2
- package/dist/tools/media.js +80 -80
- package/dist/tools/pages.d.ts +2 -2
- package/dist/tools/pages.d.ts.map +1 -1
- package/dist/tools/pages.js +75 -75
- package/dist/tools/pages.js.map +1 -1
- package/dist/tools/performance.d.ts +1 -1
- package/dist/tools/performance.d.ts.map +1 -1
- package/dist/tools/performance.js +311 -287
- package/dist/tools/performance.js.map +1 -1
- package/dist/tools/posts.d.ts +2 -2
- package/dist/tools/posts.d.ts.map +1 -1
- package/dist/tools/posts.js +94 -94
- package/dist/tools/posts.js.map +1 -1
- package/dist/tools/site.d.ts +2 -2
- package/dist/tools/site.d.ts.map +1 -1
- package/dist/tools/site.js +60 -60
- package/dist/tools/site.js.map +1 -1
- package/dist/tools/taxonomies.d.ts +2 -2
- package/dist/tools/taxonomies.js +89 -89
- package/dist/tools/users.d.ts +2 -2
- package/dist/tools/users.js +68 -68
- package/dist/tools/users.js.map +1 -1
- package/dist/types/client.d.ts +13 -13
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/client.js +12 -12
- package/dist/types/client.js.map +1 -1
- package/dist/types/index.d.ts +19 -19
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -3
- package/dist/types/mcp.d.ts +7 -7
- package/dist/types/wordpress.d.ts +21 -21
- package/dist/types/wordpress.d.ts.map +1 -1
- package/dist/utils/debug.d.ts +2 -2
- package/dist/utils/debug.js +28 -28
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/error.js +13 -13
- package/dist/utils/error.js.map +1 -1
- package/dist/utils/toolWrapper.d.ts.map +1 -1
- package/dist/utils/toolWrapper.js +5 -5
- package/dist/utils/toolWrapper.js.map +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +41 -31
- package/dist/utils/validation.js.map +1 -1
- package/docs/CACHING.md +36 -2
- package/docs/DOCKER.md +24 -18
- package/docs/PERFORMANCE_MONITORING.md +49 -1
- package/docs/SECURITY_TESTING.md +30 -1
- package/docs/api/README.md +9 -1
- package/docs/api/summary.json +1 -1
- package/docs/contract-testing.md +24 -3
- package/docs/developer/GITHUB_ACTIONS_SETUP.md +8 -2
- package/docs/developer/MAINTENANCE.md +29 -3
- package/docs/developer/MIGRATION_GUIDE.md +13 -1
- package/docs/developer/NPM_AUTH_SETUP.md +13 -2
- package/docs/developer/REFACTORING.md +31 -1
- package/docs/releases/COMMUNITY_ANNOUNCEMENT_v1.1.2.md +18 -7
- package/docs/releases/RELEASE_NOTES_v1.1.2.md +31 -5
- package/docs/user-guides/DOCKER_SETUP.md +264 -0
- package/docs/user-guides/DTX_SETUP.md +327 -0
- package/docs/user-guides/NPM_SETUP.md +109 -0
- package/docs/user-guides/NPX_SETUP.md +281 -0
- package/docs/wordpress-rest-api-authentication-troubleshooting.md +13 -2
- package/package.json +27 -8
- package/src/cache/CacheInvalidation.ts +140 -132
- package/src/cache/CacheManager.ts +40 -29
- package/src/cache/HttpCacheWrapper.ts +105 -68
- package/src/cache/__tests__/CacheInvalidation.test.ts +123 -118
- package/src/cache/__tests__/CacheManager.test.ts +156 -152
- package/src/cache/__tests__/CachedWordPressClient.test.ts +131 -116
- package/src/cache/__tests__/HttpCacheWrapper.test.ts +118 -115
- package/src/cache/index.ts +13 -13
- package/src/client/CachedWordPressClient.ts +90 -80
- package/src/client/api.ts +205 -205
- package/src/client/auth.ts +80 -80
- package/src/client/managers/AuthenticationManager.ts +61 -61
- package/src/client/managers/BaseManager.ts +11 -11
- package/src/client/managers/RequestManager.ts +79 -47
- package/src/client/managers/index.ts +3 -3
- package/src/config/ConfigurationSchema.ts +44 -44
- package/src/config/ServerConfiguration.ts +39 -39
- package/src/docs/DocumentationGenerator.ts +402 -295
- package/src/docs/MarkdownFormatter.ts +94 -69
- package/src/docs/index.ts +4 -4
- package/src/index.ts +24 -21
- package/src/performance/MetricsCollector.ts +90 -58
- package/src/performance/PerformanceAnalytics.ts +386 -262
- package/src/performance/PerformanceMonitor.ts +152 -118
- package/src/performance/index.ts +9 -9
- package/src/security/InputValidator.ts +148 -91
- package/src/security/SecurityConfig.ts +94 -94
- package/src/server/ConnectionTester.ts +21 -15
- package/src/server/ToolRegistry.ts +64 -51
- package/src/server.ts +2 -2
- package/src/tools/BaseToolManager.ts +6 -6
- package/src/tools/auth.ts +42 -37
- package/src/tools/cache.ts +85 -81
- package/src/tools/comments.ts +93 -91
- package/src/tools/index.ts +10 -10
- package/src/tools/media.ts +89 -89
- package/src/tools/pages.ts +89 -87
- package/src/tools/performance.ts +443 -352
- package/src/tools/posts.ts +109 -107
- package/src/tools/site.ts +86 -77
- package/src/tools/taxonomies.ts +102 -102
- package/src/tools/users.ts +77 -77
- package/src/types/client.ts +157 -60
- package/src/types/index.ts +49 -27
- package/src/types/mcp.ts +15 -15
- package/src/types/wordpress.ts +57 -29
- package/src/utils/debug.ts +37 -37
- package/src/utils/error.ts +47 -25
- package/src/utils/toolWrapper.ts +12 -8
- package/src/utils/validation.ts +116 -65
- package/dist/client/WordPressClient.d.ts +0 -81
- package/dist/client/WordPressClient.d.ts.map +0 -1
- package/dist/client/WordPressClient.js +0 -354
- package/dist/client/WordPressClient.js.map +0 -1
- package/dist/performance/AnomalyDetector.d.ts +0 -63
- package/dist/performance/AnomalyDetector.d.ts.map +0 -1
- package/dist/performance/AnomalyDetector.js +0 -222
- package/dist/performance/AnomalyDetector.js.map +0 -1
- package/dist/performance/BenchmarkAnalyzer.d.ts +0 -67
- package/dist/performance/BenchmarkAnalyzer.d.ts.map +0 -1
- package/dist/performance/BenchmarkAnalyzer.js +0 -301
- package/dist/performance/BenchmarkAnalyzer.js.map +0 -1
- package/dist/performance/TrendAnalyzer.d.ts +0 -69
- package/dist/performance/TrendAnalyzer.d.ts.map +0 -1
- package/dist/performance/TrendAnalyzer.js +0 -203
- package/dist/performance/TrendAnalyzer.js.map +0 -1
- package/dist/tools/BaseToolClass.d.ts +0 -76
- package/dist/tools/BaseToolClass.d.ts.map +0 -1
- package/dist/tools/BaseToolClass.js +0 -104
- package/dist/tools/BaseToolClass.js.map +0 -1
- package/dist/tools/base.d.ts +0 -37
- package/dist/tools/base.d.ts.map +0 -1
- package/dist/tools/base.js +0 -60
- package/dist/tools/base.js.map +0 -1
- package/docs/user-guides/CLAUDE_DESKTOP_SETUP.md +0 -187
package/src/tools/taxonomies.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { WordPressClient } from
|
|
1
|
+
import { WordPressClient } from "../client/api.js";
|
|
2
2
|
import {
|
|
3
3
|
CreateCategoryRequest,
|
|
4
4
|
CreateTagRequest,
|
|
5
5
|
UpdateCategoryRequest,
|
|
6
|
-
UpdateTagRequest
|
|
7
|
-
} from
|
|
8
|
-
import { getErrorMessage } from
|
|
6
|
+
UpdateTagRequest,
|
|
7
|
+
} from "../types/wordpress.js";
|
|
8
|
+
import { getErrorMessage } from "../utils/error.js";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Provides tools for managing taxonomies (categories and tags) on a WordPress site.
|
|
@@ -20,171 +20,171 @@ export class TaxonomyTools {
|
|
|
20
20
|
return [
|
|
21
21
|
// Categories
|
|
22
22
|
{
|
|
23
|
-
name:
|
|
24
|
-
description:
|
|
23
|
+
name: "wp_list_categories",
|
|
24
|
+
description: "Lists categories from a WordPress site.",
|
|
25
25
|
parameters: [
|
|
26
26
|
{
|
|
27
|
-
name:
|
|
28
|
-
type:
|
|
29
|
-
description:
|
|
27
|
+
name: "search",
|
|
28
|
+
type: "string",
|
|
29
|
+
description: "Limit results to those matching a search term.",
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
|
-
name:
|
|
33
|
-
type:
|
|
34
|
-
description:
|
|
35
|
-
}
|
|
32
|
+
name: "hide_empty",
|
|
33
|
+
type: "boolean",
|
|
34
|
+
description: "Whether to hide categories with no posts.",
|
|
35
|
+
},
|
|
36
36
|
],
|
|
37
|
-
handler: this.handleListCategories.bind(this)
|
|
37
|
+
handler: this.handleListCategories.bind(this),
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
|
-
name:
|
|
41
|
-
description:
|
|
40
|
+
name: "wp_get_category",
|
|
41
|
+
description: "Retrieves a single category by its ID.",
|
|
42
42
|
parameters: [
|
|
43
43
|
{
|
|
44
|
-
name:
|
|
45
|
-
type:
|
|
44
|
+
name: "id",
|
|
45
|
+
type: "number",
|
|
46
46
|
required: true,
|
|
47
|
-
description:
|
|
48
|
-
}
|
|
47
|
+
description: "The unique identifier for the category.",
|
|
48
|
+
},
|
|
49
49
|
],
|
|
50
|
-
handler: this.handleGetCategory.bind(this)
|
|
50
|
+
handler: this.handleGetCategory.bind(this),
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
|
-
name:
|
|
54
|
-
description:
|
|
53
|
+
name: "wp_create_category",
|
|
54
|
+
description: "Creates a new category.",
|
|
55
55
|
parameters: [
|
|
56
56
|
{
|
|
57
|
-
name:
|
|
58
|
-
type:
|
|
57
|
+
name: "name",
|
|
58
|
+
type: "string",
|
|
59
59
|
required: true,
|
|
60
|
-
description:
|
|
60
|
+
description: "The name of the category.",
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
|
-
name:
|
|
64
|
-
type:
|
|
65
|
-
description:
|
|
66
|
-
}
|
|
63
|
+
name: "description",
|
|
64
|
+
type: "string",
|
|
65
|
+
description: "The description for the category.",
|
|
66
|
+
},
|
|
67
67
|
],
|
|
68
|
-
handler: this.handleCreateCategory.bind(this)
|
|
68
|
+
handler: this.handleCreateCategory.bind(this),
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
|
-
name:
|
|
72
|
-
description:
|
|
71
|
+
name: "wp_update_category",
|
|
72
|
+
description: "Updates an existing category.",
|
|
73
73
|
parameters: [
|
|
74
74
|
{
|
|
75
|
-
name:
|
|
76
|
-
type:
|
|
75
|
+
name: "id",
|
|
76
|
+
type: "number",
|
|
77
77
|
required: true,
|
|
78
|
-
description:
|
|
78
|
+
description: "The ID of the category to update.",
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
|
-
name:
|
|
82
|
-
type:
|
|
83
|
-
description:
|
|
84
|
-
}
|
|
81
|
+
name: "name",
|
|
82
|
+
type: "string",
|
|
83
|
+
description: "The new name for the category.",
|
|
84
|
+
},
|
|
85
85
|
],
|
|
86
|
-
handler: this.handleUpdateCategory.bind(this)
|
|
86
|
+
handler: this.handleUpdateCategory.bind(this),
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
|
-
name:
|
|
90
|
-
description:
|
|
89
|
+
name: "wp_delete_category",
|
|
90
|
+
description: "Deletes a category.",
|
|
91
91
|
parameters: [
|
|
92
92
|
{
|
|
93
|
-
name:
|
|
94
|
-
type:
|
|
93
|
+
name: "id",
|
|
94
|
+
type: "number",
|
|
95
95
|
required: true,
|
|
96
|
-
description:
|
|
97
|
-
}
|
|
96
|
+
description: "The ID of the category to delete.",
|
|
97
|
+
},
|
|
98
98
|
],
|
|
99
|
-
handler: this.handleDeleteCategory.bind(this)
|
|
99
|
+
handler: this.handleDeleteCategory.bind(this),
|
|
100
100
|
},
|
|
101
101
|
// Tags
|
|
102
102
|
{
|
|
103
|
-
name:
|
|
104
|
-
description:
|
|
103
|
+
name: "wp_list_tags",
|
|
104
|
+
description: "Lists tags from a WordPress site.",
|
|
105
105
|
parameters: [
|
|
106
106
|
{
|
|
107
|
-
name:
|
|
108
|
-
type:
|
|
109
|
-
description:
|
|
110
|
-
}
|
|
107
|
+
name: "search",
|
|
108
|
+
type: "string",
|
|
109
|
+
description: "Limit results to those matching a search term.",
|
|
110
|
+
},
|
|
111
111
|
],
|
|
112
|
-
handler: this.handleListTags.bind(this)
|
|
112
|
+
handler: this.handleListTags.bind(this),
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
|
-
name:
|
|
116
|
-
description:
|
|
115
|
+
name: "wp_get_tag",
|
|
116
|
+
description: "Retrieves a single tag by its ID.",
|
|
117
117
|
parameters: [
|
|
118
118
|
{
|
|
119
|
-
name:
|
|
120
|
-
type:
|
|
119
|
+
name: "id",
|
|
120
|
+
type: "number",
|
|
121
121
|
required: true,
|
|
122
|
-
description:
|
|
123
|
-
}
|
|
122
|
+
description: "The unique identifier for the tag.",
|
|
123
|
+
},
|
|
124
124
|
],
|
|
125
|
-
handler: this.handleGetTag.bind(this)
|
|
125
|
+
handler: this.handleGetTag.bind(this),
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
|
-
name:
|
|
129
|
-
description:
|
|
128
|
+
name: "wp_create_tag",
|
|
129
|
+
description: "Creates a new tag.",
|
|
130
130
|
parameters: [
|
|
131
131
|
{
|
|
132
|
-
name:
|
|
133
|
-
type:
|
|
132
|
+
name: "name",
|
|
133
|
+
type: "string",
|
|
134
134
|
required: true,
|
|
135
|
-
description:
|
|
136
|
-
}
|
|
135
|
+
description: "The name of the tag.",
|
|
136
|
+
},
|
|
137
137
|
],
|
|
138
|
-
handler: this.handleCreateTag.bind(this)
|
|
138
|
+
handler: this.handleCreateTag.bind(this),
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
|
-
name:
|
|
142
|
-
description:
|
|
141
|
+
name: "wp_update_tag",
|
|
142
|
+
description: "Updates an existing tag.",
|
|
143
143
|
parameters: [
|
|
144
144
|
{
|
|
145
|
-
name:
|
|
146
|
-
type:
|
|
145
|
+
name: "id",
|
|
146
|
+
type: "number",
|
|
147
147
|
required: true,
|
|
148
|
-
description:
|
|
148
|
+
description: "The ID of the tag to update.",
|
|
149
149
|
},
|
|
150
150
|
{
|
|
151
|
-
name:
|
|
152
|
-
type:
|
|
153
|
-
description:
|
|
154
|
-
}
|
|
151
|
+
name: "name",
|
|
152
|
+
type: "string",
|
|
153
|
+
description: "The new name for the tag.",
|
|
154
|
+
},
|
|
155
155
|
],
|
|
156
|
-
handler: this.handleUpdateTag.bind(this)
|
|
156
|
+
handler: this.handleUpdateTag.bind(this),
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
|
-
name:
|
|
160
|
-
description:
|
|
159
|
+
name: "wp_delete_tag",
|
|
160
|
+
description: "Deletes a tag.",
|
|
161
161
|
parameters: [
|
|
162
162
|
{
|
|
163
|
-
name:
|
|
164
|
-
type:
|
|
163
|
+
name: "id",
|
|
164
|
+
type: "number",
|
|
165
165
|
required: true,
|
|
166
|
-
description:
|
|
167
|
-
}
|
|
166
|
+
description: "The ID of the tag to delete.",
|
|
167
|
+
},
|
|
168
168
|
],
|
|
169
|
-
handler: this.handleDeleteTag.bind(this)
|
|
170
|
-
}
|
|
169
|
+
handler: this.handleDeleteTag.bind(this),
|
|
170
|
+
},
|
|
171
171
|
];
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
public async handleListCategories(
|
|
175
175
|
client: WordPressClient,
|
|
176
|
-
params: any
|
|
176
|
+
params: any,
|
|
177
177
|
): Promise<any> {
|
|
178
178
|
try {
|
|
179
179
|
const categories = await client.getCategories(params);
|
|
180
180
|
if (categories.length === 0) {
|
|
181
|
-
return
|
|
181
|
+
return "No categories found.";
|
|
182
182
|
}
|
|
183
183
|
const content =
|
|
184
184
|
`Found ${categories.length} categories:\n\n` +
|
|
185
185
|
categories
|
|
186
186
|
.map((c) => `- ID ${c.id}: **${c.name}** (Posts: ${c.count})`)
|
|
187
|
-
.join(
|
|
187
|
+
.join("\n");
|
|
188
188
|
return content;
|
|
189
189
|
} catch (error) {
|
|
190
190
|
throw new Error(`Failed to list categories: ${getErrorMessage(error)}`);
|
|
@@ -193,7 +193,7 @@ export class TaxonomyTools {
|
|
|
193
193
|
|
|
194
194
|
public async handleGetCategory(
|
|
195
195
|
client: WordPressClient,
|
|
196
|
-
params: { id: number }
|
|
196
|
+
params: { id: number },
|
|
197
197
|
): Promise<any> {
|
|
198
198
|
try {
|
|
199
199
|
const category = await client.getCategory(params.id);
|
|
@@ -201,7 +201,7 @@ export class TaxonomyTools {
|
|
|
201
201
|
`**Category Details (ID: ${category.id})**\n\n` +
|
|
202
202
|
`- **Name:** ${category.name}\n` +
|
|
203
203
|
`- **Slug:** ${category.slug}\n` +
|
|
204
|
-
`- **Description:** ${category.description ||
|
|
204
|
+
`- **Description:** ${category.description || "None"}\n` +
|
|
205
205
|
`- **Post Count:** ${category.count}`;
|
|
206
206
|
return content;
|
|
207
207
|
} catch (error) {
|
|
@@ -211,7 +211,7 @@ export class TaxonomyTools {
|
|
|
211
211
|
|
|
212
212
|
public async handleCreateCategory(
|
|
213
213
|
client: WordPressClient,
|
|
214
|
-
params: CreateCategoryRequest
|
|
214
|
+
params: CreateCategoryRequest,
|
|
215
215
|
): Promise<any> {
|
|
216
216
|
try {
|
|
217
217
|
const category = await client.createCategory(params);
|
|
@@ -223,7 +223,7 @@ export class TaxonomyTools {
|
|
|
223
223
|
|
|
224
224
|
public async handleUpdateCategory(
|
|
225
225
|
client: WordPressClient,
|
|
226
|
-
params: UpdateCategoryRequest & { id: number }
|
|
226
|
+
params: UpdateCategoryRequest & { id: number },
|
|
227
227
|
): Promise<any> {
|
|
228
228
|
try {
|
|
229
229
|
const category = await client.updateCategory(params);
|
|
@@ -235,7 +235,7 @@ export class TaxonomyTools {
|
|
|
235
235
|
|
|
236
236
|
public async handleDeleteCategory(
|
|
237
237
|
client: WordPressClient,
|
|
238
|
-
params: { id: number }
|
|
238
|
+
params: { id: number },
|
|
239
239
|
): Promise<any> {
|
|
240
240
|
try {
|
|
241
241
|
await client.deleteCategory(params.id);
|
|
@@ -247,18 +247,18 @@ export class TaxonomyTools {
|
|
|
247
247
|
|
|
248
248
|
public async handleListTags(
|
|
249
249
|
client: WordPressClient,
|
|
250
|
-
params: any
|
|
250
|
+
params: any,
|
|
251
251
|
): Promise<any> {
|
|
252
252
|
try {
|
|
253
253
|
const tags = await client.getTags(params);
|
|
254
254
|
if (tags.length === 0) {
|
|
255
|
-
return
|
|
255
|
+
return "No tags found.";
|
|
256
256
|
}
|
|
257
257
|
const content =
|
|
258
258
|
`Found ${tags.length} tags:\n\n` +
|
|
259
259
|
tags
|
|
260
260
|
.map((t) => `- ID ${t.id}: **${t.name}** (Posts: ${t.count})`)
|
|
261
|
-
.join(
|
|
261
|
+
.join("\n");
|
|
262
262
|
return content;
|
|
263
263
|
} catch (error) {
|
|
264
264
|
throw new Error(`Failed to list tags: ${getErrorMessage(error)}`);
|
|
@@ -267,7 +267,7 @@ export class TaxonomyTools {
|
|
|
267
267
|
|
|
268
268
|
public async handleGetTag(
|
|
269
269
|
client: WordPressClient,
|
|
270
|
-
params: { id: number }
|
|
270
|
+
params: { id: number },
|
|
271
271
|
): Promise<any> {
|
|
272
272
|
try {
|
|
273
273
|
const tag = await client.getTag(params.id);
|
|
@@ -284,7 +284,7 @@ export class TaxonomyTools {
|
|
|
284
284
|
|
|
285
285
|
public async handleCreateTag(
|
|
286
286
|
client: WordPressClient,
|
|
287
|
-
params: CreateTagRequest
|
|
287
|
+
params: CreateTagRequest,
|
|
288
288
|
): Promise<any> {
|
|
289
289
|
try {
|
|
290
290
|
const tag = await client.createTag(params);
|
|
@@ -296,7 +296,7 @@ export class TaxonomyTools {
|
|
|
296
296
|
|
|
297
297
|
public async handleUpdateTag(
|
|
298
298
|
client: WordPressClient,
|
|
299
|
-
params: UpdateTagRequest & { id: number }
|
|
299
|
+
params: UpdateTagRequest & { id: number },
|
|
300
300
|
): Promise<any> {
|
|
301
301
|
try {
|
|
302
302
|
const tag = await client.updateTag(params);
|
|
@@ -308,7 +308,7 @@ export class TaxonomyTools {
|
|
|
308
308
|
|
|
309
309
|
public async handleDeleteTag(
|
|
310
310
|
client: WordPressClient,
|
|
311
|
-
params: { id: number }
|
|
311
|
+
params: { id: number },
|
|
312
312
|
): Promise<any> {
|
|
313
313
|
try {
|
|
314
314
|
await client.deleteTag(params.id);
|
package/src/tools/users.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { WordPressClient } from
|
|
1
|
+
import { WordPressClient } from "../client/api.js";
|
|
2
2
|
import {
|
|
3
3
|
CreateUserRequest,
|
|
4
4
|
UpdateUserRequest,
|
|
5
|
-
UserQueryParams
|
|
6
|
-
} from
|
|
7
|
-
import { getErrorMessage } from
|
|
5
|
+
UserQueryParams,
|
|
6
|
+
} from "../types/wordpress.js";
|
|
7
|
+
import { getErrorMessage } from "../utils/error.js";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Provides tools for managing users on a WordPress site.
|
|
@@ -18,135 +18,135 @@ export class UserTools {
|
|
|
18
18
|
public getTools(): any[] {
|
|
19
19
|
return [
|
|
20
20
|
{
|
|
21
|
-
name:
|
|
22
|
-
description:
|
|
21
|
+
name: "wp_list_users",
|
|
22
|
+
description: "Lists users from a WordPress site, with filters.",
|
|
23
23
|
parameters: [
|
|
24
24
|
{
|
|
25
|
-
name:
|
|
26
|
-
type:
|
|
27
|
-
description:
|
|
25
|
+
name: "search",
|
|
26
|
+
type: "string",
|
|
27
|
+
description: "Limit results to those matching a search term.",
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
|
-
name:
|
|
31
|
-
type:
|
|
32
|
-
items: { type:
|
|
33
|
-
description:
|
|
34
|
-
}
|
|
30
|
+
name: "roles",
|
|
31
|
+
type: "array",
|
|
32
|
+
items: { type: "string" },
|
|
33
|
+
description: "Limit results to users with specific roles.",
|
|
34
|
+
},
|
|
35
35
|
],
|
|
36
|
-
handler: this.handleListUsers.bind(this)
|
|
36
|
+
handler: this.handleListUsers.bind(this),
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
|
-
name:
|
|
40
|
-
description:
|
|
39
|
+
name: "wp_get_user",
|
|
40
|
+
description: "Retrieves a single user by their ID.",
|
|
41
41
|
parameters: [
|
|
42
42
|
{
|
|
43
|
-
name:
|
|
44
|
-
type:
|
|
43
|
+
name: "id",
|
|
44
|
+
type: "number",
|
|
45
45
|
required: true,
|
|
46
|
-
description:
|
|
47
|
-
}
|
|
46
|
+
description: "The unique identifier for the user.",
|
|
47
|
+
},
|
|
48
48
|
],
|
|
49
|
-
handler: this.handleGetUser.bind(this)
|
|
49
|
+
handler: this.handleGetUser.bind(this),
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
|
-
name:
|
|
53
|
-
description:
|
|
52
|
+
name: "wp_get_current_user",
|
|
53
|
+
description: "Retrieves the currently authenticated user.",
|
|
54
54
|
parameters: [],
|
|
55
|
-
handler: this.handleGetCurrentUser.bind(this)
|
|
55
|
+
handler: this.handleGetCurrentUser.bind(this),
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
|
-
name:
|
|
59
|
-
description:
|
|
58
|
+
name: "wp_create_user",
|
|
59
|
+
description: "Creates a new user.",
|
|
60
60
|
parameters: [
|
|
61
61
|
{
|
|
62
|
-
name:
|
|
63
|
-
type:
|
|
62
|
+
name: "username",
|
|
63
|
+
type: "string",
|
|
64
64
|
required: true,
|
|
65
|
-
description:
|
|
65
|
+
description: "The username for the new user.",
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
|
-
name:
|
|
69
|
-
type:
|
|
68
|
+
name: "email",
|
|
69
|
+
type: "string",
|
|
70
70
|
required: true,
|
|
71
|
-
description:
|
|
71
|
+
description: "The email address for the new user.",
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
|
-
name:
|
|
75
|
-
type:
|
|
74
|
+
name: "password",
|
|
75
|
+
type: "string",
|
|
76
76
|
required: true,
|
|
77
|
-
description:
|
|
77
|
+
description: "The password for the new user.",
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
|
-
name:
|
|
81
|
-
type:
|
|
82
|
-
items: { type:
|
|
83
|
-
description:
|
|
84
|
-
}
|
|
80
|
+
name: "roles",
|
|
81
|
+
type: "array",
|
|
82
|
+
items: { type: "string" },
|
|
83
|
+
description: "An array of roles to assign to the user.",
|
|
84
|
+
},
|
|
85
85
|
],
|
|
86
|
-
handler: this.handleCreateUser.bind(this)
|
|
86
|
+
handler: this.handleCreateUser.bind(this),
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
|
-
name:
|
|
90
|
-
description:
|
|
89
|
+
name: "wp_update_user",
|
|
90
|
+
description: "Updates an existing user.",
|
|
91
91
|
parameters: [
|
|
92
92
|
{
|
|
93
|
-
name:
|
|
94
|
-
type:
|
|
93
|
+
name: "id",
|
|
94
|
+
type: "number",
|
|
95
95
|
required: true,
|
|
96
|
-
description:
|
|
96
|
+
description: "The ID of the user to update.",
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
|
-
name:
|
|
100
|
-
type:
|
|
101
|
-
description:
|
|
99
|
+
name: "email",
|
|
100
|
+
type: "string",
|
|
101
|
+
description: "The new email address for the user.",
|
|
102
102
|
},
|
|
103
103
|
{
|
|
104
|
-
name:
|
|
105
|
-
type:
|
|
106
|
-
description:
|
|
107
|
-
}
|
|
104
|
+
name: "name",
|
|
105
|
+
type: "string",
|
|
106
|
+
description: "The new display name for the user.",
|
|
107
|
+
},
|
|
108
108
|
],
|
|
109
|
-
handler: this.handleUpdateUser.bind(this)
|
|
109
|
+
handler: this.handleUpdateUser.bind(this),
|
|
110
110
|
},
|
|
111
111
|
{
|
|
112
|
-
name:
|
|
113
|
-
description:
|
|
112
|
+
name: "wp_delete_user",
|
|
113
|
+
description: "Deletes a user.",
|
|
114
114
|
parameters: [
|
|
115
115
|
{
|
|
116
|
-
name:
|
|
117
|
-
type:
|
|
116
|
+
name: "id",
|
|
117
|
+
type: "number",
|
|
118
118
|
required: true,
|
|
119
|
-
description:
|
|
119
|
+
description: "The ID of the user to delete.",
|
|
120
120
|
},
|
|
121
121
|
{
|
|
122
|
-
name:
|
|
123
|
-
type:
|
|
122
|
+
name: "reassign",
|
|
123
|
+
type: "number",
|
|
124
124
|
description:
|
|
125
|
-
|
|
126
|
-
}
|
|
125
|
+
"The ID of a user to reassign the deleted user's content to.",
|
|
126
|
+
},
|
|
127
127
|
],
|
|
128
|
-
handler: this.handleDeleteUser.bind(this)
|
|
129
|
-
}
|
|
128
|
+
handler: this.handleDeleteUser.bind(this),
|
|
129
|
+
},
|
|
130
130
|
];
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
public async handleListUsers(
|
|
134
134
|
client: WordPressClient,
|
|
135
|
-
params: UserQueryParams
|
|
135
|
+
params: UserQueryParams,
|
|
136
136
|
): Promise<any> {
|
|
137
137
|
try {
|
|
138
138
|
const users = await client.getUsers(params);
|
|
139
139
|
if (users.length === 0) {
|
|
140
|
-
return
|
|
140
|
+
return "No users found matching the criteria.";
|
|
141
141
|
}
|
|
142
142
|
const content =
|
|
143
143
|
`Found ${users.length} users:\n\n` +
|
|
144
144
|
users
|
|
145
145
|
.map(
|
|
146
146
|
(u) =>
|
|
147
|
-
`- ID ${u.id}: **${u.name}** (@${u.slug}) - ${u.email}\n Roles: ${u.roles?.join(
|
|
147
|
+
`- ID ${u.id}: **${u.name}** (@${u.slug}) - ${u.email}\n Roles: ${u.roles?.join(", ") || "N/A"}`,
|
|
148
148
|
)
|
|
149
|
-
.join(
|
|
149
|
+
.join("\n");
|
|
150
150
|
return content;
|
|
151
151
|
} catch (error) {
|
|
152
152
|
throw new Error(`Failed to list users: ${getErrorMessage(error)}`);
|
|
@@ -155,7 +155,7 @@ export class UserTools {
|
|
|
155
155
|
|
|
156
156
|
public async handleGetUser(
|
|
157
157
|
client: WordPressClient,
|
|
158
|
-
params: { id: number }
|
|
158
|
+
params: { id: number },
|
|
159
159
|
): Promise<any> {
|
|
160
160
|
try {
|
|
161
161
|
const user = await client.getUser(params.id);
|
|
@@ -164,7 +164,7 @@ export class UserTools {
|
|
|
164
164
|
`- **Name:** ${user.name}\n` +
|
|
165
165
|
`- **Username:** ${user.slug}\n` +
|
|
166
166
|
`- **Email:** ${user.email}\n` +
|
|
167
|
-
`- **Roles:** ${user.roles?.join(
|
|
167
|
+
`- **Roles:** ${user.roles?.join(", ") || "N/A"}`;
|
|
168
168
|
return content;
|
|
169
169
|
} catch (error) {
|
|
170
170
|
throw new Error(`Failed to get user: ${getErrorMessage(error)}`);
|
|
@@ -173,7 +173,7 @@ export class UserTools {
|
|
|
173
173
|
|
|
174
174
|
public async handleGetCurrentUser(
|
|
175
175
|
client: WordPressClient,
|
|
176
|
-
params: any
|
|
176
|
+
params: any,
|
|
177
177
|
): Promise<any> {
|
|
178
178
|
try {
|
|
179
179
|
const user = await client.getCurrentUser();
|
|
@@ -182,7 +182,7 @@ export class UserTools {
|
|
|
182
182
|
`- **Name:** ${user.name}\n` +
|
|
183
183
|
`- **Username:** ${user.slug}\n` +
|
|
184
184
|
`- **Email:** ${user.email}\n` +
|
|
185
|
-
`- **Roles:** ${user.roles?.join(
|
|
185
|
+
`- **Roles:** ${user.roles?.join(", ") || "N/A"}`;
|
|
186
186
|
return content;
|
|
187
187
|
} catch (error) {
|
|
188
188
|
throw new Error(`Failed to get current user: ${getErrorMessage(error)}`);
|
|
@@ -191,7 +191,7 @@ export class UserTools {
|
|
|
191
191
|
|
|
192
192
|
public async handleCreateUser(
|
|
193
193
|
client: WordPressClient,
|
|
194
|
-
params: CreateUserRequest
|
|
194
|
+
params: CreateUserRequest,
|
|
195
195
|
): Promise<any> {
|
|
196
196
|
try {
|
|
197
197
|
const user = await client.createUser(params);
|
|
@@ -203,7 +203,7 @@ export class UserTools {
|
|
|
203
203
|
|
|
204
204
|
public async handleUpdateUser(
|
|
205
205
|
client: WordPressClient,
|
|
206
|
-
params: UpdateUserRequest & { id: number }
|
|
206
|
+
params: UpdateUserRequest & { id: number },
|
|
207
207
|
): Promise<any> {
|
|
208
208
|
try {
|
|
209
209
|
const user = await client.updateUser(params);
|
|
@@ -215,7 +215,7 @@ export class UserTools {
|
|
|
215
215
|
|
|
216
216
|
public async handleDeleteUser(
|
|
217
217
|
client: WordPressClient,
|
|
218
|
-
params: { id: number; reassign?: number }
|
|
218
|
+
params: { id: number; reassign?: number },
|
|
219
219
|
): Promise<any> {
|
|
220
220
|
try {
|
|
221
221
|
await client.deleteUser(params.id, params.reassign);
|