@uteamup/mcp-server 2.6.8-beta.9 → 2.6.10-beta.9
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/CHANGELOG.md +28 -0
- package/lib/config.js +25 -6
- package/openapi-actions.json +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,34 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.6.10-beta.9](https://github.com/UteamUP/uteamup-mcp/compare/2.6.9-beta.9...2.6.10-beta.9) (2026-11-09)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Tests
|
|
12
|
+
|
|
13
|
+
* cover atomic safety acknowledgement MCP contracts [skip ci] ([b29c77a](https://github.com/UteamUP/uteamup-mcp/commit/b29c77a4b95eb96e6aa1557ad5c8b62e4782fc23))
|
|
14
|
+
* cover Hosting permission recovery transport ([4829a31](https://github.com/UteamUP/uteamup-mcp/commit/4829a3189326fb1d41e12561776db3e2c5342be5))
|
|
15
|
+
* cover paged sensor MCP transport [skip ci] ([a3e0bb1](https://github.com/UteamUP/uteamup-mcp/commit/a3e0bb163f593e0a0cb5677e830c968ba8126746))
|
|
16
|
+
* cover protected hosting refresh proxy contracts ([89dd3e4](https://github.com/UteamUP/uteamup-mcp/commit/89dd3e49ee1bfc2b3f27a1e83c6ae59bdd7343de))
|
|
17
|
+
* cover protected hosting snapshot proxy contracts ([50a9fa8](https://github.com/UteamUP/uteamup-mcp/commit/50a9fa810abfb6330ded8d2f4c049e890887fc46))
|
|
18
|
+
* retain Hosting category comparisons through MCP ([5923ef0](https://github.com/UteamUP/uteamup-mcp/commit/5923ef0226faaa123c3a4f2b63e708bc1f22fe55))
|
|
19
|
+
* **tenant-lifecycle:** cover the always-free demo workspace tool ([b6bee82](https://github.com/UteamUP/uteamup-mcp/commit/b6bee82ff11ab2f8c5c054816a5b50cd9fad2ee3))
|
|
20
|
+
|
|
21
|
+
## [2.6.9-beta.9](https://github.com/UteamUP/uteamup-mcp/compare/2.6.8-beta.9...2.6.9-beta.9) (2026-11-06)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Bug Fixes
|
|
25
|
+
|
|
26
|
+
* **security:** disallow UTEAMUP_INSECURE_TLS on production hosts ([32a786b](https://github.com/UteamUP/uteamup-mcp/commit/32a786b2b7ee1b99b79734c2f127271e05ef3f5f))
|
|
27
|
+
* **security:** honour UTEAMUP_INSECURE_TLS only for loopback hosts ([09cdc0e](https://github.com/UteamUP/uteamup-mcp/commit/09cdc0ec8c1ab834da6a6725f0e7da5648d2668e))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Tests
|
|
31
|
+
|
|
32
|
+
* **archive:** cover the archive and restore MCP tools of every archivable record ([db9ebfd](https://github.com/UteamUP/uteamup-mcp/commit/db9ebfd89e6ec4030a6692560d9077bf117aa184))
|
|
33
|
+
* cover the tenant lifecycle settings MCP tools ([1ad3964](https://github.com/UteamUP/uteamup-mcp/commit/1ad396448355cb2eeb752e00e8cb2ded75329d36))
|
|
34
|
+
* **inventory:** cover the archive and restore tools and asset-free bulk delete ([a4cd46d](https://github.com/UteamUP/uteamup-mcp/commit/a4cd46db50c828188c6b0b1ff5e7f70f92b21a26))
|
|
35
|
+
|
|
8
36
|
## [2.6.8-beta.9](https://github.com/UteamUP/uteamup-mcp/compare/2.6.7-beta.9...2.6.8-beta.9) (2026-11-05)
|
|
9
37
|
|
|
10
38
|
|
package/lib/config.js
CHANGED
|
@@ -3,8 +3,25 @@
|
|
|
3
3
|
* Validates environment variables and provides type-safe configuration
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
const net = require('net');
|
|
6
7
|
const { z } = require('zod');
|
|
7
8
|
const { normalizeBackendBaseUrl } = require('./transport-security');
|
|
9
|
+
const { warn } = require('./logger');
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Mirrors the CLI's skipTLSVerifyFor (uteamup_cli/internal/auth/oauth.go): a
|
|
13
|
+
* self-signed certificate is only normal on loopback, where there is no network
|
|
14
|
+
* path on which to intercept the bearer token.
|
|
15
|
+
*
|
|
16
|
+
* @param {string} hostname - WHATWG URL hostname (lower-cased, IPs canonicalized)
|
|
17
|
+
* @returns {boolean}
|
|
18
|
+
*/
|
|
19
|
+
function isLoopbackHost(hostname) {
|
|
20
|
+
if (hostname === 'localhost' || hostname === '[::1]') {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
return net.isIPv4(hostname) && hostname.startsWith('127.');
|
|
24
|
+
}
|
|
8
25
|
|
|
9
26
|
// Configuration schema
|
|
10
27
|
const configSchema = z.object({
|
|
@@ -95,15 +112,17 @@ const configSchema = z.object({
|
|
|
95
112
|
|
|
96
113
|
// UTEAMUP-SEC-2026-05-02-008: explicit opt-in to disable TLS verification
|
|
97
114
|
// for self-signed dev certs. Without this flag the MCP proxy validates
|
|
98
|
-
// TLS like any other production HTTPS client.
|
|
99
|
-
//
|
|
115
|
+
// TLS like any other production HTTPS client. Even when set, the flag is
|
|
116
|
+
// honoured only for a loopback backend and ignored, with a warning, elsewhere.
|
|
100
117
|
insecureTLS: z.boolean()
|
|
101
118
|
.default(false)
|
|
102
|
-
.describe('Disable TLS certificate verification (
|
|
119
|
+
.describe('Disable TLS certificate verification (loopback backends only)')
|
|
103
120
|
}).transform(config => {
|
|
104
|
-
// Apply the
|
|
105
|
-
|
|
106
|
-
|
|
121
|
+
// Apply the policy after URL parsing has canonicalized the host.
|
|
122
|
+
if (config.insecureTLS && !isLoopbackHost(new URL(config.baseUrl).hostname)) {
|
|
123
|
+
warn('UTEAMUP_INSECURE_TLS ignored: TLS verification can only be disabled for a loopback backend', {
|
|
124
|
+
baseUrl: config.baseUrl
|
|
125
|
+
});
|
|
107
126
|
config.insecureTLS = false;
|
|
108
127
|
}
|
|
109
128
|
return config;
|
package/openapi-actions.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "UteamUP CMMS Read-Only Assistant Actions",
|
|
5
5
|
"description": "OpenAPI 3.1.0 Action schema for ChatGPT Custom GPTs (GPT Store) and Google Gemini / Vertex AI Extensions. Invokes the UteamUP read-only MCP endpoint (/mcp/read-only) to list and search assets and work orders using the caller's tenant-scoped permissions.",
|
|
6
|
-
"version": "2.6.
|
|
6
|
+
"version": "2.6.10-beta.9",
|
|
7
7
|
"x-logo": {
|
|
8
8
|
"url": "https://raw.githubusercontent.com/UteamUP/uteamup-mcp/main/assets/logo.png",
|
|
9
9
|
"altText": "UteamUP CMMS"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uteamup/mcp-server",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.10-beta.9",
|
|
4
4
|
"mcpName": "io.github.UteamUP/mcp-server",
|
|
5
5
|
"description": "MCP server client for UteamUP - enables Claude Desktop/Code integration with automatic OAuth 2.0 authentication",
|
|
6
6
|
"main": "index.js",
|
package/server.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "io.github.UteamUP/mcp-server",
|
|
4
4
|
"title": "UteamUP CMMS",
|
|
5
5
|
"description": "Connect AI assistants to UteamUP CMMS for work orders, assets, maintenance, and inventory.",
|
|
6
|
-
"version": "2.6.
|
|
6
|
+
"version": "2.6.10-beta.9",
|
|
7
7
|
"websiteUrl": "https://uteamup.com",
|
|
8
8
|
"icons": [
|
|
9
9
|
{
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"registryType": "npm",
|
|
31
31
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
32
32
|
"identifier": "@uteamup/mcp-server",
|
|
33
|
-
"version": "2.6.
|
|
33
|
+
"version": "2.6.10-beta.9",
|
|
34
34
|
"transport": {
|
|
35
35
|
"type": "stdio"
|
|
36
36
|
},
|