@briefgate/mcp 0.7.1 → 0.7.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
@@ -79,6 +79,29 @@ BRIEFGATE_API_KEY=bg_live_... npx @briefgate/mcp --http --port 3000
79
79
 
80
80
  The server binds to `127.0.0.1` only and includes DNS-rebinding protection. Behind a reverse proxy, terminate TLS there and forward to the local port — do not expose the port directly.
81
81
 
82
+ ### Published mode (one endpoint, many customers)
83
+
84
+ Set `BRIEFGATE_MCP_PUBLIC_HOST` to the hostname the server is published under and
85
+ it becomes a multi-customer endpoint: each caller sends its own key as
86
+ `Authorization: Bearer bg_live_...`, and the server speaks to the BriefGate API
87
+ as that caller.
88
+
89
+ ```bash
90
+ BRIEFGATE_MCP_PUBLIC_HOST=mcp.example.com npx @briefgate/mcp --http --port 3000
91
+ ```
92
+
93
+ Three things change, on purpose:
94
+
95
+ - the listener binds `0.0.0.0` and the Host guard accepts that name, because a
96
+ server behind a reverse proxy is reached by its public name;
97
+ - **the `BRIEFGATE_API_KEY` fallback is switched off.** Leaving it on would let
98
+ an anonymous caller spend the operator's key;
99
+ - requests still reach `initialize` and `tools/list` without a key, so a client
100
+ or registry can read the tool list before anyone has signed up. A tool call
101
+ without a key fails with a sentence saying what to send.
102
+
103
+ The public instance is `https://mcp.briefgate.dev/mcp`.
104
+
82
105
  ## Tools
83
106
 
84
107
  ### `define_intake`
@@ -0,0 +1,31 @@
1
+ import type { IncomingMessage } from 'node:http';
2
+ import type { BriefGateConfig } from './client.js';
3
+ export interface HttpAuthOptions {
4
+ /** Hostname this server is published under, or undefined when it is loopback-only. */
5
+ publicHost?: string | undefined;
6
+ /** BRIEFGATE_API_KEY, used only when the server is NOT published. */
7
+ envApiKey?: string | undefined;
8
+ baseUrl: string;
9
+ }
10
+ /**
11
+ * The API key for one request.
12
+ *
13
+ * Published mode reads it from the Authorization header and nowhere else. The
14
+ * environment fallback exists so a laptop can run `--http` against the
15
+ * operator's own key; on a public endpoint it would hand that key to whoever
16
+ * asked first, so it is switched off there rather than merely discouraged.
17
+ *
18
+ * An absent key is not an error here. `initialize` and `tools/list` have to work
19
+ * without one, or no registry can read the tool list before anybody signs up —
20
+ * a tool call with no key fails later with a sentence saying so.
21
+ */
22
+ export declare function configForRequest(req: IncomingMessage, opts: HttpAuthOptions): BriefGateConfig;
23
+ /**
24
+ * DNS-rebinding guard. On a laptop this is what stops a page in the user's own
25
+ * browser from talking to the server; published, it also refuses traffic that
26
+ * arrived under someone else's name — a proxy misroute, or a second hostname
27
+ * pointed at this box by whoever noticed the IP.
28
+ */
29
+ export declare function isAllowedHost(host: string, publicHost?: string | undefined): boolean;
30
+ export declare function isAllowedOrigin(origin: string, publicHost?: string | undefined): boolean;
31
+ //# sourceMappingURL=http-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-auth.d.ts","sourceRoot":"","sources":["../src/http-auth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,GAAG,eAAe,CAO7F;AAID;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAIpF;AAMD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGxF"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The API key for one request.
3
+ *
4
+ * Published mode reads it from the Authorization header and nowhere else. The
5
+ * environment fallback exists so a laptop can run `--http` against the
6
+ * operator's own key; on a public endpoint it would hand that key to whoever
7
+ * asked first, so it is switched off there rather than merely discouraged.
8
+ *
9
+ * An absent key is not an error here. `initialize` and `tools/list` have to work
10
+ * without one, or no registry can read the tool list before anybody signs up —
11
+ * a tool call with no key fails later with a sentence saying so.
12
+ */
13
+ export function configForRequest(req, opts) {
14
+ const header = req.headers['authorization'];
15
+ const bearer = typeof header === 'string' ? /^Bearer\s+(\S+)$/i.exec(header.trim())?.[1] : undefined;
16
+ const apiKey = opts.publicHost ? (bearer ?? '') : (bearer ?? opts.envApiKey ?? '');
17
+ return { apiKey, baseUrl: opts.baseUrl };
18
+ }
19
+ const LOOPBACK_HOST_RE = /^(?:localhost|127\.0\.0\.1|\[::1\])(?::\d+)?$/;
20
+ /**
21
+ * DNS-rebinding guard. On a laptop this is what stops a page in the user's own
22
+ * browser from talking to the server; published, it also refuses traffic that
23
+ * arrived under someone else's name — a proxy misroute, or a second hostname
24
+ * pointed at this box by whoever noticed the IP.
25
+ */
26
+ export function isAllowedHost(host, publicHost) {
27
+ const withoutPort = host.replace(/:\d+$/, '').toLowerCase();
28
+ if (publicHost && withoutPort === publicHost.toLowerCase())
29
+ return true;
30
+ return LOOPBACK_HOST_RE.test(host);
31
+ }
32
+ /** Loopback origins and claude.ai, which proxies MCP for its own clients. */
33
+ const SAFE_ORIGIN_RE = /^https?:\/\/(?:localhost|127\.0\.0\.1|\[::1\])(?::\d+)?$|^https:\/\/claude\.ai$/;
34
+ export function isAllowedOrigin(origin, publicHost) {
35
+ if (publicHost && origin.toLowerCase() === `https://${publicHost.toLowerCase()}`)
36
+ return true;
37
+ return SAFE_ORIGIN_RE.test(origin);
38
+ }
39
+ //# sourceMappingURL=http-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-auth.js","sourceRoot":"","sources":["../src/http-auth.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAoB,EAAE,IAAqB;IAC1E,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5C,MAAM,MAAM,GACV,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAExF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACnF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,gBAAgB,GAAG,+CAA+C,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,UAA+B;IACzE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,IAAI,UAAU,IAAI,WAAW,KAAK,UAAU,CAAC,WAAW,EAAE;QAAE,OAAO,IAAI,CAAC;IACxE,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,6EAA6E;AAC7E,MAAM,cAAc,GAClB,iFAAiF,CAAC;AAEpF,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,UAA+B;IAC7E,IAAI,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,WAAW,UAAU,CAAC,WAAW,EAAE,EAAE;QAAE,OAAO,IAAI,CAAC;IAC9F,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
package/dist/index.js CHANGED
@@ -11,6 +11,7 @@ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/
11
11
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
12
12
  import { createServer } from 'node:http';
