@uteamup/mcp-server 2.3.0-beta.9 → 2.6.0-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 CHANGED
@@ -5,6 +5,124 @@ 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.0-beta.9](https://github.com/UteamUP/uteamup-mcp/compare/2.5.0-beta.9...2.6.0-beta.9) (2026-11-01)
9
+
10
+
11
+ ### Features
12
+
13
+ * add client link management tests for IoT tools ([ad7a02c](https://github.com/UteamUP/uteamup-mcp/commit/ad7a02cd0dd1c122e2dde57f5288302c567a6899))
14
+ * add tests for IoT alert workorder conversion and GUID preservation ([ce5d910](https://github.com/UteamUP/uteamup-mcp/commit/ce5d91018a08a7e79b796f02ebbfa353b307fb9b))
15
+ * complete marketplace shipment and discovery workflows ([abbe260](https://github.com/UteamUP/uteamup-mcp/commit/abbe2602702f9b4e0ab6aedacf4abeacaf01ebff))
16
+ * expose quantity stock installation in MCP and CLI ([d8c0529](https://github.com/UteamUP/uteamup-mcp/commit/d8c052995b9787aeee6794cd119f28761260e51d))
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * report the released MCP package version ([b99c819](https://github.com/UteamUP/uteamup-mcp/commit/b99c819142221a4239188a78a16e77a4d72bb6ee))
22
+
23
+
24
+ ### Tests
25
+
26
+ * add UteamupMarketplaceTransactionShip tool tests for shipping functionality ([999c19b](https://github.com/UteamUP/uteamup-mcp/commit/999c19b055ce9ee1c49dc51c1ea4a748ba4d3fe2))
27
+ * cover GUID arguments in floorplan read tools ([274489c](https://github.com/UteamUP/uteamup-mcp/commit/274489ca0ec8233a36f94fc410c9419810c68b0f))
28
+ * cover MCP measurement presentation contracts ([2dfbbb0](https://github.com/UteamUP/uteamup-mcp/commit/2dfbbb030ef823ae29049c9dafa0665680e413bd))
29
+ * cover paged asset activity comment tools ([d05ddb8](https://github.com/UteamUP/uteamup-mcp/commit/d05ddb8c7fa789ac8664b8f97c5b140342b6db21))
30
+ * **iot:** cover the device room GUID passthrough on update ([5604a5c](https://github.com/UteamUP/uteamup-mcp/commit/5604a5caa69343d4755cf65ad841ff9357477a6d))
31
+
32
+
33
+ ### CI/CD
34
+
35
+ * allow replaying the npmjs publish for an existing tag ([ae4bc03](https://github.com/UteamUP/uteamup-mcp/commit/ae4bc039bbf1ad5defb7cfd43d71dada2344d754))
36
+
37
+ ## [2.5.0-beta.9](https://github.com/UteamUP/uteamup-mcp/compare/2.4.0-beta.9...2.5.0-beta.9) (2026-10-28)
38
+
39
+
40
+ ### Features
41
+
42
+ * **connector:** add Claude Connectors Directory for UteamUP read-only access ([1913d6a](https://github.com/UteamUP/uteamup-mcp/commit/1913d6a8713185fd607d49495aff125eb51710e8))
43
+ * let requesters withdraw or request closure of their work ([5361666](https://github.com/UteamUP/uteamup-mcp/commit/5361666103dbc880c994990a15c8c52053e79d5f))
44
+ * **plugins:** add MiniMax Code plugin for the read-only UteamUP MCP endpoint ([6489802](https://github.com/UteamUP/uteamup-mcp/commit/648980262c7a673eecafaee5a078a71f6db3bbb2))
45
+ * **plugins:** add ZCode read-only MCP plugin and marketplace entry ([0f1dba5](https://github.com/UteamUP/uteamup-mcp/commit/0f1dba5cc2d1c963eda9dd94657af001570cf33f))
46
+ * **tests:** add telemetry overview test for IoT MCP tools ([8fdefff](https://github.com/UteamUP/uteamup-mcp/commit/8fdefff7b185697ab82fab045c771570386f2d36))
47
+
48
+
49
+ ### Documentation
50
+
51
+ * assistant links need a seat; directory pack uses Demo - Solid Energy ([8952ac8](https://github.com/UteamUP/uteamup-mcp/commit/8952ac8e55abb281c8258ed7be8129a443e8c619))
52
+
53
+
54
+ ### Tests
55
+
56
+ * **asset:** cover document and vendor patch payloads ([2b3ded7](https://github.com/UteamUP/uteamup-mcp/commit/2b3ded7a67058097e4e379d96627f69e7a6aa6bd))
57
+ * **asset:** uteamup_asset_patch forwards asset type fields ([c78805c](https://github.com/UteamUP/uteamup-mcp/commit/c78805c336116543f838c5752135fb81e51134e1))
58
+ * **association:** cover the housing association MCP tools ([703ee30](https://github.com/UteamUP/uteamup-mcp/commit/703ee304e31443b8619385220d777aa0af5a0097))
59
+ * **association:** cover the meeting minutes document GUID ([33efcc9](https://github.com/UteamUP/uteamup-mcp/commit/33efcc90fa3a1d09429b086b7ec7453a57e24c93))
60
+ * cover AI request filters through the MCP proxy ([beaffaf](https://github.com/UteamUP/uteamup-mcp/commit/beaffafbf8b065fbd99c84de249570ed31ea0753))
61
+ * cover location node type proxy contracts ([448d40c](https://github.com/UteamUP/uteamup-mcp/commit/448d40ccbfeb3e718236b0c531fe855b5bd7c189))
62
+ * cover named workorder safety review transport ([b6f5d19](https://github.com/UteamUP/uteamup-mcp/commit/b6f5d196dcc086722ba8bdc7294c664beaf8255d))
63
+ * cover paged operational plan discovery contracts ([d155e71](https://github.com/UteamUP/uteamup-mcp/commit/d155e719c7741273ba622bcb76739eb2d3d7901a))
64
+ * cover planned stock arrival proxy routes ([476c96c](https://github.com/UteamUP/uteamup-mcp/commit/476c96ca25a2e7998178a7eb4466f08ab4c55219))
65
+ * cover safe asset document detachment through MCP ([23b28f2](https://github.com/UteamUP/uteamup-mcp/commit/23b28f2a4b2b33a7af6dd0e4b2d01a219fe98df6))
66
+ * cover tenant AI request history tool ([bd9a543](https://github.com/UteamUP/uteamup-mcp/commit/bd9a543dbd311917fc9a5808f820369038c8ac81))
67
+ * **identity:** MCP proxy test for UteamupIdentityVerificationStatus ([374698c](https://github.com/UteamUP/uteamup-mcp/commit/374698c1e3d6fa9840a104a84b63e65ce23e8c85))
68
+ * **iot:** cover the IoT device and device-key tools ([b324540](https://github.com/UteamUP/uteamup-mcp/commit/b3245400b5b18c633ad5cbc565ec8b783501a501))
69
+ * **marketplace:** add tests for public Wanted catalog opt-in on create and update ([8f61853](https://github.com/UteamUP/uteamup-mcp/commit/8f61853420ce66d2a72f01386f9ea59be35c2aba))
70
+ * **mcp:** cover linked parts and short stock searches ([dc4ec45](https://github.com/UteamUP/uteamup-mcp/commit/dc4ec45d6e8baed811b293567155df31aa15d19b))
71
+ * **model3d:** cover the spec lookup tool ([808dd30](https://github.com/UteamUP/uteamup-mcp/commit/808dd30e50e3d4298ecb45c7f45b6fbd16c90991))
72
+ * **model3d:** cover the uteamup_model3d_duplicate proxy contract ([f1dba0b](https://github.com/UteamUP/uteamup-mcp/commit/f1dba0b88a4ddca2be3ee2dd48dceee45be99359))
73
+ * **model3d:** cover the uteamup_model3d_view_photos tool ([29b153e](https://github.com/UteamUP/uteamup-mcp/commit/29b153e378903858681a13cba3f1083d313ae17d))
74
+ * **parts:** cover real stock level proxy contracts ([2952b50](https://github.com/UteamUP/uteamup-mcp/commit/2952b50bfa5362590d47b466bdf0cceec7397e0d))
75
+ * preserve external push pause identity refusal ([514d98f](https://github.com/UteamUP/uteamup-mcp/commit/514d98f9294d8b830937556fee3b085b7be3abdf))
76
+ * preserve missing health evidence in tenant summary responses ([ef5b538](https://github.com/UteamUP/uteamup-mcp/commit/ef5b538162b8d057be7fb31798bdf42753d32776))
77
+ * preserve room node links through MCP scene calls ([c1754e3](https://github.com/UteamUP/uteamup-mcp/commit/c1754e37e852d5085b10987634de6532c21404a4))
78
+ * preserve stock assignment paging and permission errors ([d80798e](https://github.com/UteamUP/uteamup-mcp/commit/d80798e4f983e32b7081da9796eb6ef2bc2a857c))
79
+ * preserve unknown capacity in recorded activity summaries ([841e7fd](https://github.com/UteamUP/uteamup-mcp/commit/841e7fd1073f928e498d10973f074bd8ed48fdb9))
80
+ * **productwebfiles:** cover the product web files MCP tools ([28ae0e5](https://github.com/UteamUP/uteamup-mcp/commit/28ae0e5ea5d3f6535388b2d1c96679d2cd52263f))
81
+ * retain anonymous requirement origins through marketplace proxy ([c6ec4a6](https://github.com/UteamUP/uteamup-mcp/commit/c6ec4a63bec6c9e5ed7d462812d3bfdf67f59279))
82
+ * retain payer clearing across the contract proxy ([60d2ecd](https://github.com/UteamUP/uteamup-mcp/commit/60d2ecd5bff561bdac81aa6d0c645d8ffb9a3a4d))
83
+ * **tenant:** cover the UteamUP Home tenant tools ([284fa9a](https://github.com/UteamUP/uteamup-mcp/commit/284fa9ad716dd0a4cd1c8a3efa88c52cc7f87b49))
84
+ * **tenant:** send tenantKind as the camelCase string the API uses ([f4fd776](https://github.com/UteamUP/uteamup-mcp/commit/f4fd7760b46de403e18c0749d74f57664cbdd6e6))
85
+ * **tenant:** UteamUP Home children tools ([4e94080](https://github.com/UteamUP/uteamup-mcp/commit/4e940803479f6daa2039a341a4a9a35246c91d16))
86
+
87
+ ## [2.4.0-beta.9](https://github.com/UteamUP/uteamup-mcp/compare/2.3.0-beta.9...2.4.0-beta.9) (2026-10-21)
88
+
89
+
90
+ ### Features
91
+
92
+ * package OpenAI marketplace integration with UteamUP branding ([026ad6f](https://github.com/UteamUP/uteamup-mcp/commit/026ad6f207e007f0085aecc73162d3ded97dc9ad))
93
+
94
+
95
+ ### Bug Fixes
96
+
97
+ * **auth:** bind the proxy's OAuth token to the MCP endpoint ([a5b0f4a](https://github.com/UteamUP/uteamup-mcp/commit/a5b0f4a116579098dc60f67861d14eb1d3fdbfd8))
98
+ * avoid redundant Claude documentation asset review ([5818f0e](https://github.com/UteamUP/uteamup-mcp/commit/5818f0e86c93fed7b703f5775f3a053f83ed595f))
99
+ * complete Claude listing links and data handling disclosures ([e3b2b78](https://github.com/UteamUP/uteamup-mcp/commit/e3b2b789def1f8067b0a1f35644d984a43572996))
100
+ * correct Glama maintainer identity ([dc9f5a5](https://github.com/UteamUP/uteamup-mcp/commit/dc9f5a57ad01d5f3ca2736f5c9493e40cb195191))
101
+ * correct Grok marketplace contact ([48cad67](https://github.com/UteamUP/uteamup-mcp/commit/48cad677694d10260501613f2bd2a61d807fcd23))
102
+ * package Claude plugin with locked dependencies and explicit configuration ([92a2e40](https://github.com/UteamUP/uteamup-mcp/commit/92a2e405acf395553826e0c7b08913a9aed4b1a9))
103
+ * prepare MCP manifests for marketplace validation ([1b555a6](https://github.com/UteamUP/uteamup-mcp/commit/1b555a66cd8ae9fe390cf127ce349499d2f3ded9))
104
+ * update fast-copy to patched version ([0fd7cd8](https://github.com/UteamUP/uteamup-mcp/commit/0fd7cd8ece27446bbb5a118da5b981094d2010a9))
105
+ * update release workflow conditions and add test for MCP registry publication ([44180fd](https://github.com/UteamUP/uteamup-mcp/commit/44180fd7f859340f6752dd1b07119d45df0703ad))
106
+ * use UteamUP publisher contact for Claude submissions ([acd457f](https://github.com/UteamUP/uteamup-mcp/commit/acd457f7a2a114a77f2b55a63b2eaf7be019078d))
107
+
108
+
109
+ ### Documentation
110
+
111
+ * correct Claude troubleshooting and read-only access guidance ([aba9dfe](https://github.com/UteamUP/uteamup-mcp/commit/aba9dfebbb98dd5dc877fc26eba9df201278d0df))
112
+ * correct marketplace setup links and production connection guidance ([91c4945](https://github.com/UteamUP/uteamup-mcp/commit/91c4945f561f3c26da8dd3f0da5c4be7883cbe94))
113
+
114
+
115
+ ### Tests
116
+
117
+ * cover floorplan scan draft tools ([f251595](https://github.com/UteamUP/uteamup-mcp/commit/f251595c54d35320e8ef9c3cd42f3139f831666f))
118
+ * **model3d:** cover the 3D model and scene items MCP tools ([5ef7c9e](https://github.com/UteamUP/uteamup-mcp/commit/5ef7c9ec8ae58ec3d5e980b9b59d063935366eed))
119
+ * **model3d:** cover the uteamup_model3d_catalogue_* tools ([2d7eb15](https://github.com/UteamUP/uteamup-mcp/commit/2d7eb153eb38430b6c5de7300b7cd9e3b14392d7))
120
+
121
+
122
+ ### CI/CD
123
+
124
+ * publish @uteamup/mcp-server to npm on every release ([85cf397](https://github.com/UteamUP/uteamup-mcp/commit/85cf39706266f54aacdc3e8e5a9869b66080cbf8))
125
+
8
126
  ## [2.3.0-beta.9](https://github.com/UteamUP/uteamup-mcp/compare/2.2.0-beta.9...2.3.0-beta.9) (2026-10-19)
9
127
 
10
128
 
package/README.md CHANGED
@@ -13,26 +13,27 @@
13
13
  ## Links
14
14
 
15
15
  - **📦 [npm Package](https://www.npmjs.com/package/@uteamup/mcp-server)** - Install with `npx -y @uteamup/mcp-server`
16
- - **📖 [Documentation](https://docs.uteamup.com/mcp)** - Full MCP integration guide
17
- - **🐛 [Issues](https://github.com/uteamup/mcp-server/issues)** - Report bugs and request features
18
- - **💬 [Support](mailto:support@uteamup.com)** - Get help
16
+ - **📖 [Documentation](https://github.com/UteamUP/uteamup-mcp#readme)** - Full MCP integration guide
17
+ - **🐛 [Issues](https://github.com/UteamUP/uteamup-mcp/issues)** - Report bugs and request features
18
+ - **💬 [Support](mailto:gisli@uteamup.com)** - Get help
19
19
 
20
20
  ## What is this?
21
21
 
22
22
  This package enables AI assistants like Claude Desktop and Claude Code to connect to your UteamUP CMMS system using the Model Context Protocol (MCP). It handles OAuth 2.0 authentication automatically, so you can manage work orders, assets, inventory, and more through natural conversation.
23
23
 
24
- ### Read-only access for Grok, Grok Bot and ChatGPT
24
+ ### Read-only access for Claude, Grok, Grok Bot, ChatGPT and MiniMax Code
25
25
 
26
- Use the environment-specific HTTPS endpoint:
26
+ Use the production HTTPS endpoint:
27
27
 
28
28
  | Environment | MCP server URL |
29
29
  |---|---|
30
30
  | Production | `https://api.uteamup.com/mcp/read-only` |
31
- | Development | `https://devback.uteamup.com/mcp/read-only` |
32
31
 
33
32
  **Sign in with your UteamUP account (recommended).** A tenant administrator (`Tenant.Update`)
34
33
  first turns on **Allow members to connect AI assistants** in the company's **API Keys** tab.
35
- Then each member connects their own assistant; no API key or secret is involved:
34
+ Then each member connects their own assistant; no API key or secret is involved. The consent
35
+ page offers only companies with an active subscription in which the member is the owner or
36
+ holds a license; a link ends (401 `invalid_token`) when that stops being true:
36
37
 
37
38
  - **Grok:** open [Connectors](https://grok.com/connectors), choose **New Connector → Custom**,
38
39
  and enter the endpoint. Grok registers itself (RFC 7591), sends you to the UteamUP consent
@@ -42,6 +43,12 @@ Then each member connects their own assistant; no API key or secret is involved:
42
43
  Setup → Plugins card; each teammate signs in the first time they use it.
43
44
  - **ChatGPT:** add a custom MCP server with the endpoint and choose OAuth; ChatGPT registers
44
45
  itself and you approve on the same consent page.
46
+ - **Claude:** add a custom connector with the endpoint, choose **Sign in now** and
47
+ **Register automatically**, then approve on the UteamUP consent page.
48
+ - **MiniMax Code:** install the `uteamup` plugin (see [Installation](#installation)) or add the
49
+ endpoint under **Settings → MCP Servers** with the Remote / streamable-http transport.
50
+ MiniMax Code discovers the protected-resource metadata, registers itself (RFC 7591), and opens
51
+ the UteamUP consent page on first use.
45
52
 
46
53
  The assistant uses the member's own permissions in the chosen company, and only the read
47
54
  tools below. Access tokens last 60 minutes and refresh tokens rotate on every use. A member
@@ -75,11 +82,10 @@ and [Grok connectors](https://docs.x.ai/grok/connectors).
75
82
 
76
83
  **Key Features:**
77
84
  - ✅ Automatic OAuth 2.0 + PKCE authentication
78
- - ✅ Token caching (7-day expiration, auto-refresh)
85
+ - ✅ Token caching with automatic refresh
79
86
  - ✅ Works with Claude Desktop, Claude Code, and any MCP-compatible client
80
87
  - ✅ Zero configuration - just provide API credentials
81
88
  - ✅ Comprehensive error messages
82
- - ✅ Development mode support (self-signed certificates)
83
89
  - ✅ Server-Sent Events (SSE) response parsing
84
90
  - ✅ Proper JSON-RPC 2.0 notification handling
85
91
  - ✅ **NEW:** Structured logging with Pino (JSON/text formats)
@@ -87,9 +93,10 @@ and [Grok connectors](https://docs.x.ai/grok/connectors).
87
93
  - ✅ **NEW:** Performance monitoring and metrics
88
94
  - ✅ **NEW:** Retry logic with exponential backoff
89
95
  - ✅ **NEW:** CLI utilities (--help, --version, --validate-config, --test-auth)
90
- - ✅ **NEW:** Comprehensive test suite (70 tests)
96
+ - ✅ Comprehensive test suite
91
97
 
92
- **Current Status:** `v1.0.0-beta.7` - Production-ready with enhanced debugging! See [CHANGELOG.md](CHANGELOG.md) for details.
98
+ **Release status:** Beta. The npm badge above shows the published version;
99
+ see [CHANGELOG.md](CHANGELOG.md) for release details.
93
100
 
94
101
  **Example Conversation:**
95
102
  ```
@@ -116,7 +123,7 @@ Or install globally:
116
123
  npm install -g @uteamup/mcp-server
117
124
  ```
118
125
 
119
- ### Install via CLI Plugin Marketplaces
126
+ ### Install as a Plugin
120
127
 
121
128
  - **Claude Code:**
122
129
  ```bash
@@ -131,6 +138,21 @@ npm install -g @uteamup/mcp-server
131
138
  ```bash
132
139
  gemini extensions install https://github.com/UteamUP/uteamup-mcp
133
140
  ```
141
+ - **MiniMax Code:**
142
+
143
+ ```bash
144
+ git clone https://github.com/UteamUP/uteamup-mcp.git
145
+ cp -R uteamup-mcp/plugins/minimax ~/.minimax/plugins/uteamup
146
+ ```
147
+
148
+ MiniMax Code has no plugin marketplace. It discovers local plugins by folder, rescans
149
+ automatically, and enables a newly discovered plugin by default. The plugin bundles the
150
+ read-only MCP server and a `cmms` skill that teaches the agent when and how to use the
151
+ tools.
152
+
153
+ To skip the plugin, add the server directly under **Settings → MCP Servers** with the
154
+ Remote / streamable-http transport and this URL (no credentials are stored):
155
+ `https://api.uteamup.com/mcp/read-only`
134
156
 
135
157
  ---
136
158
 
@@ -147,8 +169,11 @@ npm install -g @uteamup/mcp-server
147
169
 
148
170
  ### 2. Configure Claude Desktop
149
171
 
150
- **macOS/Linux:** Edit `~/.config/claude/mcp.json`
151
- **Windows:** Edit `%APPDATA%\Claude\mcp.json`
172
+ In Claude Desktop, open **Settings → Developer → Edit Config**.
173
+ The configuration file is located at:
174
+
175
+ - **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
176
+ - **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
152
177
 
153
178
  Add this configuration:
154
179
 
@@ -167,22 +192,8 @@ Add this configuration:
167
192
  }
168
193
  ```
169
194
 
170
- **Optional:** For development/testing against a local backend:
171
- ```json
172
- {
173
- "mcpServers": {
174
- "uteamup-dev": {
175
- "command": "npx",
176
- "args": ["-y", "@uteamup/mcp-server"],
177
- "env": {
178
- "UTEAMUP_API_KEY": "your-api-key",
179
- "UTEAMUP_SECRET": "your-secret",
180
- "UTEAMUP_API_BASE_URL": "https://devback.uteamup.com"
181
- }
182
- }
183
- }
184
- }
185
- ```
195
+ All UteamUP MCP connections use `https://api.uteamup.com`. Use a restricted key
196
+ from a demo workspace when validating an integration.
186
197
 
187
198
  ### 3. Restart Claude Desktop
188
199
 
@@ -227,16 +238,14 @@ That's it! 🎉
227
238
  | `UTEAMUP_TOKEN_CACHE_DIR` | Persistent token cache directory | - |
228
239
  | `UTEAMUP_TOKEN_REFRESH_MARGIN` | Token refresh margin in seconds | `300` |
229
240
 
230
- ### API Base URLs
241
+ ### API Base URL
231
242
 
232
243
  The configured base URL must be a bare HTTPS origin. Credentials, paths, query
233
244
  parameters, fragments, and plain HTTP endpoints are rejected.
234
245
 
235
- | Environment | URL | When to Use |
236
- |-------------|-----|-------------|
237
- | **Production** | `https://api.uteamup.com` | Default - for normal use |
238
- | **Development** | `https://devback.uteamup.com` | Testing against dev backend |
239
- | **Local** | `https://localhost:5002` | Local development with self-signed cert |
246
+ Always use `https://api.uteamup.com`, including when running the Node proxy
247
+ locally. The full MCP endpoint is `/mcp`; the read-only endpoint is
248
+ `/mcp/read-only`.
240
249
 
241
250
  ### Permissions
242
251
 
@@ -260,7 +269,7 @@ Your AI assistant's permissions are controlled by the **role assigned to your AP
260
269
  **Cause:** `UTEAMUP_API_KEY` or `UTEAMUP_SECRET` not set in MCP configuration.
261
270
 
262
271
  **Solution:**
263
- 1. Check your MCP configuration file (`~/.config/claude/mcp.json` or `%APPDATA%\Claude\mcp.json`)
272
+ 1. Check your Claude Desktop configuration file (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS or `%APPDATA%\Claude\claude_desktop_config.json` on Windows)
264
273
  2. Verify the `env` section includes both `UTEAMUP_API_KEY` and `UTEAMUP_SECRET`
265
274
  3. Ensure there are no typos in the environment variable names
266
275
  4. Restart Claude Desktop after making changes
@@ -309,36 +318,32 @@ Your AI assistant's permissions are controlled by the **role assigned to your AP
309
318
  1. **Check your internet connection**
310
319
  2. **Verify the base URL:**
311
320
  - Production: `https://api.uteamup.com` (default, no env var needed)
312
- - Development: Set `UTEAMUP_API_BASE_URL=https://devback.uteamup.com`
313
321
  3. **Check if UteamUP is down:**
314
- - Contact support@uteamup.com
315
- 4. **For local development:**
316
- - Ensure backend is running: `cd UteamUP_Backend/UteamUP_API && make watch`
317
- - Use `UTEAMUP_API_BASE_URL=https://localhost:5002`
322
+ - Contact gisli@uteamup.com
318
323
 
319
324
  ---
320
325
 
321
326
  #### "UNABLE_TO_VERIFY_LEAF_SIGNATURE" or certificate errors
322
327
 
323
- **Cause:** Self-signed certificate (development mode).
328
+ **Cause:** The connection cannot validate the server's TLS certificate.
324
329
 
325
- **Solution:** This package automatically accepts self-signed certificates for development. If you're seeing this error:
326
- 1. Verify `UTEAMUP_API_BASE_URL` is set correctly
327
- 2. If using local backend, ensure it's running on HTTPS
328
- 3. For production, this should never happen - contact support
330
+ **Solution:**
331
+ 1. Verify the API base URL is `https://api.uteamup.com`
332
+ 2. Check the device's date and trusted certificate configuration
333
+ 3. Contact gisli@uteamup.com if the certificate error persists
329
334
 
330
335
  ---
331
336
 
332
337
  #### Tools list is empty or incomplete
333
338
 
334
- **Cause:** API key role has limited permissions.
339
+ **Cause:** The credential, role, or company configuration does not grant the requested tools.
335
340
 
336
341
  **Solution:**
337
342
  1. Go to **Tenant Settings** → **API Keys** in UteamUP
338
- 2. Edit your API key
339
- 3. Change the role to one with more permissions (e.g., Admin or Supervisor)
340
- 4. Available tools depend on your role's permissions
341
- 5. Changes take effect immediately
343
+ 2. Confirm the key is active and MCP-enabled for the intended company
344
+ 3. Ask a company administrator to check the specific read permissions needed for your workflow
345
+ 4. For the remote read-only connector, use a restricted read-only role; write or wildcard grants are not eligible
346
+ 5. Reconnect the client to refresh its tool list after an authorized permission change
342
347
 
343
348
  ---
344
349
 
@@ -402,9 +407,9 @@ Enable different log levels and formats:
402
407
  ```
403
408
 
404
409
  4. **Get help:**
405
- - Email: support@uteamup.com
406
- - Documentation: https://docs.uteamup.com/mcp
407
- - GitHub Issues: https://github.com/uteamup/mcp-server/issues
410
+ - Email: gisli@uteamup.com
411
+ - Documentation: https://github.com/UteamUP/uteamup-mcp#readme
412
+ - GitHub Issues: https://github.com/UteamUP/uteamup-mcp/issues
408
413
 
409
414
  ---
410
415
 
@@ -414,20 +419,20 @@ Enable different log levels and formats:
414
419
 
415
420
  ```bash
416
421
  # Clone the repository
417
- git clone https://github.com/UteamUP/uteamup-mcp-proxy.git
418
- cd uteamup-mcp-proxy
422
+ git clone https://github.com/UteamUP/uteamup-mcp.git
423
+ cd uteamup-mcp
419
424
 
420
425
  # Install dependencies
421
426
  npm install
422
427
 
423
- # Run tests
424
- npm test
428
+ # Run tests only at the final whole-goal gate (see MCPGuidelines.md)
429
+ UTEAMUP_FINAL_GOAL_GATE=1 npm test
425
430
 
426
431
  # Test with debug logging
427
432
  export UTEAMUP_LOG_LEVEL=DEBUG
428
- export UTEAMUP_API_KEY="your-dev-key"
429
- export UTEAMUP_SECRET="your-dev-secret"
430
- export UTEAMUP_API_BASE_URL="https://localhost:5002"
433
+ export UTEAMUP_API_KEY="your-demo-workspace-key"
434
+ export UTEAMUP_SECRET="your-demo-workspace-secret"
435
+ export UTEAMUP_API_BASE_URL="https://api.uteamup.com"
431
436
  node index.js
432
437
 
433
438
  # CLI Utilities
@@ -451,7 +456,7 @@ npm link
451
456
  "mcpServers": {
452
457
  "uteamup-local": {
453
458
  "command": "node",
454
- "args": ["/absolute/path/to/uteamup-mcp-proxy/index.js"],
459
+ "args": ["/absolute/path/to/uteamup-mcp/index.js"],
455
460
  "env": {
456
461
  "UTEAMUP_API_KEY": "your-key",
457
462
  "UTEAMUP_SECRET": "your-secret",
@@ -465,7 +470,7 @@ npm link
465
470
  ### Project Structure
466
471
 
467
472
  ```
468
- uteamup-mcp-proxy/
473
+ uteamup-mcp/
469
474
  ├── index.js # Main entry point (OAuth + MCP client)
470
475
  ├── package.json # Package metadata
471
476
  ├── README.md # This file
@@ -550,9 +555,9 @@ See [LICENSE](LICENSE) for details.
550
555
 
551
556
  ## Support
552
557
 
553
- - **Documentation:** https://docs.uteamup.com/mcp
554
- - **Email:** support@uteamup.com
555
- - **Issues:** https://github.com/uteamup/mcp-server/issues
558
+ - **Documentation:** https://github.com/UteamUP/uteamup-mcp#readme
559
+ - **Email:** gisli@uteamup.com
560
+ - **Issues:** https://github.com/UteamUP/uteamup-mcp/issues
556
561
 
557
562
  ---
558
563
 
package/index.js CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  /**
4
4
  * UteamUP MCP Proxy - Production-ready OAuth handler with enhanced debugging
5
- * Version: 1.0.0-beta.9
6
5
  *
7
6
  * Features:
8
7
  * - OAuth 2.0 Authorization Code + PKCE authentication
@@ -31,8 +30,7 @@ const {
31
30
  toPublicErrorMessage
32
31
  } = require('./lib/transport-security');
33
32
 
34
- // Package version
35
- const VERSION = '1.0.0-beta.9';
33
+ const { version: VERSION } = require('./package.json');
36
34
 
37
35
  // CLI argument handling
38
36
  const args = process.argv.slice(2);
@@ -280,14 +278,16 @@ async function requestNewAccessToken() {
280
278
 
281
279
  info('Authorization code received');
282
280
 
283
- // Step 2: Exchange for access token with retry
281
+ // Step 2: Exchange for access token with retry. Naming the MCP endpoint as the resource
282
+ // (RFC 8707) gets a token the backend accepts only there, never on its REST API.
284
283
  const tokenData = new URLSearchParams({
285
284
  grant_type: 'authorization_code',
286
285
  code: authCode,
287
286
  redirect_uri: OAUTH_REDIRECT_URI,
288
287
  client_id: config.apiKey,
289
288
  client_secret: config.secret,
290
- code_verifier: verifier
289
+ code_verifier: verifier,
290
+ resource: new URL(config.mcpPath, config.baseUrl).href
291
291
  }).toString();
292
292
 
293
293
  const tokenResponse = await retryWithBackoff(
@@ -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.3.0-beta.9",
6
+ "version": "2.6.0-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.3.0-beta.9",
3
+ "version": "2.6.0-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",
@@ -30,7 +30,7 @@
30
30
  "work-orders",
31
31
  "asset-management"
32
32
  ],
33
- "author": "UteamUP <support@uteamup.com>",
33
+ "author": "UteamUP <gisli@uteamup.com>",
34
34
  "license": "MIT",
35
35
  "repository": {
36
36
  "type": "git",
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.3.0-beta.9",
6
+ "version": "2.6.0-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.3.0-beta.9",
33
+ "version": "2.6.0-beta.9",
34
34
  "transport": {
35
35
  "type": "stdio"
36
36
  },