@extrovert.dev/mcp 0.1.0-pre.4 → 0.1.0-pre.5
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 +38 -13
- package/dist/bin.d.ts +5 -7
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +63 -54
- package/dist/bin.js.map +1 -1
- package/dist/cli.d.ts +14 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +459 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +20 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +41 -8
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/contract.d.ts +2 -2
- package/dist/contract.js +2 -2
- package/dist/credentials.d.ts +41 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +203 -0
- package/dist/credentials.js.map +1 -0
- package/dist/fixtures.d.ts.map +1 -1
- package/dist/fixtures.js +23 -2
- package/dist/fixtures.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +7 -4
- package/dist/server.js.map +1 -1
- package/dist/stdio.d.ts.map +1 -1
- package/dist/stdio.js +24 -2
- package/dist/stdio.js.map +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +28 -6
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +18 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -12,6 +12,8 @@ persistent inbox on a domain Extrovert owns: created in one tool call, sends and
|
|
|
12
12
|
|
|
13
13
|
> **Prerelease status:** the package is published on npm under the `next` dist-tag. Extrovert also
|
|
14
14
|
> operates `https://mcp.extrovert.dev/mcp` as a stateless Streamable HTTP endpoint with browser OAuth.
|
|
15
|
+
> The same package installs `extrovert-mcp` for transports and `extrovert` for supported setup,
|
|
16
|
+
> authentication, mailbox, review-status, and reviewed-send commands.
|
|
15
17
|
|
|
16
18
|
The standout tool is **`wait_for_email`** — a blocking call that returns the next matching message
|
|
17
19
|
with the **OTP code and verification link already extracted**. Trigger a sign-in elsewhere, then act
|
|
@@ -90,10 +92,35 @@ npx -y @extrovert.dev/mcp@next
|
|
|
90
92
|
|
|
91
93
|
# inspect the packaged CLI
|
|
92
94
|
npx -y @extrovert.dev/mcp@next --help
|
|
95
|
+
|
|
96
|
+
# register the stdio server in Codex or Claude Code
|
|
97
|
+
npx -y @extrovert.dev/mcp@next setup --host codex
|
|
98
|
+
npx -y @extrovert.dev/mcp@next setup --host claude
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Pin `@extrovert.dev/mcp@0.1.0-pre.5` for a reproducible dogfood environment. The package installs the
|
|
102
|
+
`extrovert-mcp` and `extrovert` aliases over one entrypoint; there is no second package or transport
|
|
103
|
+
implementation to keep in sync.
|
|
104
|
+
|
|
105
|
+
### CLI fallback
|
|
106
|
+
|
|
107
|
+
The CLI uses the same typed client as MCP and prints ordinary message text without a `curl | jq`
|
|
108
|
+
pipeline:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
extrovert signup --human-email you@example.com --username support
|
|
112
|
+
extrovert verify # prompts for the emailed code
|
|
113
|
+
extrovert whoami
|
|
114
|
+
extrovert inbox list
|
|
115
|
+
extrovert message list --inbox support@smtp.extrovert.dev
|
|
116
|
+
extrovert message get msg_…
|
|
117
|
+
extrovert review status rr_…
|
|
93
118
|
```
|
|
94
119
|
|
|
95
|
-
|
|
96
|
-
`
|
|
120
|
+
`signup` stores the limited key only in `pending-signup.json`. `verify` atomically writes the full
|
|
121
|
+
replacement to `credentials.json` and deletes the pending file. On Unix the directory is mode `0700`
|
|
122
|
+
and both files are mode `0600`. The default is `~/.config/extrovert/`; use
|
|
123
|
+
`EXTROVERT_CONFIG_DIR` for an isolated or managed runtime. `EXTROVERT_API_KEY` always wins when set.
|
|
97
124
|
|
|
98
125
|
## Build and run from source
|
|
99
126
|
|
|
@@ -127,6 +154,7 @@ pnpm run dev -- --http # tsx watch, HTTP
|
|
|
127
154
|
|---|---|---|
|
|
128
155
|
| `EXTROVERT_API_BASE_URL` | `https://api.extrovert.dev` | Base URL of the Extrovert REST API. |
|
|
129
156
|
| `EXTROVERT_API_KEY` | *(empty)* | Scoped agent key (`pk_agent_…`) or enrollment key (`pk_enroll_…`). |
|
|
157
|
+
| `EXTROVERT_CONFIG_DIR` | platform config directory | Override the local credential directory. |
|
|
130
158
|
| `EXTROVERT_MOCK` | *(off)* | Set `1` to force offline fixtures. |
|
|
131
159
|
| `EXTROVERT_REQUEST_TIMEOUT_MS` | `30000` | Per-request timeout for non-blocking calls. |
|
|
132
160
|
| `EXTROVERT_MAX_WAIT_MS` | `300000` | Upper bound the server allows `wait_for_email` to block. |
|
|
@@ -136,7 +164,8 @@ pnpm run dev -- --http # tsx watch, HTTP
|
|
|
136
164
|
| `PORT` / `HOST` | `8787` / `0.0.0.0` | `--http` bind. |
|
|
137
165
|
|
|
138
166
|
> **Offline fixtures are opt-in.** With no `EXTROVERT_API_KEY`, the server still talks to the live
|
|
139
|
-
> API so an agent can start with `sign_up` and receive a limited key in-session.
|
|
167
|
+
> API so an agent can start with `sign_up` and receive a short-lived limited key in-session. The
|
|
168
|
+
> key expires with the OTP and is revoked when `verify_signup` returns its replacement. Set
|
|
140
169
|
> `EXTROVERT_MOCK=1` to use deterministic in-memory fixtures; `create_inbox`, `send_email`, and
|
|
141
170
|
> `wait_for_email` then operate on one coherent offline dataset.
|
|
142
171
|
|
|
@@ -151,23 +180,17 @@ Point any stdio-capable host at the prerelease package:
|
|
|
151
180
|
"mcpServers": {
|
|
152
181
|
"extrovert": {
|
|
153
182
|
"command": "npx",
|
|
154
|
-
"args": ["-y", "@extrovert.dev/mcp@next"]
|
|
155
|
-
"env": {
|
|
156
|
-
"EXTROVERT_API_BASE_URL": "https://api.extrovert.dev",
|
|
157
|
-
"EXTROVERT_API_KEY": "pk_agent_…"
|
|
158
|
-
}
|
|
183
|
+
"args": ["-y", "@extrovert.dev/mcp@next"]
|
|
159
184
|
}
|
|
160
185
|
}
|
|
161
186
|
}
|
|
162
187
|
```
|
|
163
188
|
|
|
164
|
-
For Claude Code, register that same local entrypoint:
|
|
189
|
+
For Codex or Claude Code, register that same local entrypoint:
|
|
165
190
|
|
|
166
191
|
```bash
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
--env EXTROVERT_API_KEY=pk_agent_… \
|
|
170
|
-
-- npx -y @extrovert.dev/mcp@next
|
|
192
|
+
npx -y @extrovert.dev/mcp@next setup --host codex
|
|
193
|
+
npx -y @extrovert.dev/mcp@next setup --host claude
|
|
171
194
|
```
|
|
172
195
|
|
|
173
196
|
> **Offline:** omit `EXTROVERT_API_KEY` and set `EXTROVERT_MOCK=1`; the packaged server uses
|
|
@@ -267,6 +290,8 @@ the production service refuses to start without OAuth enabled.
|
|
|
267
290
|
```text
|
|
268
291
|
src/
|
|
269
292
|
bin.ts CLI entrypoint (--http | stdio)
|
|
293
|
+
cli.ts setup/auth/signup/mailbox/review CLI using the typed client
|
|
294
|
+
credentials.ts permission-restricted, atomic local credential persistence
|
|
270
295
|
server.ts McpServer factory + instructions
|
|
271
296
|
stdio.ts stdio transport
|
|
272
297
|
http.ts stateless Streamable HTTP transport (Express, OAuth + scoped keys)
|
package/dist/bin.d.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* Extrovert MCP
|
|
3
|
+
* Extrovert MCP + CLI entrypoint.
|
|
4
4
|
*
|
|
5
|
-
* extrovert-mcp
|
|
6
|
-
* extrovert-mcp --http
|
|
7
|
-
* extrovert
|
|
8
|
-
*
|
|
9
|
-
* Configuration is read from the environment (see config.ts):
|
|
10
|
-
* EXTROVERT_API_BASE_URL, EXTROVERT_API_KEY, EXTROVERT_MOCK, ...
|
|
5
|
+
* extrovert-mcp # stdio transport for MCP hosts
|
|
6
|
+
* extrovert-mcp --http --port 9000 # hosted Streamable HTTP
|
|
7
|
+
* extrovert setup --host codex # register the packaged stdio server
|
|
8
|
+
* extrovert signup / verify / message… # supported CLI fallback
|
|
11
9
|
*/
|
|
12
10
|
export {};
|
|
13
11
|
//# sourceMappingURL=bin.d.ts.map
|
package/dist/bin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG"}
|
package/dist/bin.js
CHANGED
|
@@ -1,20 +1,43 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* Extrovert MCP
|
|
3
|
+
* Extrovert MCP + CLI entrypoint.
|
|
4
4
|
*
|
|
5
|
-
* extrovert-mcp
|
|
6
|
-
* extrovert-mcp --http
|
|
7
|
-
* extrovert
|
|
8
|
-
*
|
|
9
|
-
* Configuration is read from the environment (see config.ts):
|
|
10
|
-
* EXTROVERT_API_BASE_URL, EXTROVERT_API_KEY, EXTROVERT_MOCK, ...
|
|
5
|
+
* extrovert-mcp # stdio transport for MCP hosts
|
|
6
|
+
* extrovert-mcp --http --port 9000 # hosted Streamable HTTP
|
|
7
|
+
* extrovert setup --host codex # register the packaged stdio server
|
|
8
|
+
* extrovert signup / verify / message… # supported CLI fallback
|
|
11
9
|
*/
|
|
10
|
+
import { CLI_HELP, runCli } from "./cli.js";
|
|
12
11
|
import { runHttp } from "./http.js";
|
|
13
12
|
import { runStdio } from "./stdio.js";
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
const CLI_COMMANDS = new Set([
|
|
14
|
+
"setup",
|
|
15
|
+
"auth",
|
|
16
|
+
"signup",
|
|
17
|
+
"verify",
|
|
18
|
+
"whoami",
|
|
19
|
+
"inbox",
|
|
20
|
+
"message",
|
|
21
|
+
"review",
|
|
22
|
+
"send",
|
|
23
|
+
"help",
|
|
24
|
+
]);
|
|
25
|
+
const TRANSPORT_HELP = `
|
|
26
|
+
MCP transports:
|
|
27
|
+
extrovert-mcp stdio (default for local hosts)
|
|
28
|
+
extrovert-mcp --http Streamable HTTP at /mcp (default port 8787)
|
|
29
|
+
extrovert-mcp --http --port N override the HTTP port
|
|
30
|
+
|
|
31
|
+
Environment:
|
|
32
|
+
EXTROVERT_API_BASE_URL API URL (default https://api.extrovert.dev)
|
|
33
|
+
EXTROVERT_API_KEY scoped agent key; overrides the stored credential
|
|
34
|
+
EXTROVERT_CONFIG_DIR override the permission-restricted credential directory
|
|
35
|
+
EXTROVERT_MOCK set to 1 for offline fixtures
|
|
36
|
+
`;
|
|
37
|
+
function parseTransportArgs(argv) {
|
|
38
|
+
const args = { http: false };
|
|
39
|
+
for (let index = 0; index < argv.length; index++) {
|
|
40
|
+
const arg = argv[index];
|
|
18
41
|
switch (arg) {
|
|
19
42
|
case "--http":
|
|
20
43
|
case "--hosted":
|
|
@@ -24,68 +47,54 @@ function parseArgs(argv) {
|
|
|
24
47
|
args.http = false;
|
|
25
48
|
break;
|
|
26
49
|
case "--port": {
|
|
27
|
-
const next = argv[++
|
|
28
|
-
if (next)
|
|
29
|
-
|
|
50
|
+
const next = argv[++index];
|
|
51
|
+
if (!next)
|
|
52
|
+
throw new Error("--port requires a value");
|
|
53
|
+
const port = Number(next);
|
|
54
|
+
if (!Number.isSafeInteger(port) || port < 1 || port > 65535)
|
|
55
|
+
throw new Error("--port must be from 1 to 65535");
|
|
56
|
+
args.port = port;
|
|
30
57
|
break;
|
|
31
58
|
}
|
|
32
59
|
case "--host": {
|
|
33
|
-
const next = argv[++
|
|
34
|
-
if (next)
|
|
35
|
-
|
|
60
|
+
const next = argv[++index];
|
|
61
|
+
if (!next)
|
|
62
|
+
throw new Error("--host requires a value");
|
|
63
|
+
args.host = next;
|
|
36
64
|
break;
|
|
37
65
|
}
|
|
38
|
-
case "-h":
|
|
39
|
-
case "--help":
|
|
40
|
-
args.help = true;
|
|
41
|
-
break;
|
|
42
66
|
default:
|
|
43
|
-
//
|
|
67
|
+
// Retain compatibility with MCP hosts that append harmless flags.
|
|
44
68
|
break;
|
|
45
69
|
}
|
|
46
70
|
}
|
|
47
71
|
return args;
|
|
48
72
|
}
|
|
49
|
-
const HELP = `extrovert-mcp — MCP server for Extrovert (a real mailbox for your agent, in one call)
|
|
50
|
-
|
|
51
|
-
Usage:
|
|
52
|
-
extrovert-mcp [--http] [--port <n>] [--host <addr>]
|
|
53
|
-
|
|
54
|
-
Transports:
|
|
55
|
-
(default) stdio — for Claude Desktop, Claude Code, Cursor, and other local hosts
|
|
56
|
-
--http hosted Streamable HTTP transport at POST /mcp (default port 8787)
|
|
57
|
-
|
|
58
|
-
Environment:
|
|
59
|
-
EXTROVERT_API_BASE_URL Base URL of the Extrovert REST API (default https://api.extrovert.dev)
|
|
60
|
-
EXTROVERT_API_KEY Scoped agent key (pk_agent_…) or enrollment key (pk_enroll_…)
|
|
61
|
-
EXTROVERT_MOCK Set to 1 to force offline fixture mode
|
|
62
|
-
EXTROVERT_MCP_OAUTH_ENABLED Set to 1 to protect HTTP with Clerk OAuth + scoped agent keys
|
|
63
|
-
EXTROVERT_MCP_PUBLIC_URL Public OAuth resource URL (default https://mcp.extrovert.dev/mcp)
|
|
64
|
-
PORT / HOST Override --http bind (also honored by hosting platforms)
|
|
65
|
-
|
|
66
|
-
Tools: redeem_enrollment, create_inbox, list_inboxes, get_inbox, update_inbox, delete_inbox,
|
|
67
|
-
send_email, reply_email, read_messages, list_threads, search, wait_for_email
|
|
68
|
-
`;
|
|
69
73
|
async function main() {
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
74
|
+
const argv = process.argv.slice(2);
|
|
75
|
+
const first = argv[0];
|
|
76
|
+
if (first === "--help" || first === "-h") {
|
|
77
|
+
process.stdout.write(`${CLI_HELP}${TRANSPORT_HELP}`);
|
|
73
78
|
return;
|
|
74
79
|
}
|
|
80
|
+
if (first && CLI_COMMANDS.has(first)) {
|
|
81
|
+
process.exitCode = await runCli(argv);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const args = parseTransportArgs(argv);
|
|
75
85
|
if (args.http) {
|
|
76
|
-
const
|
|
86
|
+
const options = {};
|
|
77
87
|
if (args.port !== undefined)
|
|
78
|
-
|
|
88
|
+
options.port = args.port;
|
|
79
89
|
if (args.host !== undefined)
|
|
80
|
-
|
|
81
|
-
await runHttp(
|
|
82
|
-
|
|
83
|
-
else {
|
|
84
|
-
await runStdio();
|
|
90
|
+
options.host = args.host;
|
|
91
|
+
await runHttp(options);
|
|
92
|
+
return;
|
|
85
93
|
}
|
|
94
|
+
await runStdio();
|
|
86
95
|
}
|
|
87
|
-
main().catch((
|
|
88
|
-
process.stderr.write(`extrovert
|
|
96
|
+
main().catch((error) => {
|
|
97
|
+
process.stderr.write(`extrovert: fatal: ${error instanceof Error ? error.stack ?? error.message : String(error)}\n`);
|
|
89
98
|
process.exit(1);
|
|
90
99
|
});
|
|
91
100
|
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type SpawnSyncReturns } from "node:child_process";
|
|
2
|
+
import type { Readable, Writable } from "node:stream";
|
|
3
|
+
import { type CredentialStore } from "./credentials.js";
|
|
4
|
+
export declare const CLI_HELP = "extrovert \u2014 setup, authenticate, and use Extrovert without custom transport code\n\nUsage:\n extrovert setup [--host codex|claude]\n extrovert auth login --with-token\n extrovert auth status\n extrovert auth logout\n extrovert signup --human-email <email> [--username <name>]\n extrovert verify [--otp <code>]\n extrovert whoami [--json]\n extrovert inbox list [--limit <n>] [--json]\n extrovert message list --inbox <address> [--unread] [--limit <n>] [--json]\n extrovert message get <message-id> [--source] [--json]\n extrovert review list [--state <state>] [--limit <n>] [--json]\n extrovert review status <review-id> [--json]\n extrovert send --inbox <address> --to <email> --subject <text> --text <body>\n --summary <reviewer-intent> [--client-id <id>] [--rules-reviewed]\n\nAuthentication:\n signup stores only a short-lived pending key; verify atomically replaces it with\n the full key in a permission-restricted local credential file. EXTROVERT_API_KEY\n always takes precedence over the stored credential.\n\nMCP transport:\n Running extrovert-mcp with no command starts stdio. The official plugin and\n 'extrovert setup' configure that published server directly.\n";
|
|
5
|
+
export interface CliOptions {
|
|
6
|
+
env?: NodeJS.ProcessEnv;
|
|
7
|
+
stdin?: NodeJS.ReadStream | Readable;
|
|
8
|
+
stdout?: NodeJS.WriteStream | Writable;
|
|
9
|
+
stderr?: NodeJS.WriteStream | Writable;
|
|
10
|
+
credentialStore?: CredentialStore;
|
|
11
|
+
runCommand?: (command: string, args: string[]) => SpawnSyncReturns<string>;
|
|
12
|
+
}
|
|
13
|
+
export declare function runCli(argv: string[], options?: CliOptions): Promise<number>;
|
|
14
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAItD,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAK/E,eAAO,MAAM,QAAQ,msCA0BpB,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;IACvC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,gBAAgB,CAAC,MAAM,CAAC,CAAC;CAC5E;AAWD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAmDtF"}
|