You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Contributing
2
2
3
-
Thanks for your interest in contributing to the Iterable MCP Server! We welcome bug reports, feature requests, and pull requests. If you find a bug or have an idea, please [open an issue](https://github.com/Iterable/mcp-server/issues).
3
+
Thanks for your interest in contributing to the Iterable MCP Server! We welcome bug reports, feature requests, and [pull requests](https://github.com/Iterable/mcp-server/pulls). If you find a bug or have an idea, please [open an issue](https://github.com/Iterable/mcp-server/issues).
4
4
5
5
## Prerequisites
6
6
@@ -12,7 +12,7 @@ Thanks for your interest in contributing to the Iterable MCP Server! We welcome
12
12
To test changes locally, clone the repo and use one of the `install-dev` scripts. This builds the project and links it as a local MCP server in your AI client, so you can test your changes without publishing to npm.
pnpm install-dev:cursor # or install-dev:claude-desktop, install-dev:claude-code, install-dev:gemini-cli, install-dev:windsurf, install-dev:antigravity
18
18
```
@@ -25,7 +25,7 @@ pnpm install-dev:cursor:debug
25
25
26
26
## Project structure
27
27
28
-
MCP tools live in `src/tools/`, one file per domain (campaigns, templates, catalogs, etc.). Each file exports a creator function that returns an array of MCP `Tool` definitions. These are registered in `src/tools/index.ts` via the `TOOL_CREATORS_BY_CATEGORY` array — adding a tool to the appropriate domain file is all that's needed for it to be picked up.
28
+
MCP tools live in `src/tools/`, one file per domain (campaigns, templates, catalogs, etc.). Each file exports a creator function that returns an array of MCP `Tool` definitions. These are registered in `src/tools/index.ts` via the `TOOL_CREATORS_BY_CATEGORY` array, so adding a tool to the appropriate domain file is all that's needed for it to be picked up.
29
29
30
30
Tool visibility is controlled by `src/tool-filter.ts`, which uses safe-lists to gate tools based on the `ITERABLE_USER_PII`, `ITERABLE_ENABLE_WRITES`, and `ITERABLE_ENABLE_SENDS` permission flags.
Copy file name to clipboardExpand all lines: README.md
+27-27Lines changed: 27 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -55,7 +55,7 @@ Note that permission settings are saved per key (see key management section belo
55
55
56
56
## What you can do
57
57
58
-
See [TOOLS.md](TOOLS.md) for all available tools with descriptions. All tools map directly to [Iterable API endpoints](https://api.iterable.com/api/docs).
58
+
See the [available tools](TOOLS.md) for all tools with descriptions. All tools map directly to [Iterable API endpoints](https://api.iterable.com/api/docs).
59
59
60
60
Try these prompts:
61
61
-*"Get details on campaign 12345"*
@@ -94,11 +94,12 @@ npx @iterable/mcp keys add
94
94
npx @iterable/mcp keys activate production
95
95
npx @iterable/mcp keys activate staging
96
96
97
+
# Update an existing key (interactive: prompts for new values)
98
+
npx @iterable/mcp keys update <name-or-id>
99
+
97
100
# Delete a key by ID (requires ID for safety)
98
101
# Note: Cannot delete the currently active key - activate another first
99
102
npx @iterable/mcp keys delete <key-id>
100
-
101
-
# To update a key: delete the old one and add a new one with the same name
If you have already configured Claude Desktop successfully, you can run this command to copy your MCP server settings to Claude Code:
@@ -224,17 +219,17 @@ No `env` section is needed if using the key manager.
224
219
225
220
### Environment variables
226
221
227
-
The setup wizard and key manager handle most of these automatically. Setting environment variables directly is useful for CI/CD pipelines, Docker containers, or other non-interactive environments where the key manager isn't available. When both are present, key manager settings take precedence over environment variables.
222
+
Variables marked as **managed** are automatically configured by the key manager. They take precedence over environment variables when both are present. Setting environment variables directly is useful for CI/CD pipelines, Docker containers, or other non-interactive environments where the key manager isn't available.
228
223
229
-
| Variable |Required| Description |
230
-
|----------|----------|-------------|
231
-
|`ITERABLE_API_KEY`|No*| Your Iterable API key (*Optional if using key manager, otherwise required)|
232
-
|`ITERABLE_BASE_URL`|No**| Base URL for the Iterable API (**Not needed when using key manager - URL is stored with each key) |
233
-
|`ITERABLE_DEBUG`|No| Set to `true`for API request logging|
234
-
|`LOG_LEVEL`|No| Set to `debug` for troubleshooting|
235
-
|`ITERABLE_USER_PII`|No| Set to `true` to enable tools that access user PII data (default: `false`) |
236
-
|`ITERABLE_ENABLE_WRITES`|No | Set to `true`to enable tools that perform write operations (default: `false`)|
237
-
|`ITERABLE_ENABLE_SENDS`|No | Set to `true` to enable tools that can send messages (default: `false`). Requires writes to be enabled|
224
+
| Variable |Managed| Description |
225
+
|----------|-------------|-------------|
226
+
|`ITERABLE_API_KEY`|✅| Your Iterable API key. Required if not using key manager |
227
+
|`ITERABLE_BASE_URL`|✅| Base URL for the Iterable API (default: `https://api.iterable.com`) |
228
+
|`ITERABLE_USER_PII`|✅| Set to `true`to enable tools that access user PII data (default: `false`)|
229
+
|`ITERABLE_ENABLE_WRITES`|✅| Set to `true` to enable tools that perform write operations (default: `false`)|
230
+
|`ITERABLE_ENABLE_SENDS`|✅| Set to `true` to enable tools that can send messages (default: `false`). Requires writes to be enabled|
231
+
|`ITERABLE_DEBUG`|| Set to `true`for API request logging|
232
+
|`LOG_LEVEL`|| Set to `debug` for troubleshooting|
238
233
239
234
### Custom endpoints
240
235
@@ -253,13 +248,13 @@ The setup wizard and key manager handle most of these automatically. Setting env
253
248
254
249
#### Windsurf (Codeium)
255
250
256
-
**Tool limit:** Windsurf has a [maximum limit of 100 tools](https://docs.windsurf.com/windsurf/cascade/mcp) that Cascade can access at any given time. When all permissions are enabled (`ITERABLE_USER_PII=true`, `ITERABLE_ENABLE_WRITES=true`, `ITERABLE_ENABLE_SENDS=true`), the Iterable MCP server exposes **104 tools**, which exceeds this limit.
251
+
**Tool limit:** Windsurf has a [maximum limit of 100 tools](https://docs.windsurf.com/windsurf/cascade/mcp) that Cascade can access at any given time. When all permissions are enabled (`ITERABLE_USER_PII=true`, `ITERABLE_ENABLE_WRITES=true`, `ITERABLE_ENABLE_SENDS=true`), the Iterable MCP server exposes **105 tools**, which exceeds this limit.
257
252
258
253
**Workaround:** Use restricted permissions to stay under the 100-tool limit:
259
254
- With default permissions (all disabled): 26 tools ✅
260
255
- With PII only: 37 tools ✅
261
-
- With PII + writes: 86 tools ✅
262
-
- With all permissions: 104 tools ❌ (exceeds Windsurf limit)
256
+
- With PII + writes: 87 tools ✅
257
+
- With all permissions: 105 tools ❌ (exceeds Windsurf limit)
**Tool limit:** Antigravity has a maximum limit of 100 tools per MCP server. When all permissions are enabled (`ITERABLE_USER_PII=true`, `ITERABLE_ENABLE_WRITES=true`, `ITERABLE_ENABLE_SENDS=true`), the Iterable MCP server exposes **104 tools**, which exceeds this limit.
273
+
**Tool limit:** Antigravity has a maximum limit of 100 tools per MCP server. When all permissions are enabled (`ITERABLE_USER_PII=true`, `ITERABLE_ENABLE_WRITES=true`, `ITERABLE_ENABLE_SENDS=true`), the Iterable MCP server exposes **105 tools**, which exceeds this limit.
279
274
280
275
**Workaround:** Use restricted permissions to stay under the 100-tool limit:
281
276
- With default permissions (all disabled): 26 tools ✅
282
277
- With PII only: 37 tools ✅
283
-
- With PII + writes: 86 tools ✅
284
-
- With all permissions: 104 tools ❌ (exceeds Antigravity limit)
278
+
- With PII + writes: 87 tools ✅
279
+
- With all permissions: 105 tools ❌ (exceeds Antigravity limit)
0 commit comments