huly-mcp-selfhost 3.2.0 → 3.4.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.
@@ -16,6 +16,12 @@ export interface WorkspaceConnection {
16
16
  wsToken: string;
17
17
  workspaceUuid: string;
18
18
  }
19
+ /** Claims of a Huly JWT, read without verifying it (the account service verifies). */
20
+ export declare function tokenClaims(token: string | undefined): {
21
+ workspace?: string;
22
+ exp?: number;
23
+ apiTokenId?: string;
24
+ } | undefined;
19
25
  interface OpenConnection {
20
26
  client: TxOperations;
21
27
  close: () => Promise<void>;
@@ -63,6 +69,15 @@ export declare class WorkspaceConnectionManager {
63
69
  * HULY_TRANSACTOR_URL replaces it, e.g. ws://huly/_transactor or ws://transactor:3333.
64
70
  */
65
71
  export declare function transactorEndpoint(endpoint: string, override: string | undefined): string;
72
+ /** Runs fn (and everything it starts) with this manager instead of the process-wide one. */
73
+ export declare function withConnectionManager<T>(m: WorkspaceConnectionManager, fn: () => T): T;
74
+ /** A manager for one set of credentials; URLs and the transactor override come from the environment. */
75
+ export declare function createConnectionManager(creds: {
76
+ email?: string;
77
+ password?: string;
78
+ token?: string;
79
+ workspace?: string;
80
+ }, env?: NodeJS.ProcessEnv): WorkspaceConnectionManager;
66
81
  export declare function getConnectionManager(): WorkspaceConnectionManager;
67
82
  /** Replace the process-wide manager (tests). */
68
83
  export declare function setConnectionManager(next: WorkspaceConnectionManager | null): void;
@@ -74,5 +89,12 @@ export declare function getWorkspaceInfo(workspace?: string): Promise<{
74
89
  wsToken: string;
75
90
  workspaceUuid: string;
76
91
  }>;
92
+ /**
93
+ * Connect in the background right after start-up, so the first tool call does not pay for the
94
+ * account login, workspace discovery and the workspace model load (measured 4–12 s on a
95
+ * self-hosted instance). With one workspace (pinned or the only one) its connection is opened
96
+ * too. Never throws: a failure here is reported by the first real call. HULY_PREWARM=0 turns it off.
97
+ */
98
+ export declare function prewarm(env?: NodeJS.ProcessEnv): Promise<'off' | 'no-credentials' | 'account' | 'workspace' | 'failed'>;
77
99
  export declare function closeConnection(): Promise<void>;
78
100
  export {};
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WorkspaceConnectionManager = void 0;
4
+ exports.tokenClaims = tokenClaims;
4
5
  exports.transactorEndpoint = transactorEndpoint;
6
+ exports.withConnectionManager = withConnectionManager;
7
+ exports.createConnectionManager = createConnectionManager;
5
8
  exports.getConnectionManager = getConnectionManager;
6
9
  exports.setConnectionManager = setConnectionManager;
7
10
  exports.listWorkspaces = listWorkspaces;
@@ -9,10 +12,26 @@ exports.getWorkspace = getWorkspace;
9
12
  exports.getConnection = getConnection;
10
13
  exports.getAccountClient = getAccountClient;
11
14
  exports.getWorkspaceInfo = getWorkspaceInfo;
15
+ exports.prewarm = prewarm;
12
16
  exports.closeConnection = closeConnection;
17
+ const node_async_hooks_1 = require("node:async_hooks");
13
18
  const account_client_1 = require("@hcengineering/account-client");
14
19
  const core_1 = require("@hcengineering/core");
15
20
  const server_client_1 = require("@hcengineering/server-client");
21
+ /** Claims of a Huly JWT, read without verifying it (the account service verifies). */
22
+ function tokenClaims(token) {
23
+ const part = token?.split('.')[1];
24
+ if (part == null)
25
+ return undefined;
26
+ try {
27
+ const claims = JSON.parse(Buffer.from(part, 'base64url').toString('utf8'));
28
+ return { workspace: claims.workspace, exp: typeof claims.exp === 'number' ? claims.exp : undefined, apiTokenId: claims.extra?.apiTokenId };
29
+ }
30
+ catch {
31
+ return undefined;
32
+ }
33
+ }
34
+ const TOKEN_HELP = 'API token: create a new one in Huly → Settings → API tokens. Account token: npx huly-mcp-selfhost setup.';
16
35
  async function defaultOpenConnection(endpoint, token, socialId) {
17
36
  const raw = await (0, server_client_1.createClient)(endpoint, token);
18
37
  return { client: new core_1.TxOperations(raw, socialId), close: async () => await raw.close() };
@@ -135,16 +154,22 @@ class WorkspaceConnectionManager {
135
154
  async login() {
136
155
  const { accountsUrl, email, password, token } = this.opts;
137
156
  if (token != null && token !== '') {
138
- // Token auth — for SSO accounts (Google/GitHub login on huly.app).
157
+ // Token auth — SSO accounts (Google/GitHub) and managed API tokens.
158
+ const claims = tokenClaims(token);
159
+ if (claims?.exp != null && claims.exp * 1000 <= Date.now()) {
160
+ throw new Error(`HULY_TOKEN expired on ${new Date(claims.exp * 1000).toISOString().slice(0, 10)}. ${TOKEN_HELP}`);
161
+ }
139
162
  const accountClient = this.createAccountClient(accountsUrl, token);
140
- const info = await accountClient.getLoginInfoByToken();
163
+ const info = await accountClient.getLoginInfoByToken().catch((e) => {
164
+ throw new Error(`HULY_TOKEN was refused (${e.message}) — invalid, expired or revoked. ${TOKEN_HELP}`);
165
+ });
141
166
  if (info == null) {
142
- throw new Error('HULY_TOKEN is invalid or expired. Please get a fresh token (npm run setup).');
167
+ throw new Error(`HULY_TOKEN is invalid, expired or revoked. ${TOKEN_HELP}`);
143
168
  }
144
169
  if (!('socialId' in info) || info.socialId == null) {
145
170
  throw new Error('Token auth: no socialId returned for HULY_TOKEN.');
146
171
  }
147
- const session = { accountClient, socialId: info.socialId };
172
+ const session = { accountClient, socialId: info.socialId, apiToken: claims?.apiTokenId != null };
148
173
  if ('endpoint' in info && info.endpoint != null && info.token != null) {
149
174
  // Workspace-scoped token: its own workspace is usable directly.
150
175
  session.preselected = {
@@ -169,7 +194,12 @@ class WorkspaceConnectionManager {
169
194
  const session = await this.getSession();
170
195
  let all;
171
196
  try {
172
- all = (await session.accountClient.getUserWorkspaces()).map(toRef);
197
+ // A managed API token is created for one workspace. The account service would hand out
198
+ // tokens for the account's other workspaces too; this server keeps the promise instead.
199
+ if (session.apiToken === true && session.preselected !== undefined)
200
+ all = [session.preselected.workspace];
201
+ else
202
+ all = (await session.accountClient.getUserWorkspaces()).map(toRef);
173
203
  }
174
204
  catch (err) {
175
205
  // A workspace-scoped HULY_TOKEN may not be allowed to enumerate — fall back to its own workspace.
@@ -231,7 +261,27 @@ function transactorEndpoint(endpoint, override) {
231
261
  }
232
262
  // ── Process-wide manager (configured from env) ──────────────────────────────
233
263
  let manager = null;
264
+ // HTTP mode: every session can bring its own Huly login; its tool calls run inside this scope.
265
+ const scoped = new node_async_hooks_1.AsyncLocalStorage();
266
+ /** Runs fn (and everything it starts) with this manager instead of the process-wide one. */
267
+ function withConnectionManager(m, fn) {
268
+ return scoped.run(m, fn);
269
+ }
270
+ /** A manager for one set of credentials; URLs and the transactor override come from the environment. */
271
+ function createConnectionManager(creds, env = process.env) {
272
+ return new WorkspaceConnectionManager({
273
+ accountsUrl: env.HULY_ACCOUNTS_URL ?? 'https://account.huly.app',
274
+ email: creds.email,
275
+ password: creds.password,
276
+ token: creds.token,
277
+ restrictTo: creds.workspace,
278
+ transactorUrl: env.HULY_TRANSACTOR_URL
279
+ });
280
+ }
234
281
  function getConnectionManager() {
282
+ const own = scoped.getStore();
283
+ if (own != null)
284
+ return own;
235
285
  if (manager === null) {
236
286
  manager = new WorkspaceConnectionManager({
237
287
  accountsUrl: process.env.HULY_ACCOUNTS_URL ?? 'https://account.huly.app',
@@ -264,6 +314,29 @@ async function getWorkspaceInfo(workspace) {
264
314
  const { wsToken, workspaceUuid } = await getWorkspace(workspace);
265
315
  return { wsToken, workspaceUuid };
266
316
  }
317
+ /**
318
+ * Connect in the background right after start-up, so the first tool call does not pay for the
319
+ * account login, workspace discovery and the workspace model load (measured 4–12 s on a
320
+ * self-hosted instance). With one workspace (pinned or the only one) its connection is opened
321
+ * too. Never throws: a failure here is reported by the first real call. HULY_PREWARM=0 turns it off.
322
+ */
323
+ async function prewarm(env = process.env) {
324
+ if (['0', 'false', 'no', 'off'].includes(String(env.HULY_PREWARM ?? '').trim().toLowerCase()))
325
+ return 'off';
326
+ const set = (v) => (v ?? '').trim() !== '';
327
+ if (!set(env.HULY_TOKEN) && !(set(env.HULY_EMAIL) && set(env.HULY_PASSWORD)))
328
+ return 'no-credentials';
329
+ try {
330
+ const workspaces = await listWorkspaces();
331
+ if (workspaces.length !== 1)
332
+ return 'account';
333
+ await getWorkspace();
334
+ return 'workspace';
335
+ }
336
+ catch {
337
+ return 'failed';
338
+ }
339
+ }
267
340
  async function closeConnection() {
268
341
  if (manager !== null)
269
342
  await manager.closeAll();
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
package/dist/guard.d.ts CHANGED
@@ -11,6 +11,17 @@ export declare function audit(path: string | undefined, tool: ToolDef, args: unk
11
11
  }): void;
12
12
  /** Deletes and bulk/structural changes that are hard to undo. */
13
13
  export declare function isRisky(name: string): boolean;
14
+ /**
15
+ * MCP tool annotations: reads are read-only; deletes, removals and the risky tools above are
16
+ * destructive; every other change (create, add, update, set, …) is marked non-destructive —
17
+ * the MCP default for a write tool is "destructive", which would over-warn.
18
+ * Off by default (HULY_ANNOTATIONS=1): they add ~16% to tools/list in every session.
19
+ */
20
+ export declare function toolAnnotations(tool: ToolDef): {
21
+ title: string;
22
+ readOnlyHint?: boolean;
23
+ destructiveHint?: boolean;
24
+ };
14
25
  export type ConfirmMode = 'auto' | 'off' | 'strict';
15
26
  export declare function parseConfirmMode(value: string | undefined): ConfirmMode;
16
27
  /** What the confirm callback can do with the connected client. */
package/dist/guard.js CHANGED
@@ -6,6 +6,7 @@ exports.parseWriteProjects = parseWriteProjects;
6
6
  exports.assertWriteAllowed = assertWriteAllowed;
7
7
  exports.audit = audit;
8
8
  exports.isRisky = isRisky;
9
+ exports.toolAnnotations = toolAnnotations;
9
10
  exports.parseConfirmMode = parseConfirmMode;
10
11
  exports.describeCall = describeCall;
11
12
  exports.elicitationAsker = elicitationAsker;
@@ -82,6 +83,18 @@ const RISKY = new Set(['bulk_update_issues', 'move_issue', 'generic_update', 'ge
82
83
  function isRisky(name) {
83
84
  return name.startsWith('delete_') || RISKY.has(name);
84
85
  }
86
+ /**
87
+ * MCP tool annotations: reads are read-only; deletes, removals and the risky tools above are
88
+ * destructive; every other change (create, add, update, set, …) is marked non-destructive —
89
+ * the MCP default for a write tool is "destructive", which would over-warn.
90
+ * Off by default (HULY_ANNOTATIONS=1): they add ~16% to tools/list in every session.
91
+ */
92
+ function toolAnnotations(tool) {
93
+ const title = tool.name.replace(/_/g, ' ').replace(/^./, (c) => c.toUpperCase());
94
+ if (!isMutation(tool))
95
+ return { title, readOnlyHint: true };
96
+ return { title, destructiveHint: isRisky(tool.name) || /^(remove|revoke)_/.test(tool.name) };
97
+ }
85
98
  function parseConfirmMode(value) {
86
99
  const v = (value ?? 'auto').trim().toLowerCase();
87
100
  if (v === 'auto' || v === 'off' || v === 'strict')
package/dist/guard.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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"}
@@ -12,12 +12,13 @@ Every Huly call costs a round trip and its output stays in context. Aim for **on
12
12
  | Everything about PROJ-12 before working on it | `get_issue_context` | ~1.3k | `get_issue` + `list_sub_issues` + `list_comments` + relations (4+ calls) |
13
13
  | Status/assignee of PROJ-12 | `get_issue` | ~0.4k | `get_issue_context` |
14
14
  | What changed? | `changes_since` with `projectIdentifiers` and a short `since` | — | whole workspace for 7d: ~8k |
15
+ | Inbox housekeeping for one object (pin, hide, unread, follow) | `manage_notifications` | small | several updates |
15
16
  | What needs my attention? | `triage_inbox` with a small `limit` | ~4k at 10 | `list_notifications` + `get_issue` per item |
16
17
  | What's in release v1.2? | `release_notes` | ~2k | `list_issues milestoneLabel=…` + reading every issue |
17
18
  | Find issues about X | `search_issues` | ~2k | `list_issues status=all` and scanning |
18
19
  | Find anything (docs, chat, issues) | `search` | ~2.5k | several list calls |
19
20
 
20
- **Narrow lists with filters, not by reading them:** `list_issues` takes `status` (`open` default, `all`, or a name), `assignee` (`null` = unassigned), `milestoneLabel`, `componentLabel`, `labelName`, `parentIdentifier` (`null` = top level) and `limit`.
21
+ **Narrow lists with filters, not by reading them:** `list_issues` takes `status` (`open` default, `all`, or a name), `assignee` (`null` = unassigned), `milestoneLabel`, `componentLabel`, `labelName`, `parentIdentifier` (`null` = top level), `title` (contains text), `due` (`overdue`, `set`, `none`) and `limit`.
21
22
 
22
23
  **Avoid** `query_documents` / generic tools when a specific tool exists: one issue there is ~1.8k raw fields vs ~0.4k from `get_issue`. Use them only for classes without a tool.
23
24
 
@@ -19,7 +19,7 @@ Keep Huly current as you work, in the same turn as the action. Every call costs
19
19
  | Everything about PROJ-12 | `get_issue_context` (just status/assignee: `get_issue`) |
20
20
  | Find something | `search_issues`, `search` — not `list_issues status=all` |
21
21
 
22
- Narrow lists with filters (`status`, `assignee`, `milestoneLabel`, `componentLabel`, `parentIdentifier`, `limit`). More questions with measured sizes: [costs.md](costs.md).
22
+ Narrow lists with filters (`status`, `assignee`, `milestoneLabel`, `componentLabel`, `parentIdentifier`, `title`, `due: overdue`, `limit`). More questions with measured sizes: [costs.md](costs.md).
23
23
 
24
24
  ## 2. Pick up and hand back
25
25
 
@@ -54,4 +54,5 @@ Narrow lists with filters (`status`, `assignee`, `milestoneLabel`, `componentLab
54
54
  - Bulk changes, `move_issue`, deletes: show what will change first.
55
55
  - GitHub-synced projects: every change appears on GitHub too; don't cross-post.
56
56
  - `HULY_WRITE_PROJECTS` refusals: tell the user, don't work around them.
57
+ - Huly calls fail with login/connection errors: run `check_setup` and show the user what it says.
57
58
  - A tool you need is missing: it is in a disabled toolset — `enable_toolsets` if available, otherwise tell the user which toolset to enable ([features.md](features.md)).
package/dist/http.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import http from 'node:http';
2
+ import { type WorkspaceConnectionManager } from './connection';
3
+ export interface HttpOptions {
4
+ port: number;
5
+ host: string;
6
+ env: NodeJS.ProcessEnv;
7
+ /** Tests: build the manager for a set of credentials. */
8
+ createManager?: (creds: Credentials) => WorkspaceConnectionManager;
9
+ idleMs?: number;
10
+ log?: (line: string) => void;
11
+ }
12
+ export interface Credentials {
13
+ email?: string;
14
+ password?: string;
15
+ token?: string;
16
+ workspace?: string;
17
+ }
18
+ /** Credentials sent by the client, if any. */
19
+ export declare function headerCredentials(req: http.IncomingMessage): Credentials | undefined;
20
+ export declare function allowedHosts(value: string | undefined, port: number): string[] | undefined;
21
+ export declare function startHttpServer(opts: HttpOptions): http.Server;
22
+ export declare function runHttp(argv: string[]): Promise<void>;
package/dist/http.js ADDED
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.headerCredentials = headerCredentials;
7
+ exports.allowedHosts = allowedHosts;
8
+ exports.startHttpServer = startHttpServer;
9
+ exports.runHttp = runHttp;
10
+ // `huly-mcp-selfhost http`: the MCP server over Streamable HTTP, for teams and remote clients.
11
+ //
12
+ // One MCP session per client. A session either brings its own Huly login in headers
13
+ // (X-Huly-Token, or X-Huly-Email + X-Huly-Password; optional X-Huly-Workspace) or uses the
14
+ // server's own credentials (HULY_* env) — the latter only behind MCP_AUTH_TOKEN, so an open
15
+ // port never acts as the server's account. Each session keeps its connections; idle sessions close.
16
+ const node_http_1 = __importDefault(require("node:http"));
17
+ const node_crypto_1 = require("node:crypto");
18
+ const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamableHttp.js");
19
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
20
+ const server_1 = require("./server");
21
+ const connection_1 = require("./connection");
22
+ const MAX_BODY = 4 * 1024 * 1024;
23
+ const header = (req, name) => {
24
+ const v = req.headers[name];
25
+ const s = Array.isArray(v) ? v[0] : v;
26
+ return s != null && s.trim() !== '' ? s.trim() : undefined;
27
+ };
28
+ /** Credentials sent by the client, if any. */
29
+ function headerCredentials(req) {
30
+ const token = header(req, 'x-huly-token');
31
+ const email = header(req, 'x-huly-email');
32
+ const password = header(req, 'x-huly-password');
33
+ const workspace = header(req, 'x-huly-workspace');
34
+ if (token != null)
35
+ return { token, workspace };
36
+ if (email != null || password != null) {
37
+ if (email == null || password == null)
38
+ throw new HttpError(400, 'Send both X-Huly-Email and X-Huly-Password (or X-Huly-Token).');
39
+ return { email, password, workspace };
40
+ }
41
+ return undefined;
42
+ }
43
+ class HttpError extends Error {
44
+ status;
45
+ constructor(status, message) {
46
+ super(message);
47
+ this.status = status;
48
+ }
49
+ }
50
+ function bearerOk(req, expected) {
51
+ const got = /^Bearer\s+(.+)$/i.exec(header(req, 'authorization') ?? '')?.[1] ?? '';
52
+ const a = Buffer.from(got);
53
+ const b = Buffer.from(expected);
54
+ return a.length === b.length && (0, node_crypto_1.timingSafeEqual)(a, b);
55
+ }
56
+ async function readJson(req) {
57
+ const chunks = [];
58
+ let size = 0;
59
+ for await (const chunk of req) {
60
+ size += chunk.length;
61
+ if (size > MAX_BODY)
62
+ throw new HttpError(413, 'Request body too large.');
63
+ chunks.push(chunk);
64
+ }
65
+ if (size === 0)
66
+ return undefined;
67
+ try {
68
+ return JSON.parse(Buffer.concat(chunks).toString('utf8'));
69
+ }
70
+ catch {
71
+ throw new HttpError(400, 'Body is not valid JSON.');
72
+ }
73
+ }
74
+ function sendError(res, status, message) {
75
+ if (res.headersSent)
76
+ return;
77
+ res.writeHead(status, { 'content-type': 'application/json' });
78
+ res.end(JSON.stringify({ jsonrpc: '2.0', error: { code: -32000, message }, id: null }));
79
+ }
80
+ function allowedHosts(value, port) {
81
+ const hosts = (value ?? '').split(',').map((h) => h.trim()).filter((h) => h !== '');
82
+ if (hosts.length === 0)
83
+ return undefined;
84
+ const all = [...hosts, 'localhost', '127.0.0.1'];
85
+ return [...new Set(all.flatMap((h) => h.includes(':') ? [h] : [h, `${h}:${port}`]))];
86
+ }
87
+ function startHttpServer(opts) {
88
+ const env = opts.env;
89
+ const log = opts.log ?? ((line) => { console.error(`huly-mcp http: ${line}`); });
90
+ const authToken = (env.MCP_AUTH_TOKEN ?? '').trim();
91
+ const serverCreds = (env.HULY_TOKEN ?? '') !== '' || ((env.HULY_EMAIL ?? '') !== '' && (env.HULY_PASSWORD ?? '') !== '');
92
+ const sharedAllowed = serverCreds && authToken !== '';
93
+ const make = opts.createManager ?? ((c) => (0, connection_1.createConnectionManager)(c, env));
94
+ const hosts = allowedHosts(env.MCP_ALLOWED_HOSTS, opts.port);
95
+ const sessions = new Map();
96
+ if (serverCreds && authToken === '')
97
+ log('the server has its own Huly credentials but MCP_AUTH_TOKEN is not set — they are not used; clients must send their own (X-Huly-Token or X-Huly-Email/X-Huly-Password).');
98
+ const closeSession = async (id) => {
99
+ const s = sessions.get(id);
100
+ if (s == null)
101
+ return;
102
+ sessions.delete(id);
103
+ await s.transport.close().catch(() => { });
104
+ if (s.own)
105
+ await s.manager.closeAll().catch(() => { });
106
+ };
107
+ const idleMs = opts.idleMs ?? 30 * 60_000;
108
+ const sweeper = setInterval(() => {
109
+ const cutoff = Date.now() - idleMs;
110
+ for (const [id, s] of sessions)
111
+ if (s.lastSeen < cutoff)
112
+ void closeSession(id);
113
+ }, Math.min(idleMs, 60_000));
114
+ sweeper.unref();
115
+ const server = node_http_1.default.createServer((req, res) => {
116
+ void (async () => {
117
+ const url = new URL(req.url ?? '/', 'http://local');
118
+ if (url.pathname === '/healthz') {
119
+ res.writeHead(204).end();
120
+ return;
121
+ }
122
+ if (url.pathname !== '/mcp') {
123
+ sendError(res, 404, 'Not found. The MCP endpoint is /mcp.');
124
+ return;
125
+ }
126
+ if (authToken !== '' && !bearerOk(req, authToken)) {
127
+ res.setHeader('www-authenticate', 'Bearer');
128
+ sendError(res, 401, 'Missing or wrong bearer token (MCP_AUTH_TOKEN).');
129
+ return;
130
+ }
131
+ const sessionId = header(req, 'mcp-session-id');
132
+ const body = req.method === 'POST' ? await readJson(req) : undefined;
133
+ const existing = sessionId != null ? sessions.get(sessionId) : undefined;
134
+ if (existing != null) {
135
+ existing.lastSeen = Date.now();
136
+ await (0, connection_1.withConnectionManager)(existing.manager, async () => { await existing.transport.handleRequest(req, res, body); });
137
+ return;
138
+ }
139
+ if (sessionId != null) {
140
+ sendError(res, 404, 'Unknown or expired session — start a new one.');
141
+ return;
142
+ }
143
+ if (req.method !== 'POST' || !(0, types_js_1.isInitializeRequest)(body)) {
144
+ sendError(res, 400, 'No session: send an initialize request first.');
145
+ return;
146
+ }
147
+ const creds = headerCredentials(req);
148
+ if (creds == null && !sharedAllowed) {
149
+ sendError(res, 401, serverCreds
150
+ ? 'Send your Huly login: X-Huly-Token, or X-Huly-Email and X-Huly-Password. (The server credentials need MCP_AUTH_TOKEN.)'
151
+ : 'Send your Huly login: X-Huly-Token, or X-Huly-Email and X-Huly-Password.');
152
+ return;
153
+ }
154
+ const own = creds != null;
155
+ const manager = own ? make(creds) : (0, connection_1.getConnectionManager)();
156
+ const pinned = creds?.workspace ?? (own ? undefined : env.HULY_WORKSPACE);
157
+ const transport = new streamableHttp_js_1.StreamableHTTPServerTransport({
158
+ sessionIdGenerator: () => (0, node_crypto_1.randomUUID)(),
159
+ allowedHosts: hosts,
160
+ enableDnsRebindingProtection: hosts != null,
161
+ onsessioninitialized: (id) => {
162
+ sessions.set(id, { transport, manager, own, lastSeen: Date.now() });
163
+ if (own)
164
+ void (0, connection_1.withConnectionManager)(manager, async () => await (0, connection_1.prewarm)({ ...creds, HULY_EMAIL: creds.email, HULY_PASSWORD: creds.password, HULY_TOKEN: creds.token }));
165
+ }
166
+ });
167
+ transport.onclose = () => { if (transport.sessionId != null)
168
+ void closeSession(transport.sessionId); };
169
+ const mcp = (0, connection_1.withConnectionManager)(manager, () => (0, server_1.createServer)({ workspace: pinned }));
170
+ await mcp.connect(transport);
171
+ await (0, connection_1.withConnectionManager)(manager, async () => { await transport.handleRequest(req, res, body); });
172
+ })().catch((e) => {
173
+ if (e instanceof HttpError)
174
+ sendError(res, e.status, e.message);
175
+ else {
176
+ log(`request failed: ${e.message}`);
177
+ sendError(res, 500, 'Internal error.');
178
+ }
179
+ });
180
+ });
181
+ server.on('close', () => {
182
+ clearInterval(sweeper);
183
+ for (const id of [...sessions.keys()])
184
+ void closeSession(id);
185
+ });
186
+ return server;
187
+ }
188
+ async function runHttp(argv) {
189
+ const arg = (name) => {
190
+ const i = argv.indexOf(`--${name}`);
191
+ if (i >= 0)
192
+ return argv[i + 1];
193
+ return argv.find((a) => a.startsWith(`--${name}=`))?.slice(name.length + 3);
194
+ };
195
+ if (argv.includes('--help')) {
196
+ console.log(`huly-mcp-selfhost http [--port 8000] [--host 127.0.0.1]
197
+
198
+ MCP over Streamable HTTP at /mcp (health check: /healthz).
199
+ MCP_AUTH_TOKEN bearer token clients must send (needed to use the server's own HULY_* login)
200
+ MCP_ALLOWED_HOSTS host names clients use (DNS-rebinding protection), e.g. huly-mcp.example.com
201
+ Clients can send their own Huly login: X-Huly-Token, or X-Huly-Email + X-Huly-Password; X-Huly-Workspace pins one.`);
202
+ return;
203
+ }
204
+ const port = Number(arg('port') ?? process.env.MCP_PORT ?? 8000);
205
+ const host = arg('host') ?? process.env.MCP_HOST ?? '127.0.0.1';
206
+ const server = startHttpServer({ port, host, env: process.env });
207
+ await new Promise((resolve) => server.listen(port, host, resolve));
208
+ console.error(`huly-mcp http: listening on http://${host}:${port}/mcp`);
209
+ const stop = () => { server.close(() => process.exit(0)); setTimeout(() => process.exit(0), 3000).unref(); };
210
+ process.on('SIGINT', stop);
211
+ process.on('SIGTERM', stop);
212
+ }
213
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,12 +7,25 @@ const connection_1 = require("./connection");
7
7
  const env_1 = require("./env");
8
8
  const watch_1 = require("./watch");
9
9
  const junit_cli_1 = require("./junit-cli");
10
+ const http_1 = require("./http");
10
11
  const redact_1 = require("./utils/redact");
11
12
  async function main() {
12
13
  if (process.argv[2] === 'watch') {
13
14
  await (0, watch_1.runWatch)(process.argv.slice(3));
14
15
  return;
15
16
  }
17
+ if (process.argv[2] === 'http') {
18
+ (0, env_1.normalizeEnv)();
19
+ (0, redact_1.routeConsoleToStderr)();
20
+ await (0, http_1.runHttp)(process.argv.slice(3));
21
+ return;
22
+ }
23
+ if (process.argv[2] === 'setup') {
24
+ // `npx huly-mcp-selfhost setup`: the token wizard for SSO accounts (scripts/setup.js ships in the package).
25
+ process.env.HULY_SETUP_RUN = '1';
26
+ require('../scripts/setup.js');
27
+ return;
28
+ }
16
29
  if (process.argv[2] === 'junit') {
17
30
  await (0, junit_cli_1.runJUnit)(process.argv.slice(3));
18
31
  process.exit();
@@ -33,6 +46,8 @@ async function main() {
33
46
  process.exit(0);
34
47
  });
35
48
  await server.connect(transport);
49
+ // Log in and open the (single) workspace now, not on the first tool call.
50
+ void (0, connection_1.prewarm)();
36
51
  // Process stays alive — connection maintained until shutdown
37
52
  }
38
53
  main().catch((err) => {