@zudello/modelcontextprotocol 1.0.0 → 1.1.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 (69) hide show
  1. package/README.md +115 -512
  2. package/dist/services/zudello/admin.d.ts +124 -74
  3. package/dist/services/zudello/admin.d.ts.map +1 -1
  4. package/dist/services/zudello/admin.js +443 -112
  5. package/dist/services/zudello/admin.js.map +1 -1
  6. package/dist/services/zudello/document-context.js +2 -2
  7. package/dist/services/zudello/document-context.js.map +1 -1
  8. package/dist/services/zudello/inboxes.d.ts +88 -7
  9. package/dist/services/zudello/inboxes.d.ts.map +1 -1
  10. package/dist/services/zudello/inboxes.js +317 -34
  11. package/dist/services/zudello/inboxes.js.map +1 -1
  12. package/dist/services/zudello/users.d.ts +36 -6
  13. package/dist/services/zudello/users.d.ts.map +1 -1
  14. package/dist/services/zudello/users.js +183 -82
  15. package/dist/services/zudello/users.js.map +1 -1
  16. package/dist/tools/admin/datasets/create-dataset.d.ts +35 -7
  17. package/dist/tools/admin/datasets/create-dataset.d.ts.map +1 -1
  18. package/dist/tools/admin/datasets/create-dataset.js +25 -18
  19. package/dist/tools/admin/datasets/create-dataset.js.map +1 -1
  20. package/dist/tools/admin/datasets/get-dataset.d.ts +1 -1
  21. package/dist/tools/admin/datasets/list-datasets.d.ts +2 -4
  22. package/dist/tools/admin/datasets/list-datasets.d.ts.map +1 -1
  23. package/dist/tools/admin/datasets/list-datasets.js +11 -8
  24. package/dist/tools/admin/datasets/list-datasets.js.map +1 -1
  25. package/dist/tools/admin/datasets/update-dataset.d.ts +39 -6
  26. package/dist/tools/admin/datasets/update-dataset.d.ts.map +1 -1
  27. package/dist/tools/admin/datasets/update-dataset.js +27 -15
  28. package/dist/tools/admin/datasets/update-dataset.js.map +1 -1
  29. package/dist/tools/admin/fields/create-field.d.ts +7 -17
  30. package/dist/tools/admin/fields/create-field.d.ts.map +1 -1
  31. package/dist/tools/admin/fields/create-field.js +15 -26
  32. package/dist/tools/admin/fields/create-field.js.map +1 -1
  33. package/dist/tools/admin/fields/get-field.d.ts +1 -1
  34. package/dist/tools/admin/fields/list-fields.d.ts +3 -5
  35. package/dist/tools/admin/fields/list-fields.d.ts.map +1 -1
  36. package/dist/tools/admin/fields/list-fields.js +14 -12
  37. package/dist/tools/admin/fields/list-fields.js.map +1 -1
  38. package/dist/tools/admin/fields/update-field.d.ts +11 -6
  39. package/dist/tools/admin/fields/update-field.d.ts.map +1 -1
  40. package/dist/tools/admin/fields/update-field.js +20 -16
  41. package/dist/tools/admin/fields/update-field.js.map +1 -1
  42. package/dist/tools/admin/quick-actions/create-quick-action.d.ts +9 -9
  43. package/dist/tools/admin/quick-actions/create-quick-action.d.ts.map +1 -1
  44. package/dist/tools/admin/quick-actions/create-quick-action.js +18 -18
  45. package/dist/tools/admin/quick-actions/create-quick-action.js.map +1 -1
  46. package/dist/tools/admin/quick-actions/get-quick-action.d.ts +1 -1
  47. package/dist/tools/admin/quick-actions/list-quick-actions.d.ts +4 -3
  48. package/dist/tools/admin/quick-actions/list-quick-actions.d.ts.map +1 -1
  49. package/dist/tools/admin/quick-actions/list-quick-actions.js +11 -10
  50. package/dist/tools/admin/quick-actions/list-quick-actions.js.map +1 -1
  51. package/dist/tools/admin/quick-actions/trigger-quick-action.d.ts +4 -6
  52. package/dist/tools/admin/quick-actions/trigger-quick-action.d.ts.map +1 -1
  53. package/dist/tools/admin/quick-actions/trigger-quick-action.js +15 -9
  54. package/dist/tools/admin/quick-actions/trigger-quick-action.js.map +1 -1
  55. package/dist/tools/admin/quick-actions/update-quick-action.d.ts +11 -6
  56. package/dist/tools/admin/quick-actions/update-quick-action.d.ts.map +1 -1
  57. package/dist/tools/admin/quick-actions/update-quick-action.js +19 -14
  58. package/dist/tools/admin/quick-actions/update-quick-action.js.map +1 -1
  59. package/dist/tools/inboxes/create-inbox-template.d.ts +1 -1
  60. package/dist/tools/inboxes/create-inbox.d.ts +1 -1
  61. package/dist/tools/inboxes/fetch-inbox.d.ts +1 -1
  62. package/dist/tools/inboxes/list-inbox-templates.d.ts +1 -1
  63. package/dist/tools/inboxes/list-inboxes.d.ts +1 -1
  64. package/dist/tools/inboxes/update-inbox-template.d.ts +1 -1
  65. package/dist/tools/inboxes/update-inbox.d.ts +1 -1
  66. package/dist/tools/inboxes/update-inbox.d.ts.map +1 -1
  67. package/dist/tools/inboxes/update-inbox.js +3 -2
  68. package/dist/tools/inboxes/update-inbox.js.map +1 -1
  69. package/package.json +1 -1
