@bulkpublishing/mcp-server 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.
Files changed (54) hide show
  1. package/README.md +170 -0
  2. package/dist/ai/engine.d.ts +12 -0
  3. package/dist/ai/engine.d.ts.map +1 -0
  4. package/dist/ai/engine.js +397 -0
  5. package/dist/ai/engine.js.map +1 -0
  6. package/dist/ai/prompts.d.ts +30 -0
  7. package/dist/ai/prompts.d.ts.map +1 -0
  8. package/dist/ai/prompts.js +207 -0
  9. package/dist/ai/prompts.js.map +1 -0
  10. package/dist/auth/context.d.ts +81 -0
  11. package/dist/auth/context.d.ts.map +1 -0
  12. package/dist/auth/context.js +68 -0
  13. package/dist/auth/context.js.map +1 -0
  14. package/dist/auth/validate.d.ts +13 -0
  15. package/dist/auth/validate.d.ts.map +1 -0
  16. package/dist/auth/validate.js +87 -0
  17. package/dist/auth/validate.js.map +1 -0
  18. package/dist/index.d.ts +22 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +78 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/tools/csv.d.ts +18 -0
  23. package/dist/tools/csv.d.ts.map +1 -0
  24. package/dist/tools/csv.js +673 -0
  25. package/dist/tools/csv.js.map +1 -0
  26. package/dist/tools/generation.d.ts +14 -0
  27. package/dist/tools/generation.d.ts.map +1 -0
  28. package/dist/tools/generation.js +291 -0
  29. package/dist/tools/generation.js.map +1 -0
  30. package/dist/tools/indexing.d.ts +11 -0
  31. package/dist/tools/indexing.d.ts.map +1 -0
  32. package/dist/tools/indexing.js +219 -0
  33. package/dist/tools/indexing.js.map +1 -0
  34. package/dist/tools/projects.d.ts +11 -0
  35. package/dist/tools/projects.d.ts.map +1 -0
  36. package/dist/tools/projects.js +181 -0
  37. package/dist/tools/projects.js.map +1 -0
  38. package/dist/tools/research.d.ts +12 -0
  39. package/dist/tools/research.d.ts.map +1 -0
  40. package/dist/tools/research.js +88 -0
  41. package/dist/tools/research.js.map +1 -0
  42. package/dist/tools/seo.d.ts +12 -0
  43. package/dist/tools/seo.d.ts.map +1 -0
  44. package/dist/tools/seo.js +164 -0
  45. package/dist/tools/seo.js.map +1 -0
  46. package/dist/tools/wordpress.d.ts +15 -0
  47. package/dist/tools/wordpress.d.ts.map +1 -0
  48. package/dist/tools/wordpress.js +447 -0
  49. package/dist/tools/wordpress.js.map +1 -0
  50. package/dist/types.d.ts +206 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +9 -0
  53. package/dist/types.js.map +1 -0
  54. package/package.json +53 -0