13
13
  import { TOOLS, executeTool } from './tools.js';
14
+ import { configForRequest, isAllowedHost, isAllowedOrigin } from './http-auth.js';
14
15
  // ─── Config ───────────────────────────────────────────────────────────────────
15
16
  const apiKey = process.env['BRIEFGATE_API_KEY'];
16
17
  const baseUrl = process.env['BRIEFGATE_BASE_URL'] ?? 'https://api.briefgate.dev';
@@ -38,32 +39,49 @@ const config = {
38
39
  apiKey: apiKey ?? '',
39
40
  baseUrl,
40
41
  };
42
+ // Set to the hostname this server is published under (e.g. mcp.briefgate.dev)
43
+ // to run it as a public, multi-customer endpoint. Unset — the default and the
44
+ // only thing `npx @briefgate/mcp --http` does on a laptop — keeps the server on
45
+ // loopback with the operator's own key, exactly as before.
46
+ //
47
+ // Turning it on changes two things on purpose:
48
+ // * the listener binds 0.0.0.0 and the Host guard accepts this name, because
49
+ // a server behind a reverse proxy is reached by its public name;
50
+ // * the BRIEFGATE_API_KEY fallback is switched OFF. Leaving it on would let
51
+ // an anonymous caller spend the operator's key, which is the whole failure
52
+ // this mode has to avoid.
53
+ const PUBLIC_HOST = process.env['BRIEFGATE_MCP_PUBLIC_HOST'];
41
54
  // The version handed to clients in the MCP handshake. Read from package.json
42
55
  // rather than repeated here: hand-maintained it had drifted to 0.1.0 while the
43
56
  // package shipped 0.3.0, so every client was told the wrong version.
44
57
  const PACKAGE_VERSION = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')).version;
45
58
  // ─── Server factory ───────────────────────────────────────────────────────────
46
- // Returns a fresh Server instance bound to the shared config.
47
- // In HTTP mode we create one Server per request (stateless pattern).
48
- function buildServer() {
59
+ // Returns a fresh Server instance bound to one caller's config.
60
+ //
61
+ // HTTP mode builds one per request, which is what makes a public deployment
62
+ // possible at all: the API key travels with the request rather than the
63
+ // process, so two customers hitting the same server never share a credential.
64
+ function buildServer(cfg) {
49
65
  const server = new Server({ name: '@briefgate/mcp', version: PACKAGE_VERSION }, { capabilities: { tools: {} } });
50
66
  server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOLS }));
51
67
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
52
68
  const { name, arguments: rawArgs } = request.params;
53
69
  const args = (rawArgs ?? {});