package/README.md CHANGED
@@ -1,238 +1,62 @@
1
1
  # Zudello MCP Server
2
2
 
3
- Model Context Protocol (MCP) server exposing **106 Zudello ERP automation tools** for use with Claude Desktop and other MCP-compatible clients.
4
-
5
- ## ✅ Implementation Status
6
-
7
- **Complete**: All 106 tools successfully migrated from inapp-chat to MCP format.
3
+ Model Context Protocol (MCP) server exposing **106 Zudello ERP automation tools** for use with Claude Desktop, Claude Code CLI, and other MCP-compatible clients.
8
4
 
9
5
  ## Features
10
6
 
11
7
  - **106 Zudello Tools**: Complete access to Zudello ERP operations
12
8
  - 65 read-only tools for data access and discovery
13
9
  - 41 write tools with approval metadata
14
- - **Multi-tenant Support**: Environment-based auth for stdio mode
10
+ - **Multi-tenant Support**: Environment-based authentication
15
11
  - **Approval Workflow**: Write operations return approval metadata with risk levels
16
12
  - **Type-Safe**: Full TypeScript implementation with strict types
17
13
  - **ESM Modules**: Modern ES module architecture
18
14
 
19
15
  ## Installation
20
16
 
21
- ```bash
22
- npm install
23
- npm run build
24
- ```
25
-
26
- ## Configuration
27
-
28
- ### Environment Variables
17
+ ### Using npx (Recommended)
29
18
 
30
- Create a `.env` file with your Zudello credentials:
19
+ No installation required - use directly with npx:
31
20
 
32
21
  ```bash
33
- ZUDELLO_TOKEN=your_jwt_token_here
34
- ZUDELLO_ORGANIZATION=your_org_uuid_here
35
- ZUDELLO_TEAM=your_team_uuid_here
36
- ZUDELLO_CLUSTER_URL=api.1.eur1.zudello.io # Optional, defaults shown
37
- AUTHENTICATION_API_BASE=api.1.global.zudello.io # Optional, for org-level API (defaults shown)
38
- LOG_LEVEL=info # Optional: debug, info, warn, error
39
- ```
40
-
41
- ### Claude Desktop Setup
42
-
43
- **IMPORTANT**: Always use absolute paths (not `~` or relative paths) in your configuration.
44
-
45
- #### macOS Configuration
46
-
47
- Config file location: `~/Library/Application Support/Claude/claude_desktop_config.json`
48
-
49
- ```json
50
- {
51
- "mcpServers": {
52
- "zudello": {
53
- "command": "node",
54
- "args": ["/absolute/path/to/research_mcp/dist/index.js"],
55
- "env": {
56
- "ZUDELLO_TOKEN": "your_jwt_token",
57
- "ZUDELLO_ORGANIZATION": "your_org_uuid",
58
- "ZUDELLO_TEAM": "your_team_uuid",
59
- "ZUDELLO_CLUSTER_URL": "api.1.eur1.zudello.io",
60
- "AUTHENTICATION_API_BASE": "api.1.global.zudello.io"
61
- }
62
- }
63
- }
64
- }
65
- ```
66
-
67
- **Example with actual path**:
68
- ```json
69
- {
70
- "mcpServers": {
71
- "zudello": {
72
- "command": "node",
73
- "args": ["/Users/yourname/projects/research_mcp/dist/index.js"],
74
- "env": {
75
- "ZUDELLO_TOKEN": "eyJ...",
76
- "ZUDELLO_ORGANIZATION": "d49d2841-5cc4-4ffc-9be2-d07900eb1ffb",
77
- "ZUDELLO_TEAM": "19078156-f3cf-41eb-a9b4-984f84c24b35",
78
- "ZUDELLO_CLUSTER_URL": "api.au.3.zudello.io"
79
- }
80
- }
81
- }
82
- }
83
- ```
84
-
85
- #### Linux Configuration
86
-
87
- Config file location: `~/.config/claude/claude_desktop_config.json`
88
-
89
- Use the same JSON structure as macOS above.
90
-
91
- #### Windows Configuration
92
-
93
- Config file location: `%APPDATA%\Claude\claude_desktop_config.json`
94
-
95
- ```json
96
- {
97
- "mcpServers": {
98
- "zudello": {
99
- "command": "node",
100
- "args": ["C:\\path\\to\\research_mcp\\dist\\index.js"],
101
- "env": {
102
- "ZUDELLO_TOKEN": "your_jwt_token",
103
- "ZUDELLO_ORGANIZATION": "your_org_uuid",
104
- "ZUDELLO_TEAM": "your_team_uuid",
105
- "ZUDELLO_CLUSTER_URL": "api.1.eur1.zudello.io"
106
- }
107
- }
108
- }
109
- }
22
+ npx @zudello/modelcontextprotocol
110
23
  ```