@@ -0,0 +1,206 @@
1
+ /**
2
+ * BPAI MCP Server — Types
3
+ *
4
+ * Shared type definitions adapted from the web app's src/services/ai/types.ts
5
+ * for server-side MCP usage. These types cover AI providers, generation requests,
6
+ * WordPress connections, projects, and knowledge base items.
7
+ */
8
+ export type AIProvider = 'openai' | 'claude' | 'deepseek' | 'grok' | 'gemini' | 'perplexity' | 'kimi';
9
+ export type ResearchProvider = 'perplexity' | 'openai' | 'grok' | 'gemini' | 'deepseek';
10
+ export interface ApiKeys {
11
+ openai?: string;
12
+ claude?: string;
13
+ perplexity?: string;
14
+ grok?: string;
15
+ gemini?: string;
16
+ deepseek?: string;
17
+ kimi?: string;
18
+ }
19
+ export interface ApiKeyEntry {
20
+ key: string;
21
+ label: string;
22
+ enabled: boolean;
23
+ }
24
+ export interface MultiKeyConfig {
25
+ enabled: boolean;
26
+ openai?: ApiKeyEntry[];
27
+ claude?: ApiKeyEntry[];
28
+ perplexity?: ApiKeyEntry[];
29
+ grok?: ApiKeyEntry[];
30
+ gemini?: ApiKeyEntry[];
31
+ deepseek?: ApiKeyEntry[];
32
+ kimi?: ApiKeyEntry[];
33
+ }
34
+ export interface AIModel {
35
+ id: string;
36
+ displayName: string;
37
+ }
38
+ export interface ProviderSettings {
39
+ openai: {
40
+ model: string;
41
+ temperature: number;
42
+ maxTokens: number;
43
+ };
44
+ claude: {
45
+ model: string;
46
+ temperature: number;
47
+ maxTokens: number;
48
+ };
49
+ deepseek: {
50
+ model: string;
51
+ temperature: number;
52
+ maxTokens: number;
53
+ };
54
+ grok: {
55
+ model: string;
56
+ temperature: number;
57
+ maxTokens: number;
58
+ };
59
+ gemini: {
60
+ model: string;
61
+ temperature: number;
62
+ maxTokens: number;
63
+ };
64
+ perplexity: {
65
+ model: string;
66
+ temperature: number;
67
+ maxTokens: number;
68
+ };
69
+ kimi: {
70
+ model: string;
71
+ temperature: number;
72
+ maxTokens: number;
73
+ };
74
+ }
75
+ export interface GenerationSettings {
76
+ model: string;
77
+ temperature: number;
78
+ maxTokens: number;
79
+ topP?: number;
80
+ presencePenalty?: number;
81
+ frequencyPenalty?: number;
82
+ }
83
+ export interface GenerationRequest {
84
+ provider: AIProvider;
85
+ systemPrompt: string;
86
+ userPrompt: string;
87
+ settings: GenerationSettings;
88
+ signal?: AbortSignal;
89
+ }
90
+ export interface GenerationResponse {
91
+ text: string;
92
+ error?: string;
93
+ citations?: string[];
94
+ }
95
+ export interface KnowledgeBaseItem {
96
+ id: string;
97
+ title: string;
98
+ content: string;
99
+ user_id: string;
100
+ project_id?: string;
101
+ is_global?: boolean;
102
+ created_at?: string;
103
+ updated_at?: string;
104
+ }
105
+ export interface CTASnippet {
106
+ id: string;
107
+ name: string;
108
+ content: string;
109
+ position: 'top' | 'middle' | 'bottom' | 'after_intro';
110
+ enabled: boolean;
111
+ }
112
+ export interface WordPressConnection {
113
+ url: string;
114
+ username: string;
115
+ applicationPassword: string;
116
+ defaultStatus?: 'publish' | 'draft' | 'pending';
117
+ defaultCategory?: number;
118
+ defaultAuthorId?: number;
119
+ }
120
+ export interface WPCategory {
121
+ id: number;
122
+ name: string;
123
+ slug: string;
124
+ count?: number;
125
+ }
126
+ export interface WPPublishResult {
127
+ success: boolean;
128
+ postId?: number;
129
+ postUrl?: string;
130
+ error?: string;
131
+ }
132
+ export interface Project {
133
+ id: string;
134
+ name: string;
135
+ description?: string;
136
+ color?: string;
137
+ user_id: string;
138
+ created_at?: string;
139
+ updated_at?: string;
140
+ }
141
+ export interface ProjectSettings {
142
+ wordpress?: WordPressConnection;
143
+ internalLinking?: {
144
+ enabled: boolean;
145
+ sitemapUrls?: string[];
146
+ maxLinksPerPost?: number;
147
+ includedPaths?: string[];
148
+ excludePatterns?: string[];
149
+ };
150
+ crossLinking?: {
151
+ enabled: boolean;
152
+ baseUrl?: string;
153
+ maxLinksPerPost?: number;
154
+ };
155
+ customPrompts?: {
156
+ system?: string;
157
+ additional?: string;
158
+ };
159
+ }
160
+ export interface ResearchResult {
161
+ content: string;
162
+ citations: string[];
163
+ provider: ResearchProvider;
164
+ query: string;
165
+ error?: string;
166
+ }
167
+ export interface BatchJob {
168
+ id: string;
169
+ type: 'generation' | 'publishing' | 'export';
170
+ status: 'queued' | 'processing' | 'completed' | 'failed' | 'cancelled';
171
+ total: number;
172
+ completed: number;
173
+ failed: number;
174
+ results: any[];
175
+ created_at: string;
176
+ updated_at: string;
177
+ }
178
+ export interface GeneratedArticle {
179
+ id: string;
180
+ user_id: string;
181
+ project_id?: string;
182
+ keyword: string;
183
+ title: string;
184
+ content: string;
185
+ word_count: number;
186
+ model: string;
187
+ provider: AIProvider;
188
+ batch_id?: string;
189
+ status: 'generated' | 'published' | 'draft';
190
+ wp_post_id?: number;
191
+ wp_post_url?: string;
192
+ created_at: string;
193
+ }
194
+ export interface ModelTokenLimits {
195
+ inputTokens: number;
196
+ outputTokens: number;
197
+ displayName: string;
198
+ }
199
+ export interface MCPServerConfig {
200
+ apiKey?: string;
201
+ insforgeUrl: string;
202
+ insforgeAnonKey: string;
203
+ wordpressProxyUrl?: string;
204
+ broadcasterUrl?: string;
205
+ }
206
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * BPAI MCP Server — Types
3
+ *
4
+ * Shared type definitions adapted from the web app's src/services/ai/types.ts
5
+ * for server-side MCP usage. These types cover AI providers, generation requests,
6
+ * WordPress connections, projects, and knowledge base items.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@bulkpublishing/mcp-server",
3
+ "version": "1.0.0",
4
+ "description": "Bulk Publishing AI MCP Server - Content generation, WordPress publishing, and SEO indexing tools for MCP-compatible clients",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "bpai-mcp": "dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "README.md",
13
+ "LICENSE"
14
+ ],
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "dev": "tsx watch src/index.ts",
18
+ "start": "node dist/index.js",
19
+ "typecheck": "tsc --noEmit",
20
+ "prepublishOnly": "npm run build"
21
+ },
22
+ "keywords": [
23
+ "mcp",
24
+ "model-context-protocol",
25
+ "ai",
26
+ "bulk-publishing",
27
+ "content-generation",
28
+ "wordpress",
29
+ "seo"
30
+ ],
31
+ "author": "Bulk Publishing AI",
32
+ "homepage": "https://bulkpublishing.ai",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://github.com/bulkpublishing/mcp-server.git"
36
+ },
37
+ "publishConfig": {
38
+ "access": "public"
39
+ },
40
+ "dependencies": {
41
+ "@modelcontextprotocol/sdk": "^1.12.1",
42
+ "zod": "^4.3.6"
43
+ },
44
+ "devDependencies": {
45
+ "@types/node": "^22.15.0",
46
+ "tsx": "^4.19.4",
47
+ "typescript": "^5.9.3"
48
+ },
49
+ "engines": {
50
+ "node": ">=18.0.0"
51
+ },
52
+ "license": "MIT"
53
+ }