@entergram/mcp 0.1.0 → 0.1.2

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 (2) hide show
  1. package/README.md +36 -151
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -2,26 +2,19 @@
2
2
 
3
3
  Official npm CLI for connecting local MCP hosts to the public Entergram MCP gateway.
4
4
 
5
- This package is for local MCP hosts that can only launch local commands, such as Codex, Claude Desktop, and similar tools. It handles:
5
+ Use this package when your MCP host can launch a local command but cannot connect directly to Entergram over OAuth on its own. `entergram-mcp` handles:
6
6
 
7
- - OAuth login against the Entergram MCP gateway
8
- - secure local token storage
9
- - a local `stdio` bridge that proxies requests to the public Entergram MCP gateway
10
- - ready-to-paste host config snippets
11
-
12
- Architecture:
13
-
14
- `Local MCP host -> entergram-mcp (stdio bridge) -> Entergram MCP gateway -> Entergram Public API`
7
+ - OAuth login
8
+ - local token storage
9
+ - a local `stdio` bridge for MCP hosts such as Codex and Claude Desktop
15
10
 
16
11
  ## Install
17
12
 
18
- Global install:
19
-
20
13
  ```bash
21
14
  npm install -g @entergram/mcp
22
15
  ```
23
16
 
24
- Or run it on demand:
17
+ Or run it without a global install:
25
18
 
26
19
  ```bash
27
20
  npx -y @entergram/mcp serve
@@ -43,7 +36,7 @@ entergram-mcp login --env dev
43
36
  entergram-mcp serve --env dev
44
37
  ```
45
38
 
46
- If you use a non-default OAuth client, pass it explicitly during login and in your MCP host config:
39
+ If you use a custom OAuth client, pass it explicitly:
47
40
 
48
41
  ```bash
49
42
  entergram-mcp login --env dev --client-id entergram-ws-your-client-id
@@ -51,86 +44,42 @@ entergram-mcp login --env dev --client-id entergram-ws-your-client-id
51
44
 
52
45
  ## Commands
53
46
 
54
- Show help:
55
-
56
47
  ```bash
57
48
  entergram-mcp --help
58
- ```
59
-
60
- Login:
61
-
62
- ```bash
63
49
  entergram-mcp login
64
- entergram-mcp login --env dev
65
- entergram-mcp login --env dev --client-id entergram-ws-your-client-id
66
- ```
67
-
68
- Start the local bridge:
69
-
70
- ```bash
71
- entergram-mcp serve
72
- entergram-mcp serve --env dev
73
- ```
74
-
75
- Show the currently authenticated actor:
76
-
77
- ```bash
78
50
  entergram-mcp whoami
79
- ```
80
-
81
- Clear the local session for the selected environment and client:
82
-
83
- ```bash
84
51
  entergram-mcp logout
85
- entergram-mcp logout --env dev --client-id entergram-ws-your-client-id
52
+ entergram-mcp serve
53
+ entergram-mcp print-config
86
54
  ```
87
55
 
88
- Print a host config snippet:
56
+ Useful flags:
89
57
 
90
- ```bash
91
- entergram-mcp print-config
92
- entergram-mcp print-config --format toml
93
- entergram-mcp print-config --env dev --client-id entergram-ws-your-client-id --format toml
94
- ```
58
+ - `--env dev|production`
59
+ - `--client-id ...`
60
+ - `--scope "..."`
61
+ - `--format json|toml`
95
62
 
96
63
  ## Host Config
97
64
 
98
- ### JSON hosts
65
+ For JSON-based MCP hosts:
99
66
 
100
67
  ```bash
101
68
  entergram-mcp print-config --name entergram
102
69
  ```
103
70
 
104
- Example output:
105
-
106
- ```json
107
- {
108
- "mcpServers": {
109
- "entergram": {
110
- "command": "npx",
111
- "args": ["-y", "@entergram/mcp", "serve"],
112
- "env": {
113
- "ENTERGRAM_MCP_ENV": "production",
114
- "ENTERGRAM_MCP_CLIENT_ID": "entergram-mcp-cli",
115
- "ENTERGRAM_MCP_SCOPE": "workspace.read members.read accounts.read contacts.read chats.read messages.read messages.write custom_fields.read custom_fields.write tickets.read offline_access"
116
- }
117
- }
118
- }
119
- }
120
- ```
121
-
122
- ### TOML hosts such as Codex
71
+ For TOML-based hosts such as Codex:
123
72
 
124
73
  ```bash
125
- entergram-mcp print-config --format toml --name entergram-dev --env dev --client-id entergram-ws-your-client-id
74
+ entergram-mcp print-config --format toml --name entergram-dev
126
75
  ```
127
76
 
128
- Example output:
77
+ Example TOML config:
129
78
 
130
79
  ```toml
131
80
  [mcp_servers.entergram-dev]
132
- command = "npx"
133
- args = ["-y", "@entergram/mcp", "serve"]
81
+ command = "entergram-mcp"
82
+ args = ["serve"]
134
83
 
135
84
  [mcp_servers.entergram-dev.env]
136
85
  ENTERGRAM_MCP_ENV = "dev"
@@ -138,30 +87,7 @@ ENTERGRAM_MCP_CLIENT_ID = "entergram-ws-your-client-id"
138
87
  ENTERGRAM_MCP_SCOPE = "workspace.read members.read accounts.read contacts.read chats.read messages.read messages.write custom_fields.read custom_fields.write tickets.read offline_access"