111
24
 
112
- ### Claude Code (CLI) Setup
113
-
114
- **IMPORTANT**: Always use absolute paths (not `~` or relative paths) in your configuration.
25
+ ### Global Installation
115
26
 
116
- #### macOS/Linux Configuration
27
+ Install globally to use without npx prefix:
117
28
 
118
- Config file location: `~/.config/claude-code/mcp_servers.json`
119
-
120
- ```json
121
- {
122
- "mcpServers": {
123
- "zudello": {
124
- "command": "node",
125
- "args": ["/absolute/path/to/research_mcp/dist/index.js"],
126
- "env": {
127
- "ZUDELLO_TOKEN": "your_jwt_token",
128
- "ZUDELLO_ORGANIZATION": "your_org_uuid",
129
- "ZUDELLO_TEAM": "your_team_uuid",
130
- "ZUDELLO_CLUSTER_URL": "api.1.eur1.zudello.io",
131
- "AUTHENTICATION_API_BASE": "api.1.global.zudello.io"
132
- }
133
- }
134
- }
135
- }
29
+ ```bash
30
+ npm install -g @zudello/modelcontextprotocol
136
31
  ```
137
32
 
138
- #### Windows Configuration
139
-
140
- Config file location: `%APPDATA%\claude-code\mcp_servers.json`
141
-
142
- Use the same JSON structure as above.
143
-
144
- ### Getting Your Credentials
145
-
146
- 1. **ZUDELLO_TOKEN**: JWT authentication token (starts with "eyJ")
147
- - Obtain from your Zudello account settings or API section
148
-
149
- 2. **ZUDELLO_ORGANIZATION**: Your organization UUID
150
- - Format: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`
151
-
152
- 3. **ZUDELLO_TEAM**: Your team UUID
153
- - Format: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`
33
+ ## Quick Start
154
34
 
155
- 4. **ZUDELLO_CLUSTER_URL**: Your region-specific API cluster
156
- - Examples: `api.1.eur1.zudello.io` (Europe), `api.au.3.zudello.io` (Australia), `api.us.1.zudello.io` (US)
157
- - Check your Zudello instance URL to determine your cluster
35
+ ### 1. Get Your Zudello Credentials
158
36
 
159
- ### Setup Steps
37
+ You'll need the following from your Zudello account:
160
38
 
161
- 1. **Build the project** (required before first use):
162
- ```bash
163
- cd /path/to/research_mcp
164
- npm install
165
- npm run build
166
- ```
39
+ - **ZUDELLO_TOKEN**: JWT authentication token (starts with "eyJ")
40
+ - **ZUDELLO_ORGANIZATION**: Organization UUID (format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
41
+ - **ZUDELLO_TEAM**: Team UUID (format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
42
+ - **ZUDELLO_CLUSTER_URL**: Your region-specific API cluster
43
+ - Examples: `api.1.eur1.zudello.io` (Europe), `api.au.3.zudello.io` (Australia), `api.us.1.zudello.io` (US)
44
+ - Check your Zudello instance URL to determine your cluster
167
45
 
168
- 2. **Create/edit config file** with your credentials (see paths above)
46
+ ### 2. Configure Claude Desktop
169
47
 
170
- 3. **Restart Claude** (Desktop or Code)
48
+ Add the MCP server to your Claude Desktop configuration file:
171
49
 
172
- 4. **Verify installation**:
173
- - Ask Claude: "What Zudello MCP tools are available?"
174
- - You should see a list of 106 tools
50
+ #### macOS
51
+ File location: `~/Library/Application Support/Claude/claude_desktop_config.json`
175
52
 
176
- ### Troubleshooting
53
+ #### Linux
54
+ File location: `~/.config/claude/claude_desktop_config.json`
177
55
 
178
- **"Server not found" or "Connection failed"**:
179
- - Verify the path to `dist/index.js` is absolute (not relative or using `~`)
180
- - Ensure you ran `npm run build` after installation
181
- - Check that Node.js is in your PATH: `which node` or `node --version`
182
-
183
- **"Invalid credentials" or authentication errors**:
184
- - Verify your ZUDELLO_TOKEN starts with "eyJ"
185
- - Check ORGANIZATION and TEAM UUIDs are correct format
186
- - Confirm CLUSTER_URL matches your Zudello instance region
187
-
188
- **"ZodError" or validation errors**:
189
- - This was a bug in versions before the logger fix - ensure you have the latest code
190
- - Logs must go to stderr, not stdout (fixed in current version)
191
-
192
- **Changes not taking effect**:
193
- - Always restart Claude Desktop/Code after config changes
194
- - Run `npm run build` after any code changes
195
-
196
- ## NPM Package Installation
197
-
198
- ### Installing from NPM Registry
199
-
200
- Once published, you can install the package globally or use it with npx:
201
-
202
- #### Global Installation
203
- ```bash
204
- npm install -g @zudello/modelcontextprotocol
205
- ```
206
-
207
- #### Using with npx (no installation)
208
- ```bash
209
- npx @zudello/modelcontextprotocol
210
- ```
211
-
212
- ### Using NPM Package with Claude Desktop
213
-
214
- After installing the npm package, configure Claude Desktop to use it:
215
-
216
- #### macOS (`~/Library/Application Support/Claude/claude_desktop_config.json`)
217
- ```json
218
- {
219
- "mcpServers": {
220
- "zudello": {
221
- "command": "npx",
222
- "args": ["@zudello/modelcontextprotocol"],
223
- "env": {
224
- "ZUDELLO_TOKEN": "your_jwt_token",
225
- "ZUDELLO_ORGANIZATION": "your_org_uuid",
226
- "ZUDELLO_TEAM": "your_team_uuid",
227
- "ZUDELLO_CLUSTER_URL": "api.1.eur1.zudello.io",
228
- "AUTHENTICATION_API_BASE": "api.1.global.zudello.io"
229
- }
230
- }
231
- }
232
- }
233
- ```
56
+ #### Windows
57
+ File location: `%APPDATA%\Claude\claude_desktop_config.json`
234
58
 
235
- #### Linux (`~/.config/claude/claude_desktop_config.json`)
59
+ **Configuration:**
236
60
  ```json
