boondmanager-mcp-server 1.9.1 → 2.0.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.
- package/README.md +65 -50
- package/dist/index.js +18 -10
- package/dist/index.js.map +1 -1
- package/dist/schemas/index.d.ts +1 -1
- package/dist/services/boond-client.d.ts +19 -1
- package/dist/services/boond-client.d.ts.map +1 -1
- package/dist/services/boond-client.js +59 -17
- package/dist/services/boond-client.js.map +1 -1
- package/dist/services/oauth.d.ts +75 -0
- package/dist/services/oauth.d.ts.map +1 -0
- package/dist/services/oauth.js +84 -0
- package/dist/services/oauth.js.map +1 -0
- package/dist/transports/http.d.ts +8 -1
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +121 -65
- package/dist/transports/http.js.map +1 -1
- package/dist/types.d.ts +10 -2
- package/dist/types.d.ts.map +1 -1
- package/manifest.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
[](https://nodejs.org/)
|
|
8
8
|
[](https://www.typescriptlang.org/)
|
|
9
9
|
[](https://registry.modelcontextprotocol.io/)
|
|
10
|
+
[](https://hub.docker.com/r/fauguste/boondmanager-mcp-server)
|
|
11
|
+
[](https://github.com/fauguste/boondmanager-mcp-server/pkgs/container/boondmanager-mcp-server)
|
|
10
12
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
11
13
|
|
|
12
14
|
Serveur MCP (Model Context Protocol) pour l'API BoondManager, permettant a Claude (Desktop, Cowork, Code) de rechercher, consulter, creer et modifier des enregistrements dans votre instance BoondManager.
|
|
@@ -434,18 +436,22 @@ Le serveur supporte deux transports MCP, selectionnables via la variable d'envir
|
|
|
434
436
|
|
|
435
437
|
Depuis la v1.4.0, le serveur peut etre expose en HTTP (specification MCP Streamable HTTP 2025-03-26) afin d'etre branche derriere une passerelle MCP ou deploye comme service.
|
|
436
438
|
|
|
439
|
+
> **Authentification BoondManager : OAuth2 protected resource.** Le serveur HTTP **ne detient aucun secret** (ni `client_secret`, ni refresh token, ni stockage utilisateur). Chaque requete MCP doit porter `Authorization: Bearer <boond_access_token>` ; le serveur transmet le token tel quel a BoondManager. C'est le **client MCP** (Claude Desktop, Claude Code, gateway…) qui fait la danse OAuth contre BoondManager et qui gere le refresh. Procedure complete : [docs/oauth.md](docs/oauth.md).
|
|
440
|
+
|
|
437
441
|
```bash
|
|
438
442
|
export MCP_TRANSPORT=http
|
|
439
443
|
export MCP_HTTP_HOST=0.0.0.0 # defaut: 127.0.0.1
|
|
440
444
|
export MCP_HTTP_PORT=3000 # defaut: 3000
|
|
441
445
|
export MCP_HTTP_PATH=/mcp # defaut: /mcp
|
|
442
|
-
|
|
443
|
-
|
|
446
|
+
# Optionnel: requis uniquement derriere un reverse proxy, pour que
|
|
447
|
+
# la discovery annonce la bonne URL publique.
|
|
448
|
+
export MCP_HTTP_PUBLIC_URL=https://mcp.votre-domaine.com/mcp
|
|
444
449
|
|
|
445
450
|
npx boondmanager-mcp-server
|
|
446
451
|
# 🚀 BoondManager MCP Server running (streamable HTTP transport)
|
|
447
452
|
# 📡 Endpoint: http://0.0.0.0:3000/mcp
|
|
448
453
|
# 🔑 Mode: stateless
|
|
454
|
+
# 🔐 Boond auth: OAuth2 (per-request Bearer from MCP client)
|
|
449
455
|
```
|
|
450
456
|
|
|
451
457
|
**Variables d'environnement HTTP**
|
|
@@ -457,85 +463,94 @@ npx boondmanager-mcp-server
|
|
|
457
463
|
| `MCP_HTTP_PORT` | `3000` | Port TCP |
|
|
458
464
|
| `MCP_HTTP_PATH` | `/mcp` | Chemin HTTP de l'endpoint MCP |
|
|
459
465
|
| `MCP_HTTP_STATEFUL` | `false` | `true` pour activer le mode stateful (session `Mcp-Session-Id`) |
|
|
460
|
-
| `MCP_HTTP_BEARER_TOKEN` | _(vide)_ | Si defini, le serveur exige `Authorization: Bearer <token>` |
|
|
461
466
|
| `MCP_HTTP_JSON_RESPONSE` | `false` | `true` pour forcer des reponses JSON (sans SSE) |
|
|
467
|
+
| `MCP_HTTP_PUBLIC_URL` | _(derivee)_ | URL publique annoncee dans la discovery OAuth2 (`resource`) et le challenge `WWW-Authenticate`. Requise derriere un reverse proxy. |
|
|
462
468
|
| `MCP_HTTP_SESSION_TTL_MS` | `1800000` (30 min) | En mode stateful, duree d'inactivite au-dela de laquelle une session est fermee. |
|
|
463
469
|
| `MCP_HTTP_SESSION_SWEEP_INTERVAL_MS` | `300000` (5 min) | Frequence de balayage des sessions inactives. |
|
|
470
|
+
| `MCP_HTTP_ALLOWED_HOSTS` | _(auto)_ | Liste blanche du header `Host` (anti DNS rebinding, CVE-2025-66414). `*` pour desactiver explicitement. |
|
|
471
|
+
|
|
472
|
+
**Variables OAuth2 — discovery (toutes optionnelles)**
|
|
473
|
+
|
|
474
|
+
| Variable | Defaut | Description |
|
|
475
|
+
|----------|--------|-------------|
|
|
476
|
+
| `BOOND_OAUTH_AUTHORIZATION_SERVER` | `https://ui.boondmanager.com` | Issuer de l'authorization server BoondManager, annonce dans `authorization_servers` |
|
|
477
|
+
| `BOOND_OAUTH_SCOPES` | _(vide)_ | Scopes annonces dans `scopes_supported` (espace ou virgule). Vide = le client negocie directement avec Boond. |
|
|
464
478
|
|
|
465
479
|
**Stateless (defaut)** : chaque requete HTTP POST est independante, idealement adapte a un gateway qui multiplexe plusieurs serveurs MCP. Aucune session n'est conservee cote serveur.
|
|
466
480
|
|
|
467
481
|
**Stateful** : le serveur genere un `Mcp-Session-Id` a l'initialisation que le client doit renvoyer dans chaque requete suivante. Utile pour les clients MCP natifs qui beneficient du streaming SSE et des notifications serveur.
|
|
468
482
|
|
|
469
|
-
#### Exemple :
|
|
483
|
+
#### Exemple : discovery + 401 challenge
|
|
470
484
|
|
|
471
485
|
```bash
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
486
|
+
# Public, pas d'auth -> documente OU envoyer le user pour autoriser
|
|
487
|
+
curl -s http://localhost:3000/.well-known/oauth-protected-resource | jq .
|
|
488
|
+
# {
|
|
489
|
+
# "resource": "http://0.0.0.0:3000/mcp",
|
|
490
|
+
# "authorization_servers": ["https://ui.boondmanager.com"],
|
|
491
|
+
# "bearer_methods_supported": ["header"]
|
|
492
|
+
# }
|
|
493
|
+
|
|
494
|
+
# Appel MCP sans token -> 401 + WWW-Authenticate qui pointe vers la discovery
|
|
495
|
+
curl -s -o /dev/null -w "%{http_code}\n%header{www-authenticate}\n" \
|
|
496
|
+
-X POST http://localhost:3000/mcp -d '{}'
|
|
497
|
+
# 401
|
|
498
|
+
# Bearer realm="http://0.0.0.0:3000/mcp", resource_metadata="http://0.0.0.0:3000/.well-known/oauth-protected-resource/mcp"
|
|
485
499
|
```
|
|
486
500
|
|
|
487
501
|
#### Exemple : Claude Code via HTTP
|
|
488
502
|
|
|
503
|
+
Avec un client MCP conforme a la spec MCP Authorization 2025-06-18, la decouverte OAuth est automatique :
|
|
504
|
+
|
|
489
505
|
```bash
|
|
490
|
-
claude mcp add --transport http
|
|
491
|
-
|
|
492
|
-
|
|
506
|
+
claude mcp add --transport http boondmanager https://mcp.votre-domaine.com/mcp
|
|
507
|
+
# Le client recoit le 401 + WWW-Authenticate, fetch la metadata, ouvre
|
|
508
|
+
# le navigateur pour autoriser l'App BoondManager, puis re-emet la requete
|
|
509
|
+
# avec le Bearer token recu.
|
|
493
510
|
```
|
|
494
511
|
|
|
495
|
-
#### Exemple :
|
|
512
|
+
#### Exemple : Docker (image officielle)
|
|
496
513
|
|
|
497
|
-
|
|
498
|
-
{
|
|
499
|
-
"mcpServers": {
|
|
500
|
-
"boondmanager": {
|
|
501
|
-
"type": "http",
|
|
502
|
-
"url": "https://mcp.votre-domaine.com/mcp",
|
|
503
|
-
"headers": {
|
|
504
|
-
"Authorization": "Bearer ${MCP_HTTP_BEARER_TOKEN}"
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
```
|
|
514
|
+
Une image Docker prete a l'emploi est publiee a chaque release sur deux registres miroirs, multi-arch (`linux/amd64` + `linux/arm64`) :
|
|
510
515
|
|
|
511
|
-
|
|
516
|
+
| Registre | Image | Page |
|
|
517
|
+
|---|---|---|
|
|
518
|
+
| GitHub Container Registry | `ghcr.io/fauguste/boondmanager-mcp-server` | [github.com/fauguste/boondmanager-mcp-server/pkgs/container/boondmanager-mcp-server](https://github.com/fauguste/boondmanager-mcp-server/pkgs/container/boondmanager-mcp-server) |
|
|
519
|
+
| Docker Hub | `docker.io/fauguste/boondmanager-mcp-server` | [hub.docker.com/r/fauguste/boondmanager-mcp-server](https://hub.docker.com/r/fauguste/boondmanager-mcp-server) |
|
|
512
520
|
|
|
513
|
-
|
|
521
|
+
Memes digests, memes tags — choisissez celui qui s'aligne avec votre tooling. L'image demarre par defaut en transport HTTP, sur le port 3000, sur l'interface `0.0.0.0`. **Aucun volume, aucun secret a stocker** — le serveur est stateless par construction.
|
|
514
522
|
|
|
515
523
|
```bash
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
-
|
|
524
|
+
# Via GHCR (authentification GitHub si registre prive)
|
|
525
|
+
docker run -d --restart unless-stopped \
|
|
526
|
+
-p 127.0.0.1:3000:3000 \
|
|
527
|
+
-e MCP_HTTP_PUBLIC_URL=https://mcp.votre-domaine.com/mcp \
|
|
528
|
+
--name boondmanager-mcp \
|
|
519
529
|
ghcr.io/fauguste/boondmanager-mcp-server:latest
|
|
530
|
+
|
|
531
|
+
# Ou via Docker Hub (anonyme)
|
|
532
|
+
docker run -d --restart unless-stopped \
|
|
533
|
+
-p 127.0.0.1:3000:3000 \
|
|
534
|
+
-e MCP_HTTP_PUBLIC_URL=https://mcp.votre-domaine.com/mcp \
|
|
535
|
+
--name boondmanager-mcp \
|
|
536
|
+
fauguste/boondmanager-mcp-server:latest
|
|
520
537
|
```
|
|
521
538
|
|
|
522
|
-
Tags disponibles : `:latest`, `:
|
|
539
|
+
Tags disponibles sur les deux registres : `:latest`, `:X`, `:X.Y`, `:X.Y.Z` pour chaque release stable (la version exacte est recommandee pour la prod). Les **prereleases** (par exemple `:2.0.0-alpha`) sont publiees **uniquement sous leur tag pinne** — ni `:latest`, ni `:X`, ni `:X.Y` ne bougent. Variables d'environnement supportees : voir [Configuration](#configuration) et [Transports](#transports).
|
|
523
540
|
|
|
524
|
-
#### Exemple :
|
|
541
|
+
#### Exemple : docker-compose
|
|
525
542
|
|
|
526
|
-
|
|
543
|
+
Le repo embarque un `docker-compose.yml` pret a l'emploi : un seul service stateless, aucun volume, aucun secret cote serveur.
|
|
527
544
|
|
|
528
545
|
```bash
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
node:22-alpine \
|
|
535
|
-
npx -y boondmanager-mcp-server
|
|
546
|
+
# Optionnel : surcharger MCP_HTTP_PUBLIC_URL si fronted par un reverse proxy
|
|
547
|
+
cp .env.example .env
|
|
548
|
+
|
|
549
|
+
docker compose up -d
|
|
550
|
+
docker compose logs -f mcp
|
|
536
551
|
```
|
|
537
552
|
|
|
538
|
-
> **Securite** :
|
|
553
|
+
> **Securite** : le serveur HTTP est stateless et ne stocke aucun secret BoondManager. Chaque utilisateur authentifie le serveur via son propre token OAuth2 (issu de sa propre App BoondManager), et toutes les actions sont attribuees a son identite dans l'audit log Boond. Derriere un reverse proxy : terminez TLS (HTTPS), forwardez l'en-tete `Authorization`, et reglez `MCP_HTTP_PUBLIC_URL` sur l'URL publique pour que la discovery soit coherente.
|
|
539
554
|
|
|
540
555
|
## Exemples d'utilisation
|
|
541
556
|
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
|
-
import { initClient } from "./services/boond-client.js";
|
|
3
|
+
import { initClient, initClientWithAuth, oauthContextAuth } from "./services/boond-client.js";
|
|
4
4
|
import { createMcpServer, REGISTERED_DOMAINS } from "./server.js";
|
|
5
5
|
import { resolveHttpOptions, startHttpTransport } from "./transports/http.js";
|
|
6
6
|
function resolveTransport() {
|
|
@@ -10,20 +10,20 @@ function resolveTransport() {
|
|
|
10
10
|
return "stdio";
|
|
11
11
|
}
|
|
12
12
|
async function main() {
|
|
13
|
-
try {
|
|
14
|
-
initClient();
|
|
15
|
-
}
|
|
16
|
-
catch (error) {
|
|
17
|
-
console.error("⚠️ Configuration warning:", error.message);
|
|
18
|
-
console.error("The server will start but API calls will fail without proper credentials.");
|
|
19
|
-
}
|
|
20
13
|
const kind = resolveTransport();
|
|
21
14
|
if (kind === "http") {
|
|
15
|
+
// HTTP transport: OAuth2 only. The MCP server is a *protected resource*
|
|
16
|
+
// — it does not hold any OAuth client secrets and does not store tokens.
|
|
17
|
+
// Each MCP request carries its own `Authorization: Bearer <token>`,
|
|
18
|
+
// which the transport pushes into an AsyncLocalStorage context that the
|
|
19
|
+
// boond-client reads to call BoondManager on behalf of the user.
|
|
20
|
+
initClientWithAuth(oauthContextAuth);
|
|
22
21
|
const options = resolveHttpOptions();
|
|
23
22
|
const handle = await startHttpTransport(createMcpServer, options);
|
|
24
23
|
console.error("🚀 BoondManager MCP Server running (streamable HTTP transport)");
|
|
25
24
|
console.error(`📡 Endpoint: http://${handle.address.host}:${handle.address.port}${handle.address.path}`);
|
|
26
|
-
console.error(`🔑 Mode: ${options.stateless ? "stateless" : "stateful"}
|
|
25
|
+
console.error(`🔑 Mode: ${options.stateless ? "stateless" : "stateful"}`);
|
|
26
|
+
console.error("🔐 Boond auth: OAuth2 (per-request Bearer from MCP client)");
|
|
27
27
|
console.error(`📦 Domains: ${REGISTERED_DOMAINS.join(", ")}`);
|
|
28
28
|
const shutdown = async (signal) => {
|
|
29
29
|
console.error(`\n🛑 Received ${signal}, shutting down...`);
|
|
@@ -34,6 +34,14 @@ async function main() {
|
|
|
34
34
|
process.on("SIGTERM", () => void shutdown("SIGTERM"));
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
|
+
// stdio path: existing JWT / BasicAuth env vars (unchanged).
|
|
38
|
+
try {
|
|
39
|
+
initClient();
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
console.error("⚠️ Configuration warning:", error.message);
|
|
43
|
+
console.error("The server will start but API calls will fail without proper credentials.");
|
|
44
|
+
}
|
|
37
45
|
const server = createMcpServer();
|
|
38
46
|
const transport = new StdioServerTransport();
|
|
39
47
|
await server.connect(transport);
|
|
@@ -41,7 +49,7 @@ async function main() {
|
|
|
41
49
|
console.error(`📦 Domains: ${REGISTERED_DOMAINS.join(", ")}`);
|
|
42
50
|
}
|
|
43
51
|
main().catch((error) => {
|
|
44
|
-
console.error("Fatal error:", error);
|
|
52
|
+
console.error("Fatal error:", error instanceof Error ? error.message : error);
|
|
45
53
|
process.exit(1);
|
|
46
54
|
});
|
|
47
55
|
//# 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":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas/index.d.ts
CHANGED
|
@@ -185,8 +185,8 @@ export declare const ContactSearchSchema: z.ZodObject<{
|
|
|
185
185
|
export declare const CompanySearchSchema: z.ZodObject<{
|
|
186
186
|
keywords: z.ZodOptional<z.ZodString>;
|
|
187
187
|
keywordsType: z.ZodOptional<z.ZodEnum<{
|
|
188
|
-
default: "default";
|
|
189
188
|
name: "name";
|
|
189
|
+
default: "default";
|
|
190
190
|
emails: "emails";
|
|
191
191
|
phones: "phones";
|
|
192
192
|
socialNetworks: "socialNetworks";
|
|
@@ -1,7 +1,25 @@
|
|
|
1
|
-
import type { JsonApiResponse, SearchParams } from "../types.js";
|
|
1
|
+
import type { BoondAuthProvider, JsonApiResponse, SearchParams } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Auth provider for the HTTP transport: reads the Bearer token from the
|
|
4
|
+
* per-request AsyncLocalStorage populated by the transport layer and
|
|
5
|
+
* forwards it verbatim to BoondManager as `Authorization: Bearer …`.
|
|
6
|
+
*
|
|
7
|
+
* Errors out clearly if called outside a request context — which would
|
|
8
|
+
* indicate that the transport layer forgot to wrap the request in
|
|
9
|
+
* `oauthContext.run(...)`.
|
|
10
|
+
*/
|
|
11
|
+
export declare const oauthContextAuth: BoondAuthProvider;
|
|
2
12
|
export declare function buildJwt(userToken: string, clientToken: string, clientKey: string): string;
|
|
3
13
|
export declare const JWT_HEADER_NAME = "X-Jwt-Client-Boondmanager";
|
|
4
14
|
export declare function initClient(): void;
|
|
15
|
+
/**
|
|
16
|
+
* Install a custom auth provider — used by the HTTP transport bootstrap to
|
|
17
|
+
* wire in an OAuth2 token source (where the access token is refreshed
|
|
18
|
+
* transparently per request rather than baked in at startup).
|
|
19
|
+
*/
|
|
20
|
+
export declare function initClientWithAuth(auth: BoondAuthProvider, baseUrl?: string): void;
|
|
21
|
+
/** Test helper — reset the cached config so the next call re-initialises. */
|
|
22
|
+
export declare function resetClientForTests(): void;
|
|
5
23
|
export type QueryValue = string | number | Array<string | number> | undefined;
|
|
6
24
|
/**
|
|
7
25
|
* Pull the human-readable bits out of a BoondManager error body.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boond-client.d.ts","sourceRoot":"","sources":["../../src/services/boond-client.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAe,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"boond-client.d.ts","sourceRoot":"","sources":["../../src/services/boond-client.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,iBAAiB,EAAe,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMjG;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAQ9B,CAAC;AAOF,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAK1F;AASD,eAAO,MAAM,eAAe,8BAA8B,CAAC;AAW3D,wBAAgB,UAAU,IAAI,IAAI,CAoCjC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAKlF;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AASD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC;AAE9E;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiC/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAWD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAYD,qFAAqF;AACrF,wBAAgB,kBAAkB,IAAI,WAAW,CAMhD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAM5G;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,GAAE,MAAmB,GAAG,MAAM,GAAG,IAAI,CAc7F;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAM,MAAoB,GACjC,MAAM,CAIR;AAOD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,eAAe,GAAG,IAAI,CAa/D;AAaD;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAyDD,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA0BrH;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAgB,EAC3D,IAAI,CAAC,EAAE,OAAO,EACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GACvC,OAAO,CAAC,eAAe,CAAC,CA6H1B;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAsBjF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAuC3D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAoBxF;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAetE"}
|
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
import { createHmac } from "crypto";
|
|
2
2
|
import { DEFAULT_BASE_URL, CHARACTER_LIMIT, DEFAULT_HTTP_TIMEOUT_MS, DEFAULT_HTTP_MAX_RETRIES, DEFAULT_HTTP_RETRY_BASE_MS, DEFAULT_HTTP_RETRY_MAX_MS, DEFAULT_HTTP_RATE_LIMIT_RPS, DEFAULT_HTTP_RATE_LIMIT_BURST, } from "../constants.js";
|
|
3
3
|
import { TokenBucket } from "./rate-limiter.js";
|
|
4
|
+
import { oauthContext } from "./oauth.js";
|
|
4
5
|
let config = null;
|
|
6
|
+
/**
|
|
7
|
+
* Auth provider for the HTTP transport: reads the Bearer token from the
|
|
8
|
+
* per-request AsyncLocalStorage populated by the transport layer and
|
|
9
|
+
* forwards it verbatim to BoondManager as `Authorization: Bearer …`.
|
|
10
|
+
*
|
|
11
|
+
* Errors out clearly if called outside a request context — which would
|
|
12
|
+
* indicate that the transport layer forgot to wrap the request in
|
|
13
|
+
* `oauthContext.run(...)`.
|
|
14
|
+
*/
|
|
15
|
+
export const oauthContextAuth = async () => {
|
|
16
|
+
const ctx = oauthContext.getStore();
|
|
17
|
+
if (!ctx) {
|
|
18
|
+
throw new Error("No OAuth access token in request context. The HTTP transport requires an `Authorization: Bearer <boond_access_token>` header on every request.");
|
|
19
|
+
}
|
|
20
|
+
return { name: "Authorization", value: `Bearer ${ctx.accessToken}` };
|
|
21
|
+
};
|
|
5
22
|
function base64url(data) {
|
|
6
23
|
const b64 = Buffer.from(data).toString("base64");
|
|
7
24
|
return b64.replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
@@ -20,9 +37,17 @@ function envOrUndefined(key) {
|
|
|
20
37
|
return v;
|
|
21
38
|
}
|
|
22
39
|
export const JWT_HEADER_NAME = "X-Jwt-Client-Boondmanager";
|
|
40
|
+
/**
|
|
41
|
+
* Wrap a static header pair in the dynamic AuthProvider contract.
|
|
42
|
+
* Used by the stdio transport, which sticks to the JWT / BasicAuth paths.
|
|
43
|
+
*/
|
|
44
|
+
function staticAuth(name, value) {
|
|
45
|
+
const cached = Promise.resolve({ name, value });
|
|
46
|
+
return () => cached;
|
|
47
|
+
}
|
|
23
48
|
export function initClient() {
|
|
24
49
|
const baseUrl = envOrUndefined("BOOND_BASE_URL") || DEFAULT_BASE_URL;
|
|
25
|
-
// Auth priority:
|
|
50
|
+
// Auth priority (stdio transport):
|
|
26
51
|
// 1. Build JWT from components (userToken + clientToken + clientKey)
|
|
27
52
|
// 2. Pre-built JWT token
|
|
28
53
|
// 3. BasicAuth (user:password)
|
|
@@ -31,30 +56,43 @@ export function initClient() {
|
|
|
31
56
|
// `X-Jwt-Client-Boondmanager` header — sending it as `Authorization: Bearer`
|
|
32
57
|
// makes the API reject the request with 422 "Signature verification failed".
|
|
33
58
|
// BasicAuth, on the other hand, uses the standard `Authorization` header.
|
|
59
|
+
//
|
|
60
|
+
// HTTP transport uses OAuth2 exclusively — see `initClientWithAuth`.
|
|
34
61
|
const userToken = envOrUndefined("BOOND_USER_TOKEN");
|
|
35
62
|
const clientToken = envOrUndefined("BOOND_CLIENT_TOKEN");
|
|
36
63
|
const clientKey = envOrUndefined("BOOND_CLIENT_KEY");
|
|
37
64
|
const token = envOrUndefined("BOOND_API_TOKEN");
|
|
38
65
|
const user = envOrUndefined("BOOND_USER");
|
|
39
66
|
const password = envOrUndefined("BOOND_PASSWORD");
|
|
40
|
-
let
|
|
41
|
-
let authHeaderValue;
|
|
67
|
+
let auth;
|
|
42
68
|
if (userToken && clientToken && clientKey) {
|
|
43
|
-
|
|
44
|
-
authHeaderValue = buildJwt(userToken, clientToken, clientKey);
|
|
69
|
+
auth = staticAuth(JWT_HEADER_NAME, buildJwt(userToken, clientToken, clientKey));
|
|
45
70
|
}
|
|
46
71
|
else if (token) {
|
|
47
|
-
|
|
48
|
-
authHeaderValue = token;
|
|
72
|
+
auth = staticAuth(JWT_HEADER_NAME, token);
|
|
49
73
|
}
|
|
50
74
|
else if (user && password) {
|
|
51
|
-
|
|
52
|
-
authHeaderValue = `Basic ${Buffer.from(`${user}:${password}`).toString("base64")}`;
|
|
75
|
+
auth = staticAuth("Authorization", `Basic ${Buffer.from(`${user}:${password}`).toString("base64")}`);
|
|
53
76
|
}
|
|
54
77
|
else {
|
|
55
78
|
throw new Error("Authentication required. Set BOOND_USER_TOKEN + BOOND_CLIENT_TOKEN + BOOND_CLIENT_KEY, or BOOND_API_TOKEN, or both BOOND_USER and BOOND_PASSWORD.");
|
|
56
79
|
}
|
|
57
|
-
config = { baseUrl,
|
|
80
|
+
config = { baseUrl, auth };
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Install a custom auth provider — used by the HTTP transport bootstrap to
|
|
84
|
+
* wire in an OAuth2 token source (where the access token is refreshed
|
|
85
|
+
* transparently per request rather than baked in at startup).
|
|
86
|
+
*/
|
|
87
|
+
export function initClientWithAuth(auth, baseUrl) {
|
|
88
|
+
config = {
|
|
89
|
+
baseUrl: baseUrl ?? envOrUndefined("BOOND_BASE_URL") ?? DEFAULT_BASE_URL,
|
|
90
|
+
auth,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/** Test helper — reset the cached config so the next call re-initialises. */
|
|
94
|
+
export function resetClientForTests() {
|
|
95
|
+
config = null;
|
|
58
96
|
}
|
|
59
97
|
function getConfig() {
|
|
60
98
|
if (!config) {
|
|
@@ -269,7 +307,7 @@ function hintForStatus(status) {
|
|
|
269
307
|
case 400:
|
|
270
308
|
return "Check the request body or query parameters — likely a malformed field.";
|
|
271
309
|
case 401:
|
|
272
|
-
return "Authentication failed. Verify BOOND_USER_TOKEN + BOOND_CLIENT_TOKEN + BOOND_CLIENT_KEY (or BOOND_API_TOKEN, or BOOND_USER + BOOND_PASSWORD).";
|
|
310
|
+
return "Authentication failed. Verify BOOND_USER_TOKEN + BOOND_CLIENT_TOKEN + BOOND_CLIENT_KEY (or BOOND_API_TOKEN, or BOOND_USER + BOOND_PASSWORD). On HTTP transport, the OAuth access token may have expired — re-run boondmanager-mcp-oauth-login.";
|
|
273
311
|
case 403:
|
|
274
312
|
return "Authenticated, but the user lacks permission for this endpoint or scope.";
|
|
275
313
|
case 404:
|
|
@@ -345,7 +383,7 @@ export function formatApiError(status, statusText, method, path, body) {
|
|
|
345
383
|
return lines.join("\n");
|
|
346
384
|
}
|
|
347
385
|
export async function apiRequest(path, method = "GET", body, queryParams) {
|
|
348
|
-
const { baseUrl,
|
|
386
|
+
const { baseUrl, auth } = getConfig();
|
|
349
387
|
const url = new URL(`${baseUrl}${path}`);
|
|
350
388
|
if (queryParams) {
|
|
351
389
|
for (const [key, value] of Object.entries(queryParams)) {
|
|
@@ -365,11 +403,6 @@ export async function apiRequest(path, method = "GET", body, queryParams) {
|
|
|
365
403
|
}
|
|
366
404
|
}
|
|
367
405
|
}
|
|
368
|
-
const headers = {
|
|
369
|
-
[authHeaderName]: authHeaderValue,
|
|
370
|
-
Accept: "application/json",
|
|
371
|
-
"Content-Type": "application/json",
|
|
372
|
-
};
|
|
373
406
|
const timeoutMs = resolveTimeoutMs();
|
|
374
407
|
const retry = resolveRetryConfig();
|
|
375
408
|
const totalAttempts = retry.maxRetries + 1;
|
|
@@ -383,6 +416,15 @@ export async function apiRequest(path, method = "GET", body, queryParams) {
|
|
|
383
416
|
// (transient 5xx → retry → transient 5xx → …) saturating the API.
|
|
384
417
|
if (limiter)
|
|
385
418
|
await limiter.acquire();
|
|
419
|
+
// Resolve the auth header per-attempt so OAuth2 refreshes are picked
|
|
420
|
+
// up between retries (the access token may have expired since the
|
|
421
|
+
// previous attempt).
|
|
422
|
+
const authHeader = await auth();
|
|
423
|
+
const headers = {
|
|
424
|
+
[authHeader.name]: authHeader.value,
|
|
425
|
+
Accept: "application/json",
|
|
426
|
+
"Content-Type": "application/json",
|
|
427
|
+
};
|
|
386
428
|
const fetchOptions = {
|
|
387
429
|
method,
|
|
388
430
|
headers,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boond-client.js","sourceRoot":"","sources":["../../src/services/boond-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"boond-client.js","sourceRoot":"","sources":["../../src/services/boond-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
/**
|
|
3
|
+
* OAuth2 plumbing for the HTTP transport.
|
|
4
|
+
*
|
|
5
|
+
* Architecture (corrected): the MCP server is a **OAuth2 protected resource**,
|
|
6
|
+
* not an OAuth client. The MCP client (Claude Desktop, Claude Code, an MCP
|
|
7
|
+
* gateway, …) performs the OAuth dance against BoondManager directly,
|
|
8
|
+
* receives an access token, and forwards it as `Authorization: Bearer <token>`
|
|
9
|
+
* on every MCP request. This server:
|
|
10
|
+
*
|
|
11
|
+
* 1. Validates the presence of a Bearer token on every request.
|
|
12
|
+
* 2. Stores it in a per-request AsyncLocalStorage context.
|
|
13
|
+
* 3. Forwards it verbatim when calling the BoondManager API
|
|
14
|
+
* (boond-client.ts reads the context via `oauthContextAuth`).
|
|
15
|
+
* 4. Publishes RFC 9728 protected-resource metadata at
|
|
16
|
+
* `/.well-known/oauth-protected-resource` so MCP clients can discover
|
|
17
|
+
* the authorization server (BoondManager) automatically.
|
|
18
|
+
*
|
|
19
|
+
* The server holds **no secrets** related to OAuth: no client_secret, no
|
|
20
|
+
* refresh token, no token store. Each user's session lives entirely on the
|
|
21
|
+
* MCP client side. Multi-tenant by construction — each MCP user's Boond
|
|
22
|
+
* actions are attributed to *that* user in Boond's audit log.
|
|
23
|
+
*/
|
|
24
|
+
export interface OAuthRequestContext {
|
|
25
|
+
/** Bearer access token received from the MCP client (forwarded verbatim to Boond). */
|
|
26
|
+
accessToken: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Per-request context, populated by the HTTP transport before dispatching
|
|
30
|
+
* to the MCP SDK and read by `oauthContextAuth` (boond-client) when an API
|
|
31
|
+
* call is about to be issued. Stdio transport never uses this — it relies
|
|
32
|
+
* on env-var credentials.
|
|
33
|
+
*/
|
|
34
|
+
export declare const oauthContext: AsyncLocalStorage<OAuthRequestContext>;
|
|
35
|
+
/**
|
|
36
|
+
* Extract a Bearer token from an HTTP `Authorization` header.
|
|
37
|
+
* Returns `null` for missing, malformed, or non-Bearer auth schemes.
|
|
38
|
+
*
|
|
39
|
+
* Implemented with plain string operations rather than a regex to stay
|
|
40
|
+
* O(n) on hostile inputs (e.g. an `Authorization` header full of spaces).
|
|
41
|
+
* A naive `/^Bearer\s+(.+)$/i` is flagged by CodeQL `js/polynomial-redos`
|
|
42
|
+
* because the greedy `\s+` and `.+` can backtrack against each other on
|
|
43
|
+
* adversarial whitespace-only suffixes. The implementation below has no
|
|
44
|
+
* backtracking surface.
|
|
45
|
+
*/
|
|
46
|
+
export declare function extractBearerToken(header: string | string[] | undefined): string | null;
|
|
47
|
+
/** Default BoondManager OAuth authorization server (issuer). */
|
|
48
|
+
export declare const DEFAULT_AUTHORIZATION_SERVER = "https://ui.boondmanager.com";
|
|
49
|
+
export interface ProtectedResourceMetadataOptions {
|
|
50
|
+
/** Canonical URL of this protected resource — e.g. `https://mcp.example.com/mcp`. */
|
|
51
|
+
resource: string;
|
|
52
|
+
/** Issuer URL(s) of the authorization server — e.g. `https://ui.boondmanager.com`. */
|
|
53
|
+
authorizationServers: string[];
|
|
54
|
+
/** Optional scope hints exposed to MCP clients. */
|
|
55
|
+
scopesSupported?: string[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Build an RFC 9728 *OAuth 2.0 Protected Resource Metadata* document.
|
|
59
|
+
* Served at `/.well-known/oauth-protected-resource` (and the path-suffixed
|
|
60
|
+
* variant matching MCP_HTTP_PATH) so MCP clients can auto-discover where
|
|
61
|
+
* to send the user for authorization.
|
|
62
|
+
*/
|
|
63
|
+
export declare function buildProtectedResourceMetadata(opts: ProtectedResourceMetadataOptions): Record<string, unknown>;
|
|
64
|
+
/**
|
|
65
|
+
* Resolve the authorization server URL surfaced in the discovery metadata.
|
|
66
|
+
* Configurable so dedicated BoondManager instances (custom hostnames) can
|
|
67
|
+
* advertise the right issuer.
|
|
68
|
+
*/
|
|
69
|
+
export declare function resolveAuthorizationServer(): string;
|
|
70
|
+
/**
|
|
71
|
+
* Optional scope list advertised in the discovery metadata. Lets the MCP
|
|
72
|
+
* client request appropriate scopes when initiating the OAuth flow.
|
|
73
|
+
*/
|
|
74
|
+
export declare function resolveAdvertisedScopes(): string[];
|
|
75
|
+
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/services/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,mBAAmB;IAClC,sFAAsF;IACtF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,wCAA+C,CAAC;AAEzE;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAevF;AAED,gEAAgE;AAChE,eAAO,MAAM,4BAA4B,gCAAgC,CAAC;AAE1E,MAAM,WAAW,gCAAgC;IAC/C,qFAAqF;IACrF,QAAQ,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,gCAAgC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAU9G;AAQD;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAIlD"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
/**
|
|
3
|
+
* Per-request context, populated by the HTTP transport before dispatching
|
|
4
|
+
* to the MCP SDK and read by `oauthContextAuth` (boond-client) when an API
|
|
5
|
+
* call is about to be issued. Stdio transport never uses this — it relies
|
|
6
|
+
* on env-var credentials.
|
|
7
|
+
*/
|
|
8
|
+
export const oauthContext = new AsyncLocalStorage();
|
|
9
|
+
/**
|
|
10
|
+
* Extract a Bearer token from an HTTP `Authorization` header.
|
|
11
|
+
* Returns `null` for missing, malformed, or non-Bearer auth schemes.
|
|
12
|
+
*
|
|
13
|
+
* Implemented with plain string operations rather than a regex to stay
|
|
14
|
+
* O(n) on hostile inputs (e.g. an `Authorization` header full of spaces).
|
|
15
|
+
* A naive `/^Bearer\s+(.+)$/i` is flagged by CodeQL `js/polynomial-redos`
|
|
16
|
+
* because the greedy `\s+` and `.+` can backtrack against each other on
|
|
17
|
+
* adversarial whitespace-only suffixes. The implementation below has no
|
|
18
|
+
* backtracking surface.
|
|
19
|
+
*/
|
|
20
|
+
export function extractBearerToken(header) {
|
|
21
|
+
if (!header)
|
|
22
|
+
return null;
|
|
23
|
+
const value = Array.isArray(header) ? header[0] : header;
|
|
24
|
+
if (typeof value !== "string")
|
|
25
|
+
return null;
|
|
26
|
+
const trimmed = value.trim();
|
|
27
|
+
// "Bearer x" minimum length — scheme (6) + separator (1) + 1-char token.
|
|
28
|
+
if (trimmed.length < 8)
|
|
29
|
+
return null;
|
|
30
|
+
if (trimmed.slice(0, 6).toLowerCase() !== "bearer")
|
|
31
|
+
return null;
|
|
32
|
+
// RFC 6750 §2.1 specifies a single space, but be liberal: accept tab too
|
|
33
|
+
// since plenty of clients tab-separate. Reject anything else (covers
|
|
34
|
+
// "Bearer-something" and other accidental matches of the prefix).
|
|
35
|
+
const sep = trimmed.charCodeAt(6);
|
|
36
|
+
if (sep !== 0x20 /* SP */ && sep !== 0x09 /* HT */)
|
|
37
|
+
return null;
|
|
38
|
+
const token = trimmed.slice(7).trim();
|
|
39
|
+
return token.length > 0 ? token : null;
|
|
40
|
+
}
|
|
41
|
+
/** Default BoondManager OAuth authorization server (issuer). */
|
|
42
|
+
export const DEFAULT_AUTHORIZATION_SERVER = "https://ui.boondmanager.com";
|
|
43
|
+
/**
|
|
44
|
+
* Build an RFC 9728 *OAuth 2.0 Protected Resource Metadata* document.
|
|
45
|
+
* Served at `/.well-known/oauth-protected-resource` (and the path-suffixed
|
|
46
|
+
* variant matching MCP_HTTP_PATH) so MCP clients can auto-discover where
|
|
47
|
+
* to send the user for authorization.
|
|
48
|
+
*/
|
|
49
|
+
export function buildProtectedResourceMetadata(opts) {
|
|
50
|
+
const doc = {
|
|
51
|
+
resource: opts.resource,
|
|
52
|
+
authorization_servers: opts.authorizationServers,
|
|
53
|
+
bearer_methods_supported: ["header"],
|
|
54
|
+
};
|
|
55
|
+
if (opts.scopesSupported && opts.scopesSupported.length > 0) {
|
|
56
|
+
doc["scopes_supported"] = opts.scopesSupported;
|
|
57
|
+
}
|
|
58
|
+
return doc;
|
|
59
|
+
}
|
|
60
|
+
function envOrUndefined(key) {
|
|
61
|
+
const v = process.env[key];
|
|
62
|
+
if (!v || v.startsWith("${"))
|
|
63
|
+
return undefined;
|
|
64
|
+
return v;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Resolve the authorization server URL surfaced in the discovery metadata.
|
|
68
|
+
* Configurable so dedicated BoondManager instances (custom hostnames) can
|
|
69
|
+
* advertise the right issuer.
|
|
70
|
+
*/
|
|
71
|
+
export function resolveAuthorizationServer() {
|
|
72
|
+
return envOrUndefined("BOOND_OAUTH_AUTHORIZATION_SERVER") ?? DEFAULT_AUTHORIZATION_SERVER;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Optional scope list advertised in the discovery metadata. Lets the MCP
|
|
76
|
+
* client request appropriate scopes when initiating the OAuth flow.
|
|
77
|
+
*/
|
|
78
|
+
export function resolveAdvertisedScopes() {
|
|
79
|
+
const raw = envOrUndefined("BOOND_OAUTH_SCOPES");
|
|
80
|
+
if (!raw)
|
|
81
|
+
return [];
|
|
82
|
+
return raw.split(/[\s,]+/).filter((s) => s.length > 0);
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=oauth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/services/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AA8BrD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAuB,CAAC;AAEzE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAqC;IACtE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,yEAAyE;IACzE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAChE,yEAAyE;IACzE,qEAAqE;IACrE,kEAAkE;IAClE,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAChE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC;AAED,gEAAgE;AAChE,MAAM,CAAC,MAAM,4BAA4B,GAAG,6BAA6B,CAAC;AAW1E;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAAsC;IACnF,MAAM,GAAG,GAA4B;QACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,qBAAqB,EAAE,IAAI,CAAC,oBAAoB;QAChD,wBAAwB,EAAE,CAAC,QAAQ,CAAC;KACrC,CAAC;IACF,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO,cAAc,CAAC,kCAAkC,CAAC,IAAI,4BAA4B,CAAC;AAC5F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,GAAG,GAAG,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACjD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -4,7 +4,6 @@ export interface HttpTransportOptions {
|
|
|
4
4
|
port: number;
|
|
5
5
|
path: string;
|
|
6
6
|
stateless: boolean;
|
|
7
|
-
bearerToken?: string;
|
|
8
7
|
enableJsonResponse: boolean;
|
|
9
8
|
/** Idle timeout for stateful sessions, in ms. Defaults to 30 min. */
|
|
10
9
|
sessionTtlMs?: number;
|
|
@@ -17,6 +16,14 @@ export interface HttpTransportOptions {
|
|
|
17
16
|
* to a loopback interface.
|
|
18
17
|
*/
|
|
19
18
|
allowedHosts?: string[];
|
|
19
|
+
/**
|
|
20
|
+
* Public URL clients use to reach this MCP endpoint — used as the
|
|
21
|
+
* `resource` field of the protected-resource metadata and in the
|
|
22
|
+
* `WWW-Authenticate` challenge. Defaults to `http://{host}:{port}{path}`
|
|
23
|
+
* which is only correct for local / loopback deployments. Behind a
|
|
24
|
+
* reverse proxy, set `MCP_HTTP_PUBLIC_URL` explicitly.
|
|
25
|
+
*/
|
|
26
|
+
publicUrl?: string;
|
|
20
27
|
}
|
|
21
28
|
export interface HttpServerHandle {
|
|
22
29
|
close: () => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/transports/http.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/transports/http.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,4EAA4E;IAC5E,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAmCD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAO5F;AAiBD,wBAAgB,kBAAkB,IAAI,oBAAoB,CAqBzD;AAuDD,wBAAsB,kBAAkB,CACtC,mBAAmB,EAAE,MAAM,SAAS,EACpC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAkO3B"}
|
package/dist/transports/http.js
CHANGED
|
@@ -3,6 +3,7 @@ import { randomUUID } from "node:crypto";
|
|
|
3
3
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
4
4
|
import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
|
|
5
5
|
import { logger, generateCorrelationId } from "../services/logger.js";
|
|
6
|
+
import { buildProtectedResourceMetadata, extractBearerToken, oauthContext, resolveAdvertisedScopes, resolveAuthorizationServer, } from "../services/oauth.js";
|
|
6
7
|
// Defaults: a half-hour idle window matches typical MCP gateway behaviour, and
|
|
7
8
|
// a 5-minute sweep keeps memory bounded without hammering the event loop.
|
|
8
9
|
const DEFAULT_SESSION_TTL_MS = 30 * 60_000;
|
|
@@ -81,13 +82,24 @@ export function resolveHttpOptions() {
|
|
|
81
82
|
port,
|
|
82
83
|
path: readEnv("MCP_HTTP_PATH") ?? "/mcp",
|
|
83
84
|
stateless,
|
|
84
|
-
bearerToken: readEnv("MCP_HTTP_BEARER_TOKEN"),
|
|
85
85
|
enableJsonResponse,
|
|
86
86
|
sessionTtlMs: readPositiveInt("MCP_HTTP_SESSION_TTL_MS", DEFAULT_SESSION_TTL_MS),
|
|
87
87
|
sessionSweepIntervalMs: readPositiveInt("MCP_HTTP_SESSION_SWEEP_INTERVAL_MS", DEFAULT_SESSION_SWEEP_INTERVAL_MS),
|
|
88
88
|
allowedHosts: readAllowedHosts(),
|
|
89
|
+
publicUrl: readEnv("MCP_HTTP_PUBLIC_URL"),
|
|
89
90
|
};
|
|
90
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Build the canonical "resource" URL advertised in the OAuth2 protected
|
|
94
|
+
* resource metadata and in the `WWW-Authenticate` challenge. Behind a
|
|
95
|
+
* reverse proxy, the operator must set `MCP_HTTP_PUBLIC_URL` so clients
|
|
96
|
+
* receive the externally-reachable URL, not the loopback default.
|
|
97
|
+
*/
|
|
98
|
+
function resolveResourceUrl(options) {
|
|
99
|
+
if (options.publicUrl)
|
|
100
|
+
return options.publicUrl.replace(/\/$/, "") || options.publicUrl;
|
|
101
|
+
return `http://${options.host}:${options.port}${options.path}`;
|
|
102
|
+
}
|
|
91
103
|
async function readJsonBody(req) {
|
|
92
104
|
const chunks = [];
|
|
93
105
|
for await (const chunk of req) {
|
|
@@ -126,6 +138,14 @@ export async function startHttpTransport(createServerFactory, options) {
|
|
|
126
138
|
const sessionTtlMs = options.sessionTtlMs ?? DEFAULT_SESSION_TTL_MS;
|
|
127
139
|
const sessionSweepIntervalMs = options.sessionSweepIntervalMs ?? DEFAULT_SESSION_SWEEP_INTERVAL_MS;
|
|
128
140
|
const allowedHosts = resolveAllowedHosts(options.allowedHosts, options.host);
|
|
141
|
+
const resourceUrl = resolveResourceUrl(options);
|
|
142
|
+
const authorizationServer = resolveAuthorizationServer();
|
|
143
|
+
const advertisedScopes = resolveAdvertisedScopes();
|
|
144
|
+
// Per RFC 9728 §3.2 the metadata URL is `/.well-known/oauth-protected-resource`
|
|
145
|
+
// optionally suffixed with the resource path so multiple resources can
|
|
146
|
+
// coexist on one host. We serve both for compatibility.
|
|
147
|
+
const metadataUrl = `${resourceUrl.replace(options.path, "")}/.well-known/oauth-protected-resource${options.path}`;
|
|
148
|
+
const wwwAuthenticate = `Bearer realm="${resourceUrl}", resource_metadata="${metadataUrl}"`;
|
|
129
149
|
const sweepIdleSessions = async () => {
|
|
130
150
|
const cutoff = Date.now() - sessionTtlMs;
|
|
131
151
|
const expired = [];
|
|
@@ -148,6 +168,29 @@ export async function startHttpTransport(createServerFactory, options) {
|
|
|
148
168
|
}, sessionSweepIntervalMs);
|
|
149
169
|
sweepTimer.unref?.();
|
|
150
170
|
}
|
|
171
|
+
/** Write the RFC 9728 protected-resource metadata document. */
|
|
172
|
+
const writeProtectedResourceMetadata = (res) => {
|
|
173
|
+
const doc = buildProtectedResourceMetadata({
|
|
174
|
+
resource: resourceUrl,
|
|
175
|
+
authorizationServers: [authorizationServer],
|
|
176
|
+
scopesSupported: advertisedScopes,
|
|
177
|
+
});
|
|
178
|
+
res.statusCode = 200;
|
|
179
|
+
res.setHeader("Content-Type", "application/json");
|
|
180
|
+
res.setHeader("Cache-Control", "public, max-age=3600");
|
|
181
|
+
res.end(JSON.stringify(doc));
|
|
182
|
+
};
|
|
183
|
+
/** RFC 6750 §3.1 challenge for missing/invalid bearer tokens. */
|
|
184
|
+
const writeOAuthChallenge = (res, status, message) => {
|
|
185
|
+
res.statusCode = status;
|
|
186
|
+
res.setHeader("WWW-Authenticate", wwwAuthenticate);
|
|
187
|
+
res.setHeader("Content-Type", "application/json");
|
|
188
|
+
res.end(JSON.stringify({
|
|
189
|
+
jsonrpc: "2.0",
|
|
190
|
+
error: { code: -32001, message },
|
|
191
|
+
id: null,
|
|
192
|
+
}));
|
|
193
|
+
};
|
|
151
194
|
const httpServer = createServer(async (req, res) => {
|
|
152
195
|
const corrId = generateCorrelationId();
|
|
153
196
|
const reqLogger = logger.child({ corrId, method: req.method, path: req.url });
|
|
@@ -166,88 +209,101 @@ export async function startHttpTransport(createServerFactory, options) {
|
|
|
166
209
|
}
|
|
167
210
|
}
|
|
168
211
|
const url = new URL(req.url ?? "/", `http://${req.headers.host ?? "localhost"}`);
|
|
212
|
+
// Public OAuth2 discovery endpoint (RFC 9728). Must be reachable
|
|
213
|
+
// without authentication — clients fetch it to learn where to send
|
|
214
|
+
// the user for authorization. Served at both the canonical root path
|
|
215
|
+
// and the path-suffixed variant per RFC 9728 §3.2.
|
|
216
|
+
if (req.method === "GET" &&
|
|
217
|
+
(url.pathname === "/.well-known/oauth-protected-resource" ||
|
|
218
|
+
url.pathname === `/.well-known/oauth-protected-resource${options.path}`)) {
|
|
219
|
+
writeProtectedResourceMetadata(res);
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
169
222
|
if (url.pathname !== options.path) {
|
|
170
223
|
res.statusCode = 404;
|
|
171
224
|
res.end("Not found");
|
|
172
225
|
return;
|
|
173
226
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
227
|
+
// OAuth2 Bearer is mandatory on the MCP endpoint. The token is opaque
|
|
228
|
+
// to us — we forward it to BoondManager, which is authoritative.
|
|
229
|
+
const accessToken = extractBearerToken(req.headers["authorization"]);
|
|
230
|
+
if (!accessToken) {
|
|
231
|
+
writeOAuthChallenge(res, 401, "Missing Bearer token. Authenticate against BoondManager and include `Authorization: Bearer <access_token>`.");
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
// Wrap the rest of the request lifecycle in the AsyncLocalStorage
|
|
235
|
+
// context so boond-client's `oauthContextAuth` can pull the token
|
|
236
|
+
// out when issuing API calls.
|
|
237
|
+
await oauthContext.run({ accessToken }, async () => {
|
|
238
|
+
if (options.stateless) {
|
|
239
|
+
if (req.method !== "POST") {
|
|
240
|
+
writeJsonRpcError(res, 405, "Only POST is supported in stateless mode");
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
const transport = new StreamableHTTPServerTransport({
|
|
244
|
+
sessionIdGenerator: undefined,
|
|
245
|
+
enableJsonResponse: options.enableJsonResponse,
|
|
246
|
+
});
|
|
247
|
+
const server = createServerFactory();
|
|
248
|
+
res.on("close", () => {
|
|
249
|
+
void transport.close();
|
|
250
|
+
void server.close();
|
|
251
|
+
});
|
|
252
|
+
await server.connect(transport);
|
|
253
|
+
await transport.handleRequest(req, res);
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
// Stateful mode: route by Mcp-Session-Id header
|
|
257
|
+
const sessionIdHeader = req.headers["mcp-session-id"];
|
|
258
|
+
const sessionId = Array.isArray(sessionIdHeader) ? sessionIdHeader[0] : sessionIdHeader;
|
|
259
|
+
if (sessionId && sessions.has(sessionId)) {
|
|
260
|
+
const entry = sessions.get(sessionId);
|
|
261
|
+
entry.lastActivityAt = Date.now();
|
|
262
|
+
await entry.transport.handleRequest(req, res);
|
|
180
263
|
return;
|
|
181
264
|
}
|
|
182
|
-
}
|
|
183
|
-
if (options.stateless) {
|
|
184
265
|
if (req.method !== "POST") {
|
|
185
|
-
writeJsonRpcError(res,
|
|
266
|
+
writeJsonRpcError(res, 400, "Missing or invalid session ID");
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
// Parse body to detect initialization
|
|
270
|
+
const body = await readJsonBody(req);
|
|
271
|
+
if (!isInitializeRequest(body)) {
|
|
272
|
+
writeJsonRpcError(res, 400, "First request must be an MCP initialize message");
|
|
186
273
|
return;
|
|
187
274
|
}
|
|
188
275
|
const transport = new StreamableHTTPServerTransport({
|
|
189
|
-
sessionIdGenerator:
|
|
276
|
+
sessionIdGenerator: () => randomUUID(),
|
|
190
277
|
enableJsonResponse: options.enableJsonResponse,
|
|
278
|
+
onsessioninitialized: (id) => {
|
|
279
|
+
sessions.set(id, { transport, server, lastActivityAt: Date.now() });
|
|
280
|
+
reqLogger.info({ sessionId: id, sessionCount: sessions.size }, "MCP session initialized");
|
|
281
|
+
},
|
|
282
|
+
onsessionclosed: (id) => {
|
|
283
|
+
const entry = sessions.get(id);
|
|
284
|
+
if (entry) {
|
|
285
|
+
sessions.delete(id);
|
|
286
|
+
void destroySession(entry);
|
|
287
|
+
reqLogger.info({ sessionId: id, sessionCount: sessions.size }, "MCP session closed");
|
|
288
|
+
}
|
|
289
|
+
},
|
|
191
290
|
});
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
});
|
|
197
|
-
await server.connect(transport);
|
|
198
|
-
await transport.handleRequest(req, res);
|
|
199
|
-
return;
|
|
200
|
-
}
|
|
201
|
-
// Stateful mode: route by Mcp-Session-Id header
|
|
202
|
-
const sessionIdHeader = req.headers["mcp-session-id"];
|
|
203
|
-
const sessionId = Array.isArray(sessionIdHeader) ? sessionIdHeader[0] : sessionIdHeader;
|
|
204
|
-
if (sessionId && sessions.has(sessionId)) {
|
|
205
|
-
const entry = sessions.get(sessionId);
|
|
206
|
-
entry.lastActivityAt = Date.now();
|
|
207
|
-
await entry.transport.handleRequest(req, res);
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
if (req.method !== "POST") {
|
|
211
|
-
writeJsonRpcError(res, 400, "Missing or invalid session ID");
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
// Parse body to detect initialization
|
|
215
|
-
const body = await readJsonBody(req);
|
|
216
|
-
if (!isInitializeRequest(body)) {
|
|
217
|
-
writeJsonRpcError(res, 400, "First request must be an MCP initialize message");
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
220
|
-
const transport = new StreamableHTTPServerTransport({
|
|
221
|
-
sessionIdGenerator: () => randomUUID(),
|
|
222
|
-
enableJsonResponse: options.enableJsonResponse,
|
|
223
|
-
onsessioninitialized: (id) => {
|
|
224
|
-
sessions.set(id, { transport, server, lastActivityAt: Date.now() });
|
|
225
|
-
reqLogger.info({ sessionId: id, sessionCount: sessions.size }, "MCP session initialized");
|
|
226
|
-
},
|
|
227
|
-
onsessionclosed: (id) => {
|
|
291
|
+
transport.onclose = () => {
|
|
292
|
+
const id = transport.sessionId;
|
|
293
|
+
if (!id)
|
|
294
|
+
return;
|
|
228
295
|
const entry = sessions.get(id);
|
|
229
296
|
if (entry) {
|
|
230
297
|
sessions.delete(id);
|
|
231
|
-
|
|
232
|
-
|
|
298
|
+
// Server is closed by destroySession — but if the transport's own
|
|
299
|
+
// close path already disposed it, the second call is a no-op.
|
|
300
|
+
void entry.server.close().catch(() => undefined);
|
|
233
301
|
}
|
|
234
|
-
}
|
|
302
|
+
};
|
|
303
|
+
const server = createServerFactory();
|
|
304
|
+
await server.connect(transport);
|
|
305
|
+
await transport.handleRequest(req, res, body);
|
|
235
306
|
});
|
|
236
|
-
transport.onclose = () => {
|
|
237
|
-
const id = transport.sessionId;
|
|
238
|
-
if (!id)
|
|
239
|
-
return;
|
|
240
|
-
const entry = sessions.get(id);
|
|
241
|
-
if (entry) {
|
|
242
|
-
sessions.delete(id);
|
|
243
|
-
// Server is closed by destroySession — but if the transport's own
|
|
244
|
-
// close path already disposed it, the second call is a no-op.
|
|
245
|
-
void entry.server.close().catch(() => undefined);
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
const server = createServerFactory();
|
|
249
|
-
await server.connect(transport);
|
|
250
|
-
await transport.handleRequest(req, res, body);
|
|
251
307
|
}
|
|
252
308
|
catch (error) {
|
|
253
309
|
reqLogger.error({ err: error }, "HTTP transport error");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/transports/http.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/transports/http.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -24,10 +24,18 @@ export interface JsonApiResponse {
|
|
|
24
24
|
};
|
|
25
25
|
links?: Record<string, string>;
|
|
26
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Async auth provider. Returning a fresh header on every call lets us
|
|
29
|
+
* support both static credentials (returns the same value forever) and
|
|
30
|
+
* OAuth2 (refreshes the access token transparently before expiry).
|
|
31
|
+
*/
|
|
32
|
+
export type BoondAuthProvider = () => Promise<{
|
|
33
|
+
name: string;
|
|
34
|
+
value: string;
|
|
35
|
+
}>;
|
|
27
36
|
export interface BoondConfig {
|
|
28
37
|
baseUrl: string;
|
|
29
|
-
|
|
30
|
-
authHeaderValue: string;
|
|
38
|
+
auth: BoondAuthProvider;
|
|
31
39
|
}
|
|
32
40
|
export interface SearchParams {
|
|
33
41
|
keywords?: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CACpB,MAAM,EACN;QACE,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,GAAG,IAAI,CAAC;KAC5E,CACF,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CACpB,MAAM,EACN;QACE,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,GAAG,IAAI,CAAC;KAC5E,CACF,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE/E,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|
package/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"manifest_version": "0.3",
|
|
3
3
|
"name": "boondmanager-mcp-server",
|
|
4
4
|
"display_name": "BoondManager MCP Server",
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "2.0.0",
|
|
6
6
|
"description": "MCP Server for BoondManager API - 167 tools, 11 prompts, 21 resources (ERP/CRM)",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Frédéric Auguste",
|
package/package.json
CHANGED