139
88
  ```
140
89
 
141
- If your host already uses the globally installed binary, you can replace the command section with:
142
-
143
- ```toml
144
- [mcp_servers.entergram-dev]
145
- command = "entergram-mcp"
146
- args = ["serve"]
147
- ```
148
-
149
- ## Environment Overrides
150
-
151
- You can override the built-in defaults with environment variables:
152
-
153
- - `ENTERGRAM_MCP_ENV`
154
- - `ENTERGRAM_MCP_GATEWAY_URL`
155
- - `ENTERGRAM_MCP_CLIENT_ID`
156
- - `ENTERGRAM_MCP_SCOPE`
157
- - `ENTERGRAM_MCP_CALLBACK_PORT`
158
- - `ENTERGRAM_MCP_CONFIG_DIR`
159
-
160
- Default local OAuth callback:
161
-
162
- `http://127.0.0.1:8787/oauth/callback`
163
-
164
- ## Built-in Environments
90
+ ## Defaults
165
91
 
166
92
  Production:
167
93
 
@@ -173,94 +99,53 @@ Development:
173
99
  - gateway: `https://devmcp.entergram.com/mcp`
174
100
  - client id: `entergram-dev-mcp-client`
175
101
 
176
- ## Local Session Storage
177
-
178
- By default, Entergram MCP stores local session files in:
102
+ Default local OAuth callback:
179
103
 
180
- `~/.entergram-mcp/`
104
+ `http://127.0.0.1:8787/oauth/callback`
181
105
 
182
- Each environment and client id gets its own session file, so you can keep separate sessions for:
106
+ Session files are stored in:
183
107
 
184
- - production vs dev
185
- - personal vs workspace OAuth clients
186
- - multiple workspace clients with different scopes
108
+ `~/.entergram-mcp/`
187
109
 
188
- ## Choosing the Right OAuth Client
110
+ ## Choosing a Client
189
111
 
190
- Use a personal client when you want a seat-scoped local agent with safer read-only access.
112
+ Use a personal client for seat-scoped access.
191
113
 
192
- Use a workspace client when you need broader scopes such as:
114
+ Use a workspace client if you need broader scopes such as:
193
115
 
194
116
  - `members.read`
195
117
  - `messages.write`
196
118
  - `custom_fields.read`
197
119
  - `custom_fields.write`
198
120
 
199
- If your consent screen does not show the scopes you expect, the OAuth client itself is missing those `allowedScopes`. Update the client in Entergram first, then run login again.
121
+ If the consent screen does not show the scopes you expect, update that OAuth client's `allowedScopes` in Entergram first, then run login again.
200
122
 
201
123
  ## Troubleshooting
202
124
 
203
- ### `invalid_scope`
204
-
205
- The selected OAuth client does not allow one or more requested scopes.
206
-
207
- Fix:
208
-
209
- 1. update the OAuth client in Entergram so its `allowedScopes` include the requested scopes
210
- 2. run `entergram-mcp login` again
211
-
212
- ### `MCP startup failed: handshaking with MCP server failed`
125
+ `invalid_scope`
213
126
 
214
- Your MCP host started the local bridge, but the bridge could not authenticate or connect cleanly to the remote Entergram MCP gateway.
127
+ - Your OAuth client does not allow one or more requested scopes.
128
+ - Update the client in Entergram, then run `entergram-mcp login` again.
215
129
 
216
- Fix:
130
+ `MCP startup failed: handshaking with MCP server failed`
217
131
 
218
- 1. run login first for the same environment and client id used by the host
219
- 2. make sure the host config includes the correct `ENTERGRAM_MCP_CLIENT_ID`
220
- 3. restart the MCP host after login
132
+ - Your MCP host started the local bridge, but the bridge could not authenticate with the remote gateway.
133
+ - Make sure you ran login first for the same `--env` and `--client-id` used by the host.
221
134
 
222
- ### `401` or expired token errors
135
+ `401` or expired token errors
223
136
 
224
- The local session is stale or no longer refreshable.
225
-
226
- Fix:
137
+ - Clear the local session and log in again:
227
138
 
228
139
  ```bash
229
140
  entergram-mcp logout --env dev --client-id entergram-ws-your-client-id
230
141
  entergram-mcp login --env dev --client-id entergram-ws-your-client-id
231
142
  ```
232
143
 
233
- ### Browser opens during MCP host startup
234
-
235
- For local MCP hosts, the intended flow is:
236
-
237
- 1. run `entergram-mcp login` yourself first
238
- 2. then let the host run `entergram-mcp serve`
239
-
240
- The bridge is designed to reuse an existing local session instead of performing interactive login during the MCP handshake.
241
-
242
144
  ## Development
243
145
 
244
- Build:
245
-
246
146
  ```bash
247
147
  npm run build
248
- ```
249
-
250
- Typecheck:
251
-
252
- ```bash
253
148
  npm run typecheck
254
- ```
255
-
256
- CLI smoke test:
257
-
258
- ```bash
259
149
  npm run smoke:cli
260
- ```
261
-
262
- Dry-run the publish tarball:
263
-
264
- ```bash
265
150
  npm run pack:dry-run
266
151
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entergram/mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "private": false,
5
5
  "description": "Official Entergram MCP CLI for local MCP hosts with OAuth login, stdio bridging, and host config helpers.",
6
6
  "type": "module",