@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.
- package/README.md +115 -512
- package/dist/services/zudello/admin.d.ts +124 -74
- package/dist/services/zudello/admin.d.ts.map +1 -1
- package/dist/services/zudello/admin.js +443 -112
- package/dist/services/zudello/admin.js.map +1 -1
- package/dist/services/zudello/document-context.js +2 -2
- package/dist/services/zudello/document-context.js.map +1 -1
- package/dist/services/zudello/inboxes.d.ts +88 -7
- package/dist/services/zudello/inboxes.d.ts.map +1 -1
- package/dist/services/zudello/inboxes.js +317 -34
- package/dist/services/zudello/inboxes.js.map +1 -1
- package/dist/services/zudello/users.d.ts +36 -6
- package/dist/services/zudello/users.d.ts.map +1 -1
- package/dist/services/zudello/users.js +183 -82
- package/dist/services/zudello/users.js.map +1 -1
- package/dist/tools/admin/datasets/create-dataset.d.ts +35 -7
- package/dist/tools/admin/datasets/create-dataset.d.ts.map +1 -1
- package/dist/tools/admin/datasets/create-dataset.js +25 -18
- package/dist/tools/admin/datasets/create-dataset.js.map +1 -1
- package/dist/tools/admin/datasets/get-dataset.d.ts +1 -1
- package/dist/tools/admin/datasets/list-datasets.d.ts +2 -4
- package/dist/tools/admin/datasets/list-datasets.d.ts.map +1 -1
- package/dist/tools/admin/datasets/list-datasets.js +11 -8
- package/dist/tools/admin/datasets/list-datasets.js.map +1 -1
- package/dist/tools/admin/datasets/update-dataset.d.ts +39 -6
- package/dist/tools/admin/datasets/update-dataset.d.ts.map +1 -1
- package/dist/tools/admin/datasets/update-dataset.js +27 -15
- package/dist/tools/admin/datasets/update-dataset.js.map +1 -1
- package/dist/tools/admin/fields/create-field.d.ts +7 -17
- package/dist/tools/admin/fields/create-field.d.ts.map +1 -1
- package/dist/tools/admin/fields/create-field.js +15 -26
- package/dist/tools/admin/fields/create-field.js.map +1 -1
- package/dist/tools/admin/fields/get-field.d.ts +1 -1
- package/dist/tools/admin/fields/list-fields.d.ts +3 -5
- package/dist/tools/admin/fields/list-fields.d.ts.map +1 -1
- package/dist/tools/admin/fields/list-fields.js +14 -12
- package/dist/tools/admin/fields/list-fields.js.map +1 -1
- package/dist/tools/admin/fields/update-field.d.ts +11 -6
- package/dist/tools/admin/fields/update-field.d.ts.map +1 -1
- package/dist/tools/admin/fields/update-field.js +20 -16
- package/dist/tools/admin/fields/update-field.js.map +1 -1
- package/dist/tools/admin/quick-actions/create-quick-action.d.ts +9 -9
- package/dist/tools/admin/quick-actions/create-quick-action.d.ts.map +1 -1
- package/dist/tools/admin/quick-actions/create-quick-action.js +18 -18
- package/dist/tools/admin/quick-actions/create-quick-action.js.map +1 -1
- package/dist/tools/admin/quick-actions/get-quick-action.d.ts +1 -1
- package/dist/tools/admin/quick-actions/list-quick-actions.d.ts +4 -3
- package/dist/tools/admin/quick-actions/list-quick-actions.d.ts.map +1 -1
- package/dist/tools/admin/quick-actions/list-quick-actions.js +11 -10
- package/dist/tools/admin/quick-actions/list-quick-actions.js.map +1 -1
- package/dist/tools/admin/quick-actions/trigger-quick-action.d.ts +4 -6
- package/dist/tools/admin/quick-actions/trigger-quick-action.d.ts.map +1 -1
- package/dist/tools/admin/quick-actions/trigger-quick-action.js +15 -9
- package/dist/tools/admin/quick-actions/trigger-quick-action.js.map +1 -1
- package/dist/tools/admin/quick-actions/update-quick-action.d.ts +11 -6
- package/dist/tools/admin/quick-actions/update-quick-action.d.ts.map +1 -1
- package/dist/tools/admin/quick-actions/update-quick-action.js +19 -14
- package/dist/tools/admin/quick-actions/update-quick-action.js.map +1 -1
- package/dist/tools/inboxes/create-inbox-template.d.ts +1 -1
- package/dist/tools/inboxes/create-inbox.d.ts +1 -1
- package/dist/tools/inboxes/fetch-inbox.d.ts +1 -1
- package/dist/tools/inboxes/list-inbox-templates.d.ts +1 -1
- package/dist/tools/inboxes/list-inboxes.d.ts +1 -1
- package/dist/tools/inboxes/update-inbox-template.d.ts +1 -1
- package/dist/tools/inboxes/update-inbox.d.ts +1 -1
- package/dist/tools/inboxes/update-inbox.d.ts.map +1 -1
- package/dist/tools/inboxes/update-inbox.js +3 -2
- package/dist/tools/inboxes/update-inbox.js.map +1 -1
- 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
|
|
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
|
-
|
|
22
|
-
npm install
|
|
23
|
-
npm run build
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Configuration
|
|
27
|
-
|
|
28
|
-
### Environment Variables
|
|
17
|
+
### Using npx (Recommended)
|
|
29
18
|
|
|
30
|
-
|
|
19
|
+
No installation required - use directly with npx:
|
|
31
20
|
|
|
32
21
|
```bash
|
|
33
|
-
|
|
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
|
-
###
|
|
113
|
-
|
|
114
|
-
**IMPORTANT**: Always use absolute paths (not `~` or relative paths) in your configuration.
|
|
25
|
+
### Global Installation
|
|
115
26
|
|
|
116
|
-
|
|
27
|
+
Install globally to use without npx prefix:
|
|
117
28
|
|
|
118
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
37
|
+
You'll need the following from your Zudello account:
|
|
160
38
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
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.
|
|
46
|
+
### 2. Configure Claude Desktop
|
|
169
47
|
|
|
170
|
-
|
|
48
|
+
Add the MCP server to your Claude Desktop configuration file:
|
|
171
49
|
|
|
172
|
-
|
|
173
|
-
|
|
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
|
-
|
|
53
|
+
#### Linux
|
|
54
|
+
File location: `~/.config/claude/claude_desktop_config.json`
|
|
177
55
|
|
|
178
|
-
|
|
179
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
80
|
+
Add the MCP server to your Claude Code configuration file:
|
|
274
81
|
|
|
275
|
-
|
|
82
|
+
#### macOS/Linux
|
|
83
|
+
File location: `~/.config/claude-code/mcp_servers.json`
|
|
276
84
|
|
|
277
|
-
####
|
|
278
|
-
|
|
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
|
-
|
|
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
|
-
|
|
316
|
-
|
|
317
|
-
For maintainers who want to publish this package to npm:
|
|
107
|
+
### 4. Restart Claude
|
|
318
108
|
|
|
319
|
-
|
|
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
|
-
|
|
331
|
-
npm version patch # or minor, major
|
|
332
|
-
# This updates package.json and creates a git tag
|
|
111
|
+
### 5. Verify Installation
|
|
333
112
|
|
|
334
|
-
|
|
335
|
-
npm run build
|
|
336
|
-
npm run typecheck
|
|
113
|
+
Ask Claude: "What Zudello MCP tools are available?"
|
|
337
114
|
|
|
338
|
-
|
|
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
|
-
|
|
344
|
-
npm publish --access public
|
|
345
|
-
# Use --access public for scoped packages (@zudello/*)
|
|
117
|
+
## Configuration Details
|
|
346
118
|
|
|
347
|
-
|
|
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
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
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 (
|
|
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:
|
|
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`
|
|
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
|
-
###
|
|
471
|
-
-
|
|
472
|
-
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
-
|
|
476
|
-
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
-
|
|
483
|
-
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
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
|
-
|
|
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
|
-
|
|
539
|
-
# Development mode with auto-reload
|
|
540
|
-
npm run dev
|
|
198
|
+
Write tools (41 total) return approval metadata with risk levels:
|
|
541
199
|
|
|
542
|
-
|
|
543
|
-
|
|
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
|
-
|
|
546
|
-
|
|
547
|
-
|
|
204
|
+
### Medium Risk (24 tools)
|
|
205
|
+
Creation operations and bulk actions:
|
|
206
|
+
- Creating resources, bulk operations, org admin tasks
|
|
548
207
|
|
|
549
|
-
|
|
208
|
+
### Low Risk (6 tools)
|
|
209
|
+
Safe operations with minimal impact:
|
|
210
|
+
- Reorder operations, notification preferences, exports
|
|
550
211
|
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
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
|
-
##
|
|
224
|
+
## Troubleshooting
|
|
602
225
|
|
|
603
|
-
|
|
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
|
-
###
|
|
606
|
-
-
|
|
607
|
-
-
|
|
608
|
-
-
|
|
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
|
-
###
|
|
627
|
-
-
|
|
628
|
-
-
|
|
629
|
-
-
|
|
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
|
-
|
|
241
|
+
### Enable debug logging
|
|
242
|
+
Set `LOG_LEVEL=debug` in your environment variables to see detailed logs.
|
|
633
243
|
|
|
634
|
-
|
|
244
|
+
## Documentation
|
|
635
245
|
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
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
|
-
##
|
|
250
|
+
## Development
|
|
643
251
|
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
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
|
|
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
|
|