237
61
  {
238
62
  "mcpServers": {
@@ -251,49 +75,17 @@ After installing the npm package, configure Claude Desktop to use it:
251
75
  }
252
76
  ```
253
77
 
254
- #### Windows (`%APPDATA%\Claude\claude_desktop_config.json`)
255
- ```json
256
- {
257
- "mcpServers": {
258
- "zudello": {
259
- "command": "npx",
260
- "args": ["@zudello/modelcontextprotocol"],
261
- "env": {
262
- "ZUDELLO_TOKEN": "your_jwt_token",
263
- "ZUDELLO_ORGANIZATION": "your_org_uuid",
264
- "ZUDELLO_TEAM": "your_team_uuid",
265
- "ZUDELLO_CLUSTER_URL": "api.1.eur1.zudello.io",
266
- "AUTHENTICATION_API_BASE": "api.1.global.zudello.io"
267
- }
268
- }
269
- }
270
- }
271
- ```
78
+ ### 3. Configure Claude Code CLI
272
79
 
273
- ### Using NPM Package with Claude Code
80
+ Add the MCP server to your Claude Code configuration file:
274
81
 
275
- When using the npm package with Claude Code CLI:
82
+ #### macOS/Linux
83
+ File location: `~/.config/claude-code/mcp_servers.json`
276
84
 
277
- #### macOS/Linux (`~/.config/claude-code/mcp_servers.json`)
278
- ```json
279
- {
280
- "mcpServers": {
281
- "zudello": {
282
- "command": "npx",
283
- "args": ["@zudello/modelcontextprotocol"],
284
- "env": {
285
- "ZUDELLO_TOKEN": "your_jwt_token",
286
- "ZUDELLO_ORGANIZATION": "your_org_uuid",
287
- "ZUDELLO_TEAM": "your_team_uuid",
288
- "ZUDELLO_CLUSTER_URL": "api.1.eur1.zudello.io",
289
- "AUTHENTICATION_API_BASE": "api.1.global.zudello.io"
290
- }
291
- }
292
- }
293
- }
294
- ```
85
+ #### Windows
86
+ File location: `%APPDATA%\claude-code\mcp_servers.json`
295
87
 
296
- #### Windows (`%APPDATA%\claude-code\mcp_servers.json`)
88
+ **Configuration:**
297
89
  ```json
298
90
  {
299
91
  "mcpServers": {
@@ -312,119 +104,38 @@ When using the npm package with Claude Code CLI:
312
104
  }
313
105
  ```
314
106
 
315
- ## Publishing to NPM
316
-
317
- For maintainers who want to publish this package to npm:
107
+ ### 4. Restart Claude
318
108
 
319
- ### Prerequisites
320
- 1. **NPM Account**: Create account at https://www.npmjs.com
321
- 2. **NPM Login**: Run `npm login` and authenticate
322
- 3. **Package Scope**: Ensure you have access to `@zudello` scope (or update package name)
323
-
324
- ### Publishing Steps
325
-
326
- ```bash
327
- # 1. Ensure you're on the correct branch
328
- git checkout main # or develop, depending on your workflow
109
+ Restart Claude Desktop or Claude Code CLI to load the new configuration.
329
110
 
330
- # 2. Update version (optional - creates git tag)
331
- npm version patch # or minor, major
332
- # This updates package.json and creates a git tag
111
+ ### 5. Verify Installation
333
112
 
334
- # 3. Build and validate
335
- npm run build
336
- npm run typecheck
113
+ Ask Claude: "What Zudello MCP tools are available?"
337
114
 
338
- # 4. Test the package locally (optional but recommended)
339
- npm pack # Creates a tarball
340
- npm install -g ./zudello-mcp-server-1.0.0.tgz # Test install
341
- zudello-mcp --help # Test binary
115
+ You should see a list of 106 available tools.
342
116
 
343
- # 5. Publish to npm
344
- npm publish --access public
345
- # Use --access public for scoped packages (@zudello/*)
117
+ ## Configuration Details
346
118
 
347
- # 6. Push git tags
348
- git push --tags
349
- ```
350
-
351
- ### Version Management
352
-
353
- Follow semantic versioning (semver):
354
- - **Patch** (1.0.X): Bug fixes, documentation updates
355
- - **Minor** (1.X.0): New features, backward-compatible
356
- - **Major** (X.0.0): Breaking changes
357
-
358
- ```bash
359
- npm version patch # 1.0.0 → 1.0.1
360
- npm version minor # 1.0.1 → 1.1.0
361
- npm version major # 1.1.0 → 2.0.0
362
- ```
363
-
364
- ### NPM Package Contents
365
-
366
- The published package includes:
367
- - `dist/` - Compiled JavaScript and TypeScript definitions
368
- - `README.md` - Full documentation
369
- - `TOOL_CATALOG.md` - Complete tool reference
370
- - `QUICKSTART.md` - Quick start guide
371
- - `LICENSE` - MIT license
372
-
373
- Excluded from package (see `.npmignore` or package.json `files`):
374
- - `src/` - TypeScript source files
375
- - `node_modules/` - Dependencies
376
- - `.env` - Local configuration
377
- - Development files
378
-
379
- ### Publishing Checklist
380
-
381
- Before publishing:
382
- - ✅ All tests pass (`npm test`)
383
- - ✅ TypeScript compiles without errors (`npm run typecheck`)
384
- - ✅ Build succeeds (`npm run build`)
385
- - ✅ README.md is up to date
386
- - ✅ CHANGELOG.md documents changes (if maintained)
387
- - ✅ Version number is updated
388
- - ✅ Git working directory is clean
389
- - ✅ You're logged into npm (`npm whoami`)
390
-
391
- ### Unpublishing (Emergency Only)
392
-
393
- If you need to unpublish (not recommended):
394
- ```bash
395
- # Unpublish specific version (within 72 hours of publish)
396
- npm unpublish @zudello/modelcontextprotocol@1.0.0
397
-
398
- # Deprecate instead (preferred)
399
- npm deprecate @zudello/modelcontextprotocol@1.0.0 "Use version 1.0.1 instead"
400
- ```
401
-
402
- ### Alternative: Private NPM Registry
119
+ ### Environment Variables
403
120
 
404
- For private/internal use:
405
- ```bash
406
- # Configure private registry
407
- npm config set registry https://your-private-registry.com
408
-
409
- # Or publish to specific registry
410
- npm publish --registry https://your-private-registry.com
411
- ```
121
+ - **ZUDELLO_TOKEN** (required): JWT authentication token from your Zudello account
122
+ - **ZUDELLO_ORGANIZATION** (required): Your organization UUID
123
+ - **ZUDELLO_TEAM** (required): Your team UUID
124
+ - **ZUDELLO_CLUSTER_URL** (optional): Region-specific API cluster (default: api.1.eur1.zudello.io)
125
+ - **AUTHENTICATION_API_BASE** (optional): Organization-level API endpoint (default: api.1.global.zudello.io)
126
+ - **LOG_LEVEL** (optional): Logging level - debug, info, warn, error (default: info)
412
127
 
413
128
  ### API Endpoints
414
129
 
415
130
  The MCP server uses two different API endpoints:
416
131
 
417
- 1. **Team-Level API** (`ZUDELLO_CLUSTER_URL`): Used for most operations (106 tools)
418
- - Default: `api.1.eur1.zudello.io`
132
+ 1. **Team-Level API** (`ZUDELLO_CLUSTER_URL`): Used for most operations (97 tools)
419
133
  - Region-specific endpoints for team data and operations
420
- - Examples: EUR1, US1, APAC1 clusters
134
+ - Examples: `api.1.eur1.zudello.io`, `api.au.3.zudello.io`, `api.us.1.zudello.io`
421
135
 
422
136
  2. **Organization-Level API** (`AUTHENTICATION_API_BASE`): Used for org admin operations (9 tools)
423
- - Default: `api.1.global.zudello.io` (https:// is added automatically)
424
- - Global endpoint for cross-team operations
425
- - Used by: Teams, Users, and Groups management tools
426
- - Override if your org uses a custom authentication service
427
- - **Note**: Only provide the domain, protocol is added automatically
137
+ - Default: `api.1.global.zudello.io`
138
+ - Global endpoint for cross-team operations (teams, users, groups)
428
139
 
429
140
  ## Tool Categories (106 Total)
430
141
 
@@ -452,9 +163,6 @@ The MCP server uses two different API endpoints:
452
163
  - Read: `zudelloGetSentence`, `zudelloGetSentenceTemplate`, `zudelloListSentences`, `zudelloListSentenceTemplates`, `zudelloListSentenceResources`
453
164
  - Write: `zudelloCreateSentence`, `zudelloUpdateSentence`, `zudelloUpdateSentencesOrder`
454
165
 
455
- ### History (1 tool)
456
- - `zudelloGetHistory` - View audit trail and change history
457
-
458
166
  ### Automation System (10 tools)
459
167
  - Scripts: `zudelloGetScript`, `zudelloListScripts`, `zudelloListGlobalIntegrations`, `zudelloListGlobalScriptsForIntegration`
460
168
  - Triggers: `zudelloGetTrigger`, `zudelloListTriggers`
@@ -467,196 +175,91 @@ The MCP server uses two different API endpoints:
467
175
  - `zudelloListAvailableIntegrations` - List available integrations
468
176
  - `zudelloGetConnectionTemplate` - Get connection template
469
177
 
470
- ### Trigger & Sync Control (2 tools)
471
- - `zudelloSetTriggerEnabled` - Enable/disable triggers (high-risk)
472
- - `zudelloInitiateSync` - Trigger data sync (high-risk)
473
-
474
- ### Bulk Operations (2 tools)
475
- - `zudelloBulkApproveMilestones` - Approve multiple items
476
- - `zudelloBulkSendReminders` - Send approval reminders
477
-
478
- ### Approval Workflows (1 tool)
479
- - `zudelloGetApprovalFlows` - View approval workflow configurations
480
-
481
- ### Users & Groups (2 tools)
482
- - `zudelloGetUserGroups` - Get user groups
483
- - `zudelloGetUsers` - Get team users
484
-
485
- ### Datasets (4 tools)
486
- - Read: `zudelloListDatasets`, `zudelloGetDataset`
487
- - Write: `zudelloCreateDataset`, `zudelloUpdateDataset`
488
-
489
- ### Field Settings (4 tools)
490
- - Read: `zudelloListFields`, `zudelloGetField`
491
- - Write: `zudelloCreateField`, `zudelloUpdateField`
492
-
493
- ### Quick Actions (5 tools)
494
- - Read: `zudelloListQuickActions`, `zudelloGetQuickAction`
495
- - Write: `zudelloCreateQuickAction`, `zudelloUpdateQuickAction`, `zudelloTriggerQuickAction`
496
-
497
- ### Export Templates (7 tools)
498
- - Read: `zudelloListExportTemplates`, `zudelloGetExportTemplate`, `zudelloListExports`, `zudelloGetExportDownloadUrl`
499
- - Write: `zudelloCreateExportTemplate`, `zudelloUpdateExportTemplate`, `zudelloRunExport`
500
-
501
- ### Document Types (5 tools)
502
- - Read: `zudelloListDocumentTypes`, `zudelloGetDocumentType`, `zudelloGetMergedFormMetadata`
503
- - Write: `zudelloCreateDocumentType`, `zudelloUpdateDocumentType`
504
-
505
- ### Organization Admin (9 tools)
506
- - Teams: `zudelloListOrgTeams`, `zudelloFetchOrgTeam`, `zudelloUpdateOrgTeam`
507
- - Users: `zudelloListOrgUsers`, `zudelloFetchOrgUser`, `zudelloCreateOrgUser`, `zudelloUpdateOrgUser`, `zudelloAssignUserToTeam`
508
- - Groups: `zudelloListOrgUserGroups`
509
-
510
- ### Notifications (3 tools)
511
- - `zudelloListNotificationTypes` - List notification types
512
- - `zudelloGetNotificationPreferences` - Get user preferences
513
- - `zudelloUpdateNotificationPreferences` - Update preferences
514
-
515
- ### Exception Reasons (6 tools)
516
- - Budget: `zudelloListBudgetExceptionReasons`, `zudelloCreateBudgetExceptionReason`, `zudelloUpdateBudgetExceptionReason`
517
- - Contract: `zudelloListContractExceptionReasons`, `zudelloCreateContractExceptionReason`, `zudelloUpdateContractExceptionReason`
178
+ ### Additional Categories
179
+ - **Trigger & Sync Control** (2 tools) - Enable/disable triggers, initiate syncs
180
+ - **Bulk Operations** (2 tools) - Bulk approve milestones, send reminders
181
+ - **Approval Workflows** (1 tool) - View approval configurations
182
+ - **Users & Groups** (2 tools) - Get users and user groups
183
+ - **Admin Tools** (13 tools) - Datasets, fields, quick actions
184
+ - **Documents** (12 tools) - Export templates, document types
185
+ - **Organization Admin** (9 tools) - Teams, users, groups management
186
+ - **Notifications** (3 tools) - Notification preferences
187
+ - **Exception Reasons** (6 tools) - Budget and contract exceptions
188
+ - **Language** (2 tools) - Custom terminology management
189
+ - **Document Context** (2 tools) - Budget and contract validation
190
+ - **Inbox Management** (8 tools) - Email inbox configuration
191
+ - **Document Statuses** (5 tools) - Status management
192
+ - **History** (1 tool) - Audit trail access
193
+
194
+ For a complete catalog of all 106 tools with detailed descriptions and parameters, see [TOOL_CATALOG.md](./TOOL_CATALOG.md).
518
195
 
519
- ### Language Placeholders (2 tools)
520
- - `zudelloGetLanguagePlaceholders` - Get custom terminology labels
521
- - `zudelloUpdateLanguagePlaceholders` - Update terminology
522
-
523
- ### Inbox Management (8 tools)
524
- - Domain: `zudelloGetInboundDomain`
525
- - Inboxes: `zudelloListInboxes`, `zudelloFetchInbox`, `zudelloCreateInbox`, `zudelloUpdateInbox`
526
- - Templates: `zudelloListInboxTemplates`, `zudelloCreateInboxTemplate`, `zudelloUpdateInboxTemplate`
527
-
528
- ### Document Context (2 tools)
529
- - `zudelloCheckDocumentBudgets` - Validate document against budgets
530
- - `zudelloCheckContractPricing` - Check contract pricing compliance
531
-
532
- ### Document Statuses (5 tools)
533
- - Read: `zudelloListStatuses`, `zudelloGetStatus`
534
- - Write: `zudelloCreateStatus`, `zudelloUpdateStatus`, `zudelloReorderStatuses`
535
-
536
- ## Development
196
+ ## Tool Approval Metadata
537
197
 
538
- ```bash
539
- # Development mode with auto-reload
540
- npm run dev
198
+ Write tools (41 total) return approval metadata with risk levels:
541
199
 
542
- # Type check
543
- npm run typecheck
200
+ ### High Risk (11 tools)
201
+ Operations that can significantly impact system behavior or data:
202
+ - Trigger/sync control, critical updates, org user creation
544
203
 
545
- # Build
546
- npm run build
547
- ```
204
+ ### Medium Risk (24 tools)
205
+ Creation operations and bulk actions:
206
+ - Creating resources, bulk operations, org admin tasks
548
207
 
549
- ## Architecture
208
+ ### Low Risk (6 tools)
209
+ Safe operations with minimal impact:
210
+ - Reorder operations, notification preferences, exports
550
211
 
551
- ```
552
- app-mcp/
553
- ├── src/
554
- │ ├── index.ts # MCP server entry point
555
- │ ├── context/
556
- │ │ └── auth.ts # Multi-tenant authentication
557
- │ ├── tools/ # 106 tool implementations
558
- │ │ ├── core/ # Core operations (3)
559
- │ │ ├── models/ # Model discovery (5)
560
- │ │ ├── config/ # Configuration (5)
561
- │ │ ├── resources/ # Resource operations (2)
562
- │ │ ├── sentences/ # Automation rules (8)
563
- │ │ ├── history/ # History (1)
564
- │ │ ├── automation/ # Automation system (10)
565
- │ │ ├── connections/ # Connections (5)
566
- │ │ ├── control/ # Trigger/sync control (2)
567
- │ │ ├── bulk/ # Bulk operations (2)
568
- │ │ ├── approvals/ # Approval workflows (1)
569
- │ │ ├── users/ # Users & groups (2)
570
- │ │ ├── admin/ # Datasets, fields, quick actions (13)
571
- │ │ ├── documents/ # Export templates, document types (12)
572
- │ │ ├── org-admin/ # Organization admin (9)
573
- │ │ ├── notifications/ # Notifications (3)
574
- │ │ ├── exceptions/ # Exception reasons (6)
575
- │ │ ├── language/ # Language placeholders (2)
576
- │ │ ├── document-context/ # Document validation (2)
577
- │ │ ├── inboxes/ # Inbox management (8)
578
- │ │ └── statuses/ # Document statuses (5)
579
- │ ├── services/
580
- │ │ └── zudello/ # Zudello API service layer
581
- │ │ ├── core.ts # Auth and base request building
582
- │ │ ├── resources.ts # Resource CRUD
583
- │ │ ├── automation.ts # Automation operations
584
- │ │ ├── sentences.ts # Sentence operations
585
- │ │ ├── documents.ts # Document operations
586
- │ │ ├── organization.ts # Org admin operations
587
- │ │ ├── notifications.ts
588
- │ │ ├── language.ts
589
- │ │ ├── document-context.ts
590
- │ │ ├── inboxes.ts
591
- │ │ └── types.ts # Service type definitions
592
- │ ├── constants/
593
- │ │ └── zudello.ts # Zudello constants (1807 lines)
594
- │ ├── utils/
595
- │ │ └── logger.ts # Structured logging
596
- │ └── types/
597
- │ └── index.ts # TypeScript type definitions
598
- └── dist/ # Compiled JavaScript (ESM)
212
+ Approval metadata structure:
213
+ ```typescript
214
+ {
215
+ requiresApproval: boolean,
216
+ operation: string,
217
+ riskLevel: "low" | "medium" | "high",
218
+ reason: string,
219
+ affectedResources?: string[],
220
+ pendingAction?: any
221
+ }
599
222
  ```
600
223
 
601
- ## Tool Approval Metadata
224
+ ## Troubleshooting
602
225
 
603
- Write tools (41 total) return approval metadata with risk levels:
226
+ ### "Server not found" or "Connection failed"
227
+ - Verify npx is available: `npx --version`
228
+ - Check your internet connection (npx may need to download the package)
229
+ - Try global installation: `npm install -g @zudello/modelcontextprotocol`
604
230
 
605
- ### High Risk (11 tools)
606
- - Trigger/sync control (2): `zudelloSetTriggerEnabled`, `zudelloInitiateSync`
607
- - Config/resources (2): `zudelloUpdateConfig`, `zudelloUpdateOrCreateResources`
608
- - Automation (1): `zudelloUpdateSentence`
609
- - Datasets/fields (2): `zudelloUpdateDataset`, `zudelloUpdateField`
610
- - Quick actions (2): `zudelloUpdateQuickAction`, `zudelloTriggerQuickAction`
611
- - Document types (1): `zudelloUpdateDocumentType`
612
- - Org admin (1): `zudelloCreateOrgUser`
613
-
614
- ### Medium Risk (24 tools)
615
- - Configuration (1): `zudelloCreateConfig`
616
- - Automation (1): `zudelloCreateSentence`
617
- - Bulk operations (2): `zudelloBulkApproveMilestones`, `zudelloBulkSendReminders`
618
- - Admin tools (6): Create/update datasets, fields, statuses, quick actions, export templates, document types
619
- - Org admin (2): `zudelloUpdateOrgUser`, `zudelloUpdateOrgTeam`
620
- - Exception reasons (4): Create/update budget and contract exceptions
621
- - Language (1): `zudelloUpdateLanguagePlaceholders`
622
- - Inboxes (4): Create/update inboxes and templates
623
- - Document types (1): `zudelloCreateDocumentType`
624
- - Statuses (2): `zudelloCreateStatus`, `zudelloUpdateStatus`
231
+ ### "Invalid credentials" or authentication errors
232
+ - Verify your ZUDELLO_TOKEN starts with "eyJ"
233
+ - Check ORGANIZATION and TEAM UUIDs are correct format
234
+ - Confirm CLUSTER_URL matches your Zudello instance region
625
235
 
626
- ### Low Risk (6 tools)
627
- - Reorder operations (3): Configs, sentences, statuses
628
- - Notifications (1): `zudelloUpdateNotificationPreferences`
629
- - Push message (1): `zudelloPushMessage`
630
- - Export (1): `zudelloRunExport`
236
+ ### Changes not taking effect
237
+ - Always restart Claude Desktop/Code after config changes
238
+ - Verify the config file is in the correct location
239
+ - Check for JSON syntax errors in your config file
631
240
 
632
- ## Migration from inapp-chat
241
+ ### Enable debug logging
242
+ Set `LOG_LEVEL=debug` in your environment variables to see detailed logs.
633
243
 
634
- This MCP server is a complete migration of all 106 Zudello tools from the inapp-chat Next.js application. Key changes:
244
+ ## Documentation
635
245
 
636
- 1. **Tool Format**: Migrated from AI SDK format to MCP format
637
- 2. **Authentication**: Changed from Next.js context to explicit AuthContext parameter
638
- 3. **Approval Pattern**: Converted from AI SDK `needsApproval` to MCP `requiresApproval` with `approvalMetadata`
639
- 4. **Service Layer**: Modified to accept AuthContext as first parameter
640
- 5. **Module System**: Converted to ESM with `.js` extensions in imports
246
+ - [Tool Catalog](./TOOL_CATALOG.md) - Complete reference of all 106 tools
247
+ - [Development Guide](./DEVELOPMENT.md) - For contributors and local development
248
+ - [Publishing Guide](./PUBLISHING.md) - For package maintainers
641
249
 
642
- ## Testing
250
+ ## Development
643
251
 
644
- The MCP server can be tested by:
645
- 1. Running `npm run build` to ensure all tools compile
646
- 2. Configuring Claude Desktop with the server
647
- 3. Testing tool calls through Claude Desktop
252
+ See [DEVELOPMENT.md](./DEVELOPMENT.md) for instructions on:
253
+ - Cloning and building from source
254
+ - Development workflow
255
+ - Running locally
256
+ - Contributing
648
257
 
649
258
  ## Publishing
650
259
 
651
260
  This package is automatically published to npm when code is pushed to the `main` branch via GitHub Actions.
652
261
 
653
- For detailed information about:
654
- - Setting up npm authentication
655
- - Version management
656
- - Manual publishing
657
- - Troubleshooting
658
-
659
- See [PUBLISHING.md](./PUBLISHING.md)
262
+ For manual publishing instructions, see [PUBLISHING.md](./PUBLISHING.md).
660
263
 
661
264
  ## License
662
265