@pilot-status/mcp-server 0.1.1 → 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.
package/README.md CHANGED
@@ -6,42 +6,48 @@ client (Claude Desktop, Cursor, the claude.ai connector, custom agents, …) can
6
6
  send WhatsApp messages, manage numbers/templates, read conversations, and more —
7
7
  using a Pilot Status API key.
8
8
 
9
- It speaks two transports:
9
+ It speaks the **streamable HTTP** transport (`POST /mcp`). Clients connect over
10
+ HTTP and authenticate either with an `x-api-key` header **or** with an OAuth 2.1
11
+ bearer token (for the [claude.ai custom connector](#remote-oauth--claudeai-connector)).
10
12
 
11
- - **stdio** for local clients that spawn the server as a child process. The
12
- API key is read once from `PILOT_STATUS_API_KEY`.
13
- - **streamable HTTP** — clients connect over HTTP and authenticate either with an
14
- `x-api-key` header **or** with an OAuth 2.1 bearer token (for the
15
- [claude.ai custom connector](#remote-oauth--claudeai-connector)).
13
+ There are two ways to use it:
14
+
15
+ - **Self-host via npm** — run the server and point a client at your own HTTP
16
+ endpoint (default `http://localhost:8787/mcp`), sending an `x-api-key` header.
17
+ - **Hosted (available)** — the managed instance at `https://mcp.pilotstatuss.com`,
18
+ used as a [claude.ai custom connector](#remote-oauth--claudeai-connector) over
19
+ OAuth.
16
20
 
17
21
  ## Install
18
22
 
19
23
  ```bash
20
- # Run straight from npm (no install needed):
21
- npx @pilot-status/mcp-server stdio # stdio transport (default)
22
- npx @pilot-status/mcp-server http # streamable HTTP transport
24
+ # Run straight from npm (no install needed) — starts the HTTP server:
25
+ npx @pilot-status/mcp-server # listens on http://0.0.0.0:8787/mcp
23
26
 
24
27
  # Or install the binary globally:
25
28
  npm install -g @pilot-status/mcp-server
26
- pilot-status-mcp stdio
29
+ pilot-status-mcp
27
30
  ```
28
31
 
29
- The published package exposes the `pilot-status-mcp` bin. Configuration is via
30
- environment variables (see [`.env.example`](./.env.example) / [Configuration](#configuration)):
32
+ The published package exposes the `pilot-status-mcp` bin, which starts the
33
+ streamable HTTP server. Configuration is via environment variables (see
34
+ [`.env.example`](./.env.example) / [Configuration](#configuration)). The API key
35
+ is sent per-request via the `x-api-key` header; you can optionally set a
36
+ process-wide fallback:
31
37
 
32
38
  ```bash
33
- PILOT_STATUS_API_KEY=ps_xxx npx @pilot-status/mcp-server stdio
39
+ PORT=8787 npx @pilot-status/mcp-server
34
40
  ```
35
41
 
36
42
  ## Authentication
37
43
 
38
44
  There are two ways to authenticate against the public `/v1` API:
39
45
 
40
- 1. **API key** (`x-api-key`) — a `ps_*` key, used by stdio and by HTTP clients
41
- that send the header themselves.
42
- 2. **OAuth 2.1 bearer token** — used by the claude.ai custom connector
43
- (HTTP transport). claude.ai handles the login, so no API key is shared with
44
- the client. See [Remote (OAuth)](#remote-oauth--claudeai-connector).
46
+ 1. **API key** (`x-api-key`) — a `ps_*` key, sent per-request by HTTP clients
47
+ (optionally falling back to `PILOT_STATUS_API_KEY` set on the server).
48
+ 2. **OAuth 2.1 bearer token** — used by the claude.ai custom connector.
49
+ claude.ai handles the login, so no API key is shared with the client.
50
+ See [Remote (OAuth)](#remote-oauth--claudeai-connector).
45
51
 
46
52
  Scope matters (same rules as the REST API):
47
53
 
@@ -99,13 +105,12 @@ See [`.env.example`](./.env.example). Key variables:
99
105
  | Variable | Default | Notes |
100
106
  | --- | --- | --- |
101
107
  | `PILOT_STATUS_API_URL` | `https://pilotstatuss.com` | Public API base URL (no trailing slash). |
102
- | `PILOT_STATUS_API_KEY` | — | `ps_*` key. Required for stdio; optional fallback for HTTP. |
108
+ | `PILOT_STATUS_API_KEY` | — | `ps_*` key. Optional per-request fallback (clients normally send `x-api-key`). |
103
109
  | `PILOT_STATUS_API_KEY_ID` | — | Optional `x-api-key-id` companion. |
104
110
  | `MCP_RESOURCE_URL` | `https://mcp.pilotstatuss.com` | Public URL of this server (OAuth `resource`). |
105
111
  | `PILOT_STATUS_AUTH_SERVER_URL` | `https://pilotstatuss.com` | OAuth authorization server (the backend). |
106
- | `MCP_TRANSPORT` | `stdio` | `stdio` or `http`. |
107
- | `PORT` | `8787` | HTTP transport port. |
108
- | `HOST` | `0.0.0.0` | HTTP transport bind host. |
112
+ | `PORT` | `8787` | HTTP listen port. |
113
+ | `HOST` | `0.0.0.0` | HTTP bind host. |
109
114
 
110
115
  ## HTTP endpoint
111
116
 
@@ -127,27 +132,24 @@ curl -s https://mcp.pilotstatuss.com/mcp \
127
132
 
128
133
  ## Configuring MCP clients
129
134
 
130
- ### Claude Desktop / Cursor (stdio)
135
+ ### Self-hosted (npm, HTTP)
131
136
 
132
- Use the published binary via `npx` add to the client's MCP config (e.g.
133
- `claude_desktop_config.json`):
137
+ Run the server with `npx @pilot-status/mcp-server` and point the client at your
138
+ own HTTP endpoint, supplying the API key as a header:
134
139
 
135
140
  ```json
136
141
  {
137
142
  "mcpServers": {
138
143
  "pilot-status": {
139
- "command": "npx",
140
- "args": ["-y", "@pilot-status/mcp-server", "stdio"],
141
- "env": {
142
- "PILOT_STATUS_API_KEY": "ps_your_key_here",
143
- "PILOT_STATUS_API_URL": "https://pilotstatuss.com"
144
- }
144
+ "type": "http",
145
+ "url": "http://localhost:8787/mcp",
146
+ "headers": { "x-api-key": "ps_your_key_here" }
145
147
  }
146
148
  }
147
149
  }
148
150
  ```
149
151
 
150
- ### Remote / HTTP clients (API key)
152
+ ### Hosted / remote (API key header)
151
153
 
152
154
  Point the client at the hosted URL and supply the API key as a header:
153
155
 
package/dist/index.js CHANGED
@@ -2,41 +2,21 @@
2
2
  /**
3
3
  * Pilot Status MCP server entrypoint.
4
4
  *
5
- * Selects a transport from CLI args / env (see {@link resolveConfig}):
6
- * - stdio (default): single-tenant; API key from PILOT_STATUS_API_KEY.
7
- * - http: deployable; API key per-request from the `x-api-key` header
8
- * (falls back to PILOT_STATUS_API_KEY if set).
5
+ * Always starts the streamable HTTP transport (see {@link resolveConfig}):
6
+ * - Listens on PORT (default 8787) and serves POST /mcp.
7
+ * - API key is supplied per-request via the `x-api-key` header (falls back to
8
+ * PILOT_STATUS_API_KEY if set), or an OAuth 2.1 bearer token is forwarded
9
+ * verbatim for the hosted claude.ai custom connector.
9
10
  *
10
11
  * Usage:
11
- * pilot-status-mcp # stdio
12
- * pilot-status-mcp http # streamable HTTP on PORT (default 8787)
13
- * MCP_TRANSPORT=http PORT=8787 node dist/index.js
12
+ * pilot-status-mcp # streamable HTTP on PORT (default 8787)
13
+ * PORT=8787 node dist/index.js
14
14
  */
15
15
  import { resolveConfig } from "./lib/config.js";
16
16
  async function main() {
17
17
  const config = resolveConfig();
18
- if (config.transport === "http") {
19
- const { startHttpServer } = await import("./lib/http-transport.js");
20
- await startHttpServer(config);
21
- return;
22
- }
23
- // stdio transport
24
- if (!config.apiKey && !config.apiKeyId) {
25
- console.error("[mcp] PILOT_STATUS_API_KEY is required for the stdio transport. " +
26
- "Set it in the environment (or use the HTTP transport with per-request keys).");
27
- process.exit(1);
28
- }
29
- const { StdioServerTransport } = await import("@modelcontextprotocol/sdk/server/stdio.js");
30
- const { buildServer } = await import("./lib/server.js");
31
- const server = buildServer({
32
- baseUrl: config.baseUrl,
33
- apiKey: config.apiKey,
34
- apiKeyId: config.apiKeyId,
35
- });
36
- const transport = new StdioServerTransport();
37
- await server.connect(transport);
38
- // stdout is reserved for the JSON-RPC protocol; log to stderr.
39
- console.error(`[mcp] Pilot Status MCP server (stdio) connected → ${config.baseUrl}/v1`);
18
+ const { startHttpServer } = await import("./lib/http-transport.js");
19
+ await startHttpServer(config);
40
20
  }
41
21
  main().catch((err) => {
42
22
  console.error("[mcp] fatal:", err instanceof Error ? err.stack ?? err.message : err);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,KAAK,UAAU,IAAI;IACf,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QAC9B,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACpE,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9B,OAAO;IACX,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CACT,kEAAkE;YAC9D,8EAA8E,CACrF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CACzC,2CAA2C,CAC9C,CAAC;IACF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,WAAW,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC5B,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,+DAA+D;IAC/D,OAAO,CAAC,KAAK,CACT,qDAAqD,MAAM,CAAC,OAAO,KAAK,CAC3E,CAAC;AACN,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,KAAK,UAAU,IAAI;IACf,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACpE,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
@@ -6,7 +6,7 @@
6
6
  * to its internal `/api/v1/*` routes).
7
7
  * Authentication is one of two modes:
8
8
  * - **API key** — `x-api-key` (+ optional `x-api-key-id`) from a constructor
9
- * value (stdio mode) or a per-request override (HTTP `x-api-key` header).
9
+ * value (process default) or a per-request override (the `x-api-key` header).
10
10
  * - **Bearer** — an OAuth 2.1 access token, forwarded verbatim as
11
11
  * `Authorization: Bearer <token>` (and `x-api-key` is NOT sent). The public
12
12
  * `/v1` API validates the token; this client never inspects it.
@@ -21,7 +21,7 @@
21
21
  export interface ApiClientOptions {
22
22
  /** Base URL without trailing slash (e.g. https://pilotstatuss.com). */
23
23
  baseUrl: string;
24
- /** Default `x-api-key` value (stdio). Optional in HTTP mode. */
24
+ /** Default `x-api-key` value (process fallback). Optional; per-request header wins. */
25
25
  apiKey?: string;
26
26
  /** Optional `x-api-key-id` companion header. */
27
27
  apiKeyId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,gBAAgB;IAC7B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC3B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;IACrE,2DAA2D;IAC3D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAgBD,qBAAa,QAAS,SAAQ,KAAK;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;gBAEZ,IAAI,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;KAClB;IASD,MAAM;;;;;;CAQT;AAkBD,qBAAa,SAAS;IAClB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAa;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAE7B,OAAO,EAAE,gBAAgB;IAiBrC;;;;;OAKG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;IAYjC,OAAO,CAAC,CAAC,GAAG,OAAO,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC7B,OAAO,CAAC,CAAC,CAAC;IAyFb,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxE,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIzE,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxE,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;CAG9E"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,gBAAgB;IAC7B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC3B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;IACrE,2DAA2D;IAC3D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAgBD,qBAAa,QAAS,SAAQ,KAAK;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;gBAEZ,IAAI,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;KAClB;IASD,MAAM;;;;;;CAQT;AAkBD,qBAAa,SAAS;IAClB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAa;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAE7B,OAAO,EAAE,gBAAgB;IAiBrC;;;;;OAKG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;IAYjC,OAAO,CAAC,CAAC,GAAG,OAAO,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC7B,OAAO,CAAC,CAAC,CAAC;IAyFb,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxE,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIzE,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxE,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;CAG9E"}
@@ -6,7 +6,7 @@
6
6
  * to its internal `/api/v1/*` routes).
7
7
  * Authentication is one of two modes:
8
8
  * - **API key** — `x-api-key` (+ optional `x-api-key-id`) from a constructor
9
- * value (stdio mode) or a per-request override (HTTP `x-api-key` header).
9
+ * value (process default) or a per-request override (the `x-api-key` header).
10
10
  * - **Bearer** — an OAuth 2.1 access token, forwarded verbatim as
11
11
  * `Authorization: Bearer <token>` (and `x-api-key` is NOT sent). The public
12
12
  * `/v1` API validates the token; this client never inspects it.
@@ -113,7 +113,7 @@ export class ApiClient {
113
113
  const usingBearer = Boolean(bearer);
114
114
  if (!usingBearer && !apiKey && !apiKeyId) {
115
115
  throw new ApiError({
116
- message: "Missing credentials. Provide an OAuth bearer token, set PILOT_STATUS_API_KEY (stdio), or send an x-api-key header (HTTP).",
116
+ message: "Missing credentials. Provide an OAuth bearer token, send an x-api-key header, or set PILOT_STATUS_API_KEY on the server.",
117
117
  status: 401,
118
118
  code: "MISSING_API_KEY",
119
119
  });
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,11 @@
1
1
  /**
2
2
  * Runtime configuration for the Pilot Status MCP server.
3
3
  *
4
- * Transport is selected (in priority order) by:
5
- * 1. a positional CLI arg or flag: `stdio` | `http` | `--stdio` | `--http`
6
- * 2. the `MCP_TRANSPORT` env var (`stdio` | `http`)
7
- * 3. default: `stdio`
4
+ * The server always runs the streamable HTTP transport (POST /mcp).
8
5
  *
9
6
  * The public API base URL defaults to production (`https://pilotstatuss.com`).
10
- * The API key is read from `PILOT_STATUS_API_KEY` and is required for stdio
11
- * (single-tenant process). In HTTP mode the key is taken per-request from the
12
- * incoming `x-api-key` header, falling back to `PILOT_STATUS_API_KEY` if set.
7
+ * The API key is taken per-request from the incoming `x-api-key` header,
8
+ * falling back to `PILOT_STATUS_API_KEY` if set on the process.
13
9
  *
14
10
  * OAuth 2.1 (claude.ai custom connector): this process is the *resource server*.
15
11
  * It is a "dumb forwarder" — it does NOT verify access tokens. A `Bearer` token
@@ -19,12 +15,10 @@
19
15
  * - `MCP_RESOURCE_URL` — the public URL of THIS resource server.
20
16
  * - `PILOT_STATUS_AUTH_SERVER_URL` — the authorization server (the backend).
21
17
  */
22
- export type McpTransport = "stdio" | "http";
23
18
  export interface ResolvedConfig {
24
- transport: McpTransport;
25
19
  /** Public API base URL, no trailing slash (e.g. https://pilotstatuss.com). */
26
20
  baseUrl: string;
27
- /** Raw `ps_*` API key (stdio default; HTTP fallback). May be undefined in HTTP mode. */
21
+ /** Raw `ps_*` API key (per-process fallback for the `x-api-key` header). May be undefined. */
28
22
  apiKey?: string;
29
23
  /** Optional `x-api-key-id` companion header value. */
30
24
  apiKeyId?: string;
@@ -48,7 +42,7 @@ export declare const DEFAULT_HTTP_HOST = "0.0.0.0";
48
42
  * is a hint to clients about the granularity available.
49
43
  */
50
44
  export declare const SCOPES_SUPPORTED: readonly ["messages:send", "messages:read", "conversations:read", "numbers:read", "numbers:write", "templates:read", "templates:write", "analytics:read"];
51
- export declare function resolveConfig(argv?: string[], env?: NodeJS.ProcessEnv): ResolvedConfig;
45
+ export declare function resolveConfig(env?: NodeJS.ProcessEnv): ResolvedConfig;
52
46
  export declare const SERVER_NAME = "pilot-status";
53
47
  export declare const SERVER_VERSION = "0.1.0";
54
48
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5C,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,YAAY,CAAC;IACxB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,yFAAyF;IACzF,aAAa,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAC1D,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAClE,eAAO,MAAM,oBAAoB,iCAAiC,CAAC;AACnE,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,2JASnB,CAAC;AAgBX,wBAAgB,aAAa,CACzB,IAAI,GAAE,MAAM,EAA0B,EACtC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACrC,cAAc,CAyBhB;AAED,eAAO,MAAM,WAAW,iBAAiB,CAAC;AAC1C,eAAO,MAAM,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,cAAc;IAC3B,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,yFAAyF;IACzF,aAAa,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAC1D,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAClE,eAAO,MAAM,oBAAoB,iCAAiC,CAAC;AACnE,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,2JASnB,CAAC;AAMX,wBAAgB,aAAa,CACzB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACrC,cAAc,CAwBhB;AAED,eAAO,MAAM,WAAW,iBAAiB,CAAC;AAC1C,eAAO,MAAM,cAAc,UAAU,CAAC"}
@@ -1,15 +1,11 @@
1
1
  /**
2
2
  * Runtime configuration for the Pilot Status MCP server.
3
3
  *
4
- * Transport is selected (in priority order) by:
5
- * 1. a positional CLI arg or flag: `stdio` | `http` | `--stdio` | `--http`
6
- * 2. the `MCP_TRANSPORT` env var (`stdio` | `http`)
7
- * 3. default: `stdio`
4
+ * The server always runs the streamable HTTP transport (POST /mcp).
8
5
  *
9
6
  * The public API base URL defaults to production (`https://pilotstatuss.com`).
10
- * The API key is read from `PILOT_STATUS_API_KEY` and is required for stdio
11
- * (single-tenant process). In HTTP mode the key is taken per-request from the
12
- * incoming `x-api-key` header, falling back to `PILOT_STATUS_API_KEY` if set.
7
+ * The API key is taken per-request from the incoming `x-api-key` header,
8
+ * falling back to `PILOT_STATUS_API_KEY` if set on the process.
13
9
  *
14
10
  * OAuth 2.1 (claude.ai custom connector): this process is the *resource server*.
15
11
  * It is a "dumb forwarder" — it does NOT verify access tokens. A `Bearer` token
@@ -42,20 +38,7 @@ export const SCOPES_SUPPORTED = [
42
38
  function stripTrailingSlash(url) {
43
39
  return url.replace(/\/+$/, "");
44
40
  }
45
- function resolveTransport(argv, env) {
46
- const flags = argv.map((a) => a.trim().toLowerCase());
47
- if (flags.includes("http") || flags.includes("--http"))
48
- return "http";
49
- if (flags.includes("stdio") || flags.includes("--stdio"))
50
- return "stdio";
51
- const fromEnv = (env.MCP_TRANSPORT ?? "").trim().toLowerCase();
52
- if (fromEnv === "http")
53
- return "http";
54
- if (fromEnv === "stdio")
55
- return "stdio";
56
- return "stdio";
57
- }
58
- export function resolveConfig(argv = process.argv.slice(2), env = process.env) {
41
+ export function resolveConfig(env = process.env) {
59
42
  const baseUrl = stripTrailingSlash((env.PILOT_STATUS_API_URL ?? "").trim() || DEFAULT_API_URL);
60
43
  const apiKey = (env.PILOT_STATUS_API_KEY ?? "").trim() || undefined;
61
44
  const apiKeyId = (env.PILOT_STATUS_API_KEY_ID ?? "").trim() || undefined;
@@ -64,7 +47,6 @@ export function resolveConfig(argv = process.argv.slice(2), env = process.env) {
64
47
  const port = Number.parseInt(env.PORT ?? "", 10) || DEFAULT_HTTP_PORT;
65
48
  const host = (env.HOST ?? "").trim() || DEFAULT_HTTP_HOST;
66
49
  return {
67
- transport: resolveTransport(argv, env),
68
50
  baseUrl,
69
51
  apiKey,
70
52
  apiKeyId,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAmBH,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAC1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAClE,MAAM,CAAC,MAAM,oBAAoB,GAAG,8BAA8B,CAAC;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAE3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,eAAe;IACf,eAAe;IACf,oBAAoB;IACpB,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;CACV,CAAC;AAEX,SAAS,kBAAkB,CAAC,GAAW;IACnC,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,aAAa,CACzB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,OAAO,GAAG,kBAAkB,CAC9B,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,eAAe,CAC7D,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IACpE,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IACzE,MAAM,WAAW,GAAG,kBAAkB,CAClC,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,oBAAoB,CAC9D,CAAC;IACF,MAAM,aAAa,GAAG,kBAAkB,CACpC,CAAC,GAAG,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,uBAAuB,CAC7E,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC;IACtE,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,iBAAiB,CAAC;IAE1D,OAAO;QACH,OAAO;QACP,MAAM;QACN,QAAQ;QACR,WAAW;QACX,aAAa;QACb,IAAI;QACJ,IAAI;KACP,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@pilot-status/mcp-server",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
- "description": "Model Context Protocol (MCP) server exposing the Pilot Status public /v1 API as tools. Supports stdio and streamable HTTP transports (with OAuth 2.1 for the claude.ai custom connector).",
5
+ "description": "Model Context Protocol (MCP) server exposing the Pilot Status public /v1 API as tools over streamable HTTP (with OAuth 2.1 for the claude.ai custom connector).",
6
6
  "license": "MIT",
7
7
  "author": "Pilot Status",
8
8
  "homepage": "https://github.com/oismaelash/pilot-status/tree/main/apps/mcp-server#readme",