54
- if (!apiKey) {
70
+ if (!cfg.apiKey) {
55
71
  return {
56
72
  content: [
57
73
  {
58
74
  type: 'text',
59
- text: 'Error: BRIEFGATE_API_KEY is not set. Get a key at https://briefgate.dev and add it to your MCP client config.',
75
+ text: PUBLIC_HOST
76
+ ? 'Error: no API key was sent. Connect with an Authorization: Bearer bg_live_... header; get a key at https://briefgate.dev.'
77
+ : 'Error: BRIEFGATE_API_KEY is not set. Get a key at https://briefgate.dev and add it to your MCP client config.',
60
78
  },
61
79
  ],
62
80
  isError: true,
63
81
  };
64
82
  }
65
83
  try {
66
- const result = await executeTool(name, config, args);
84
+ const result = await executeTool(name, cfg, args);
67
85
  return {
68
86
  content: [{ type: 'text', text: result.text }],
69
87
  ...(result.isError ? { isError: true } : {}),
@@ -91,27 +109,33 @@ if (useHttp) {
91
109
  const port = !isNaN(portArg)
92
110
  ? portArg
93
111
  : parseInt(process.env['BRIEFGATE_MCP_PORT'] ?? '', 10) || 3000;
94
- // Bind to loopback only DNS rebinding attacks require the server to accept
95
- // requests from any origin; binding to 127.0.0.1 prevents cross-origin access
96
- // from a browser-based attacker even when the Host header is spoofed.
97
- const host = '127.0.0.1';
112
+ // Loopback unless this server is deliberately published. On a laptop the
113
+ // loopback bind is what stops a browser-based attacker reaching the server at
114
+ // all; behind a reverse proxy it would stop the proxy too.
115
+ const host = PUBLIC_HOST ? '0.0.0.0' : '127.0.0.1';
98
116
  const httpServer = createServer(async (req, res) => {
99
117
  // DNS rebinding guard: reject requests whose Host header does not resolve
100
118
  // to a loopback address. A real browser attacker cannot spoof this header,
101
119
  // but a misconfigured proxy or custom client might send something unexpected.
102
120
  const host_ = req.headers['host'] ?? '';
103
- if (!isSafeHost(host_)) {
121
+ if (!isAllowedHost(host_, PUBLIC_HOST)) {
104
122
  res.writeHead(400, { 'Content-Type': 'application/json' });
105
- res.end(JSON.stringify({ error: 'Invalid Host header — only localhost connections are accepted' }));
123
+ res.end(JSON.stringify({
124
+ error: PUBLIC_HOST
125
+ ? 'Invalid Host header'
126
+ : 'Invalid Host header — only localhost connections are accepted',
127
+ }));
106
128
  return;
107
129
  }
108
130
  // CORS: allow claude.ai and localhost origins; reject everything else.
109
131
  const origin = req.headers['origin'];
110
132
  if (origin !== undefined) {
111
- if (isSafeOrigin(origin)) {
133
+ if (isAllowedOrigin(origin, PUBLIC_HOST)) {
112
134
  res.setHeader('Access-Control-Allow-Origin', origin);
113
135
  res.setHeader('Access-Control-Allow-Methods', 'POST, GET, DELETE, OPTIONS');
114
- res.setHeader('Access-Control-Allow-Headers', 'Content-Type, mcp-session-id');
136
+ // authorization is on the list because that is how a remote caller
137
+ // sends its key; without it a browser client cannot connect at all.
138
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type, mcp-session-id, authorization');
115
139
  }
116
140
  else {
117
141
  res.writeHead(403, { 'Content-Type': 'application/json' });
@@ -137,7 +161,7 @@ if (useHttp) {
137
161
  return;
138
162
  }
139
163
  const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined });
140
- const server = buildServer();
164
+ const server = buildServer(configForRequest(req, { publicHost: PUBLIC_HOST, envApiKey: apiKey, baseUrl }));
141
165
  res.on('close', () => {
142
166
  transport.close();
143
167
  server.close();
@@ -168,7 +192,9 @@ if (useHttp) {
168
192
  }
169
193
  else {
170
194
  // ── stdio transport (default) ──────────────────────────────────────────────
171
- const server = buildServer();
195
+ // One process, one user, key from the environment — a local client has no
196
+ // other way to hand one over.
197
+ const server = buildServer(config);
172
198
  const transport = new StdioServerTransport();
173
199
  await server.connect(transport);
174
200
  }
@@ -181,13 +207,4 @@ function readBody(req) {
181
207
  req.on('error', reject);
182
208
  });
183
209
  }
184
- const SAFE_HOST_RE = /^(?:localhost|127\.0\.0\.1|\[::1\])(?::\d+)?$/;
185
- function isSafeHost(host) {
186
- return SAFE_HOST_RE.test(host);
187
- }
188
- // Allow requests from localhost origins and claude.ai (which proxies MCP).
189
- const SAFE_ORIGIN_RE = /^https?:\/\/(?:localhost|127\.0\.0\.1|\[::1\])(?::\d+)?$|^https:\/\/claude\.ai$/;
190
- function isSafeOrigin(origin) {
191
- return SAFE_ORIGIN_RE.test(origin);
192
- }
193
210
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@briefgate/mcp",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "mcpName": "io.github.sekera-radim/briefgate",
5
5
  "description": "BriefGate MCP server — your coding agent asks the client for logos, copy and credentials, and BriefGate chases them until they arrive.",
6
6
  "keywords": [