@uteamup/mcp-server 1.0.0-beta.9 → 2.3.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,9 +5,628 @@ 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.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
+
10
+
11
+ ### Features
12
+
13
+ * add AI marketplace manifests and OpenAPI 3.1 action schema ([5ca68a5](https://github.com/UteamUP/uteamup-mcp/commit/5ca68a5c8aad8613b00836b1ac0ed96f93048a69))
14
+ * add Cursor marketplace plugin manifests (.cursor-plugin) ([40b016e](https://github.com/UteamUP/uteamup-mcp/commit/40b016e83063b21c9a5191059c480db0df455622))
15
+ * add official UteamUP logo and icons across all marketplace manifests ([d591776](https://github.com/UteamUP/uteamup-mcp/commit/d5917767e2ab3c5e0bcb8147d8a205a91e51ad02))
16
+ * support reviewed location knowledge links and receipts ([cacf2d6](https://github.com/UteamUP/uteamup-mcp/commit/cacf2d6ede89aee1e7e977b799ef306b5bb35d68))
17
+ * support scoped location hierarchy mutation contracts ([67dd047](https://github.com/UteamUP/uteamup-mcp/commit/67dd047ddac185bda8e57c1c18759f604fc5b250))
18
+ * support the private read-only MCP transport ([d9f30a7](https://github.com/UteamUP/uteamup-mcp/commit/d9f30a701823cced8959ce0cd07201a1685786e0))
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **proxy:** stop stalled MCP calls from hanging the stdio proxy ([562524e](https://github.com/UteamUP/uteamup-mcp/commit/562524edbeee9e1c52fe2d76a69aefcc58034af3))
24
+ * update vulnerable MCP brace expansion dependencies ([8c7c587](https://github.com/UteamUP/uteamup-mcp/commit/8c7c58779a576db9908f674591be11bf96875b97))
25
+ * use single OAuth security scheme in openapi-actions.json for ChatGPT Actions ([cb2aac3](https://github.com/UteamUP/uteamup-mcp/commit/cb2aac32d1cae53b9ef666fd36b58e742d3b957b))
26
+
27
+
28
+ ### Documentation
29
+
30
+ * **mcp:** sign-in account linking for Grok, Grok Bot and ChatGPT ([e5e33d2](https://github.com/UteamUP/uteamup-mcp/commit/e5e33d2c854b637283330d09a8053f39b3534fb4))
31
+
32
+
33
+ ### Tests
34
+
35
+ * add asset rental lifecycle MCP transport tests ([8ecce95](https://github.com/UteamUP/uteamup-mcp/commit/8ecce950df21eb31e5ba5202483c3243bc5de719))
36
+ * add client policy history MCP transport contracts ([b094171](https://github.com/UteamUP/uteamup-mcp/commit/b09417123dc4cf9f1394ea71b5d0427322b52d8a))
37
+ * add coverage for private requirement draft editing in MCP tools ([865686c](https://github.com/UteamUP/uteamup-mcp/commit/865686c86ecb9e3a201f0957f88aa0e7e140149a))
38
+ * add coverage for publishing reviewed revision conflict in requirement draft ([c8d9589](https://github.com/UteamUP/uteamup-mcp/commit/c8d9589b34039120a218a9609a3b7b3fd23baf6e))
39
+ * add coverage for tool, chemical, and part sets in asset patching ([4f593f2](https://github.com/UteamUP/uteamup-mcp/commit/4f593f241a33c133e5eb3317f04e6243f83071e4))
40
+ * add MCP tool tests for asset type fill-existing-assets functionality ([9416faf](https://github.com/UteamUP/uteamup-mcp/commit/9416fafec0c8abf4cfd346749a58dfaaf7cb4524))
41
+ * add Teams integration MCP tools tests ([8d129b8](https://github.com/UteamUP/uteamup-mcp/commit/8d129b8b27568b09e546ba25683eacbf493b0665))
42
+ * align effective labour rate fixtures with nullable pricing contract ([3e110f8](https://github.com/UteamUP/uteamup-mcp/commit/3e110f874b151c164694ed0c86b313e78b8346c2))
43
+ * align marketplace request proxy pagination contracts ([7c328ec](https://github.com/UteamUP/uteamup-mcp/commit/7c328ec26d01be67a62a6636dcd149643a1bfc8e))
44
+ * asset AI builder MCP tool contract ([3e92eaf](https://github.com/UteamUP/uteamup-mcp/commit/3e92eafd63bc241c6eb3d602746399ca2d0e4a7a))
45
+ * **asset-ai-builder:** cover P2 knowledge and compliance kinds through the MCP tools ([1e331cb](https://github.com/UteamUP/uteamup-mcp/commit/1e331cbc30e4f43ad22f383784bbafb86ecef074))
46
+ * **asset-ai-builder:** cover P3 kinds through the MCP apply tool ([5da2875](https://github.com/UteamUP/uteamup-mcp/commit/5da2875eef7fb54a9407380d60bbc8bb5b5da3f9))
47
+ * **asset-dependency:** add test for forwarding independent AND/OR conditions without reshaping asset GUIDs ([fda8e97](https://github.com/UteamUP/uteamup-mcp/commit/fda8e97e493ff5d444d870fa10b010594eff066b))
48
+ * **asset-failure:** cover the incident evidence pack MCP read ([383239e](https://github.com/UteamUP/uteamup-mcp/commit/383239e73e096664027f636303f239b1988716ed))
49
+ * **asset-group:** cover document draft tools ([6946de7](https://github.com/UteamUP/uteamup-mcp/commit/6946de79134ca618055153aba3c5758dab2eb215))
50
+ * **asset-state:** cover the asset state tools ([f80c792](https://github.com/UteamUP/uteamup-mcp/commit/f80c792c1f8cc31433df1e3f5917335981029105))
51
+ * **asset-update:** add tests for UteamupAssetUpdate MCP tool functionality ([d91bb57](https://github.com/UteamUP/uteamup-mcp/commit/d91bb57e9eb2d7ef258cb079737eecb3ad6436ad))
52
+ * **asset:** cover the manufacturer vendor GUID on UteamupAssetPatch ([f54b185](https://github.com/UteamUP/uteamup-mcp/commit/f54b18507533eee671ceb7c94480b31f1075fa01))
53
+ * **asset:** mirror the SDK's tool-error shape for coded asset refusals ([40ea632](https://github.com/UteamUP/uteamup-mcp/commit/40ea63241cebb39aa3a63d2c9303803d84ca6f92))
54
+ * automation runtime tool pass-through and compliance suites ([a6e9fa4](https://github.com/UteamUP/uteamup-mcp/commit/a6e9fa413e2d707f1d33a234872a7950fdda921e))
55
+ * **automation:** assert the mocked replies pass through the seven new tools ([529b8cc](https://github.com/UteamUP/uteamup-mcp/commit/529b8cc76fb79b367a1c308754009a8719927de9))
56
+ * **automation:** cover the workflow, approval and UPMate agent tools ([bc86220](https://github.com/UteamUP/uteamup-mcp/commit/bc86220b471f84e35380be509c71f05a6b79eeb3))
57
+ * **automation:** match the escaped draft graph in the proxied reply ([ff994cc](https://github.com/UteamUP/uteamup-mcp/commit/ff994cc4c34c100d4bc53fb9239059d5febed1cf))
58
+ * **bugs-and-features:** update tests for feature requests and adjust package dependencies ([0e20a90](https://github.com/UteamUP/uteamup-mcp/commit/0e20a90ade29e5da87d2fdf2a9b1de6c90c53e6c))
59
+ * **ci:** assert the js-yaml security floor by intent, not override shape ([8276657](https://github.com/UteamUP/uteamup-mcp/commit/8276657d1481ad1485b8e3a52f7696fd43b8b8f1))
60
+ * **codecatalog:** cover the create-code-by-path tool ([7810315](https://github.com/UteamUP/uteamup-mcp/commit/7810315880bd38877084df1cab70056549da5473))
61
+ * **contact-type:** add tests for contact type CRUD operations and validation ([c70670d](https://github.com/UteamUP/uteamup-mcp/commit/c70670d06a50c754f5cfae4efa79fa4cafa031fb))
62
+ * **conversation:** cover the reaction-toggle tool end to end ([24319ad](https://github.com/UteamUP/uteamup-mcp/commit/24319adbef8c622822fa540acb9bdcc537afe5a4))
63
+ * cover asset energy GUID tool contracts ([7e3d25b](https://github.com/UteamUP/uteamup-mcp/commit/7e3d25bab4db5cb9829620fb117cb22d5cedf2f9))
64
+ * cover booking service type lookup through MCP proxy ([1f7dc30](https://github.com/UteamUP/uteamup-mcp/commit/1f7dc30e912bdee4ecb2b285094d3e3f4cf11970))
65
+ * cover checklist workflow and policy MCP contracts ([abf855d](https://github.com/UteamUP/uteamup-mcp/commit/abf855d663fae775c8633dd776b0bd6051cbcdbf))
66
+ * cover complete pool definitions through MCP ([22ad9c3](https://github.com/UteamUP/uteamup-mcp/commit/22ad9c3f217feaee7acb835aaf350784507baf60))
67
+ * cover cross-subject dossier contracts ([f9f1e34](https://github.com/UteamUP/uteamup-mcp/commit/f9f1e34b394657b8b966e5919d4127627d53cede))
68
+ * cover direct deliverable cost plan proxy contract ([f324f0f](https://github.com/UteamUP/uteamup-mcp/commit/f324f0fa356ee397d8d5aef8f424392f4d38ef22))
69
+ * cover enrolled device proxy contracts ([14810dc](https://github.com/UteamUP/uteamup-mcp/commit/14810dc6c102429adebea0496adb6b8387d7a1ba))
70
+ * cover exact document review tool contracts ([aaf368f](https://github.com/UteamUP/uteamup-mcp/commit/aaf368fee50765b973172b64ad909049305a502c))
71
+ * cover exact resource source lookup through MCP ([4315070](https://github.com/UteamUP/uteamup-mcp/commit/43150705f4aabfedbf628985aa98112bc8ee95c4))
72
+ * cover field check MCP proxy contracts ([f0ae584](https://github.com/UteamUP/uteamup-mcp/commit/f0ae584856d680540a68b47ee7370842d611a9d5))
73
+ * cover GUID qualification MCP wire contracts ([f64ea1f](https://github.com/UteamUP/uteamup-mcp/commit/f64ea1fc3779059e0973cfeef42f4e72b6132957))
74
+ * cover handover creation options through MCP proxy ([9ff29e4](https://github.com/UteamUP/uteamup-mcp/commit/9ff29e49f4aba05de0c5171db8d9cbeb8baa01bc))
75
+ * Cover Knowledge relative move MCP transport ([b4fd2ac](https://github.com/UteamUP/uteamup-mcp/commit/b4fd2ac67f40ef0cca8dbeba21a220f6d00fbd59))
76
+ * cover lifecycle workspace MCP proxy ([ecf515c](https://github.com/UteamUP/uteamup-mcp/commit/ecf515c16288e8f40d486a64c9e574a9f8a5e0f5))
77
+ * cover native Business Central stock tool contracts ([d5ffda1](https://github.com/UteamUP/uteamup-mcp/commit/d5ffda1a69a1aaedd08ab29dd6e363b32148fbf2))
78
+ * cover NCR MCP proxy contracts ([9b623be](https://github.com/UteamUP/uteamup-mcp/commit/9b623be635a7739466e99e3d5163d16d6595ee54))
79
+ * cover on-call replacement lookup transport ([345a0a6](https://github.com/UteamUP/uteamup-mcp/commit/345a0a6eaaef855cf64f808166661b5087cadf35))
80
+ * cover paged on-call decision history proxy ([ca65dc8](https://github.com/UteamUP/uteamup-mcp/commit/ca65dc8bc883ce6052c409b872fc8ceea251f78a))
81
+ * cover paginated timesheet MCP responses and filters ([df00eb4](https://github.com/UteamUP/uteamup-mcp/commit/df00eb4da1208b519711dbb4b669144c67aeae7b))
82
+ * cover project baseline snapshot proxy contract ([e136e87](https://github.com/UteamUP/uteamup-mcp/commit/e136e8709b830c373cdaeb1618c03c83856ab99d))
83
+ * cover project cost evidence through MCP ([6a7f744](https://github.com/UteamUP/uteamup-mcp/commit/6a7f744b81bb0d5bef9314fc714e8f8c1aaa6b89))
84
+ * cover project portfolio filter forwarding ([5700b5a](https://github.com/UteamUP/uteamup-mcp/commit/5700b5a59339b5d5a94556227cede1afbd00c0d4))
85
+ * cover project reservation read tool transport ([58dc80e](https://github.com/UteamUP/uteamup-mcp/commit/58dc80eecf4f39cb9a3cfd1429d460109d0207fa))
86
+ * cover prompt-only asset group draft proxy requests ([1b9c705](https://github.com/UteamUP/uteamup-mcp/commit/1b9c7055fd2492577b6ae0971ac159eced573e52))
87
+ * cover public actor GUIDs in handover MCP responses ([61923c8](https://github.com/UteamUP/uteamup-mcp/commit/61923c820a949ac750f661215e202f81a64cebd4))
88
+ * cover radio license management tools ([8ae44ab](https://github.com/UteamUP/uteamup-mcp/commit/8ae44abd9f341a692475c7ff598ea55b044a1464))
89
+ * cover radio MCP administration and history contracts ([6d87036](https://github.com/UteamUP/uteamup-mcp/commit/6d87036a27c13b5b4b576177258857e27265ab4d))
90
+ * cover radio pilot lifecycle tool authorization ([e441e1b](https://github.com/UteamUP/uteamup-mcp/commit/e441e1b038d495286cb5c8e1133b500e5af02542))
91
+ * cover Radio SharePoint availability proxy ([d4ff24f](https://github.com/UteamUP/uteamup-mcp/commit/d4ff24fcf19e2baad043390fb1526d3d44eb9ca3))
92
+ * cover Radio validation through the MCP proxy ([c678a4c](https://github.com/UteamUP/uteamup-mcp/commit/c678a4c541c0817205a42d8061cac8d3c259989d))
93
+ * cover rating device delivery proxy boundaries ([c51ad06](https://github.com/UteamUP/uteamup-mcp/commit/c51ad0669fe2c7d1443d2f29aec62463c8653750))
94
+ * cover read-only connector radio tools ([a578a6e](https://github.com/UteamUP/uteamup-mcp/commit/a578a6ea6bdf95ab42f75e197a260f1643e72979))
95
+ * cover receipt units and starting pending stock counts ([49258fb](https://github.com/UteamUP/uteamup-mcp/commit/49258fb0c38d32994ef7d8aa2c023c04ee4b5736))
96
+ * cover rental lifecycle and readiness MCP evidence contracts ([00a108f](https://github.com/UteamUP/uteamup-mcp/commit/00a108ff025492efcb961cb7b194ad373dd77623))
97
+ * cover resource pool member type search filtering ([aaa57a5](https://github.com/UteamUP/uteamup-mcp/commit/aaa57a593d17a6ca79303a5d6d90fe585fc8a99b))
98
+ * cover resource source lookup transport ([d9134c5](https://github.com/UteamUP/uteamup-mcp/commit/d9134c5e3eb8cb2937b51da1a9878522f8d40c2c))
99
+ * cover retained radio transmission tool ([0325794](https://github.com/UteamUP/uteamup-mcp/commit/03257949db191673117a087e3cefd293ef065f97))
100
+ * cover retained radio transmission transcript tools ([41f3523](https://github.com/UteamUP/uteamup-mcp/commit/41f3523df9c3c9ef1ad256ec3935b861a159a23e))
101
+ * cover reviewed ICE proxy contracts ([d69517e](https://github.com/UteamUP/uteamup-mcp/commit/d69517e49f33b447aa4e4da3d7419cf1326773de))
102
+ * cover reviewed project schedule tool contracts ([d9b9ab1](https://github.com/UteamUP/uteamup-mcp/commit/d9b9ab19f8f196788bceca2c991a832be7c234c8))
103
+ * cover reviewed project scope commands and reference tools ([ac45164](https://github.com/UteamUP/uteamup-mcp/commit/ac4516431ea2b7a0cd42a68877e7300bc0ce18de))
104
+ * cover reviewed project scope tool transport ([3fa385e](https://github.com/UteamUP/uteamup-mcp/commit/3fa385e0eadb347e33b19c86869fe5fa80502e76))
105
+ * cover reviewed version in resource pool member requests ([18762af](https://github.com/UteamUP/uteamup-mcp/commit/18762af87bbaed4c2e5b24503ec17bf32281b19b))
106
+ * cover SAML domain tools through the MCP proxy ([bd98d58](https://github.com/UteamUP/uteamup-mcp/commit/bd98d582fe49d73644a29e5d7de7673b5bb2fd02))
107
+ * cover tenant crew lookup through the MCP proxy ([3e8495e](https://github.com/UteamUP/uteamup-mcp/commit/3e8495ed31b112e4d8e51d203b930d5ca3efad81))
108
+ * cover tenant feature level tools and the mobile opt-in argument ([c2f8053](https://github.com/UteamUP/uteamup-mcp/commit/c2f80530dd8e267268e38f27efe1f78c33910bcd))
109
+ * cover tenant SAML configuration MCP tools ([cfec56f](https://github.com/UteamUP/uteamup-mcp/commit/cfec56ffc6c7e4c417659ef6eb13c7e80b6b20e5))
110
+ * cover the contract GUID MCP tools ([2ada4f7](https://github.com/UteamUP/uteamup-mcp/commit/2ada4f752dac7150c847b8e8a54c9b54285efe21))
111
+ * cover the NFC tag check through UteamupMeterreadingRecord ([3347fef](https://github.com/UteamUP/uteamup-mcp/commit/3347fef27ade77d971279040f1e2f437257cd7ae))
112
+ * cover the workorder list preview tool through the proxy ([7029884](https://github.com/UteamUP/uteamup-mcp/commit/70298841cace89ecbf55baaacd7f25824f2356d3))
113
+ * cover transport MCP lifecycle and conflict contracts ([f461f56](https://github.com/UteamUP/uteamup-mcp/commit/f461f5677af45e9273d80f47d8e3796bfd35473f))
114
+ * cover vendor compliance device protocol proxy contracts ([d876f42](https://github.com/UteamUP/uteamup-mcp/commit/d876f4275393e1b51eeb0495417e4562b7991cb2))
115
+ * cover Vendor device protocol proxy contracts ([ed1f147](https://github.com/UteamUP/uteamup-mcp/commit/ed1f14710f0a25fd75e41c3616c9763e9dc2a4a1))
116
+ * cover vendor message device proxy contracts ([f7b8d2a](https://github.com/UteamUP/uteamup-mcp/commit/f7b8d2aeeb660602cc43819bace8033219f55945))
117
+ * cover versioned handover draft update contracts ([5721be6](https://github.com/UteamUP/uteamup-mcp/commit/5721be6656a1ed54dba12356dc14bf7ab8e16231))
118
+ * cover work permit link and prerequisite MCP tools ([0c4d3d4](https://github.com/UteamUP/uteamup-mcp/commit/0c4d3d4488ff031b8cfccc12189de3931f37881e))
119
+ * cover work-order project scope replay contracts ([54722f3](https://github.com/UteamUP/uteamup-mcp/commit/54722f3a009775ce664e50af03e7b8ebf3bb32a0))
120
+ * cover workforce MCP self-service tool contracts ([4e50196](https://github.com/UteamUP/uteamup-mcp/commit/4e50196a316004ad40827e798997638f9b307358))
121
+ * distance-tax and statutory meter-ledger tool suites ([f184f1c](https://github.com/UteamUP/uteamup-mcp/commit/f184f1c7b2875575642d7f3d6912a08b624ec500))
122
+ * **dossier:** the subject pair survives the proxy hop ([61459b5](https://github.com/UteamUP/uteamup-mcp/commit/61459b552578ede095339ad25352b8e7a87d20f9))
123
+ * enhance insecureTLS configuration tests for production URLs ([f39fc9a](https://github.com/UteamUP/uteamup-mcp/commit/f39fc9acd96452ca13a8d26bc93a839cefeedc9e))
124
+ * enhance UteamupMarketplaceMyOffersList tool tests with pagination and status filtering ([98ebecd](https://github.com/UteamUP/uteamup-mcp/commit/98ebecdbd5b9a7b0eace83407a819186cabd1552))
125
+ * exercise production proxy for checklist policies ([e2b85be](https://github.com/UteamUP/uteamup-mcp/commit/e2b85be3a8a568129970f9aa826bfe11bca4fea9))
126
+ * **farm:** cover MCP farm unit reads ([3dff45e](https://github.com/UteamUP/uteamup-mcp/commit/3dff45e6fad7532454e475664d348715476f5623))
127
+ * forward resource creation retry keys through MCP ([69069f4](https://github.com/UteamUP/uteamup-mcp/commit/69069f4df3fd837b5bf73d771351447e41f998d1))
128
+ * **industry-coding:** cover document profile proposal proxy ([10fd475](https://github.com/UteamUP/uteamup-mcp/commit/10fd47548f632d5994b1acb15921633ccd4a67bd))
129
+ * **industry-coding:** cover the tenant designation format tool ([40ee080](https://github.com/UteamUP/uteamup-mcp/commit/40ee080d4c0be674ecee1c8a0c0dd420cfe44f83))
130
+ * **itmanagement:** add connections quota reporting test ([89389b2](https://github.com/UteamUP/uteamup-mcp/commit/89389b2d7166ba0c886b8f11614a726985bcf6f2))
131
+ * **itmanagement:** add monitored subscriptions and access checks to connection status ([1661da2](https://github.com/UteamUP/uteamup-mcp/commit/1661da27f21f77723c5fe398501b91e1e283e24e))
132
+ * **itmanagement:** count every enabled capability in the UPMate matrix ([7ca1408](https://github.com/UteamUP/uteamup-mcp/commit/7ca1408305cac06d6748d30f267c39a2f6169c03))
133
+ * **itmanagement:** cover the activity log tool ([d299cc8](https://github.com/UteamUP/uteamup-mcp/commit/d299cc89de60c0db982cb9b113065bd356a588a4))
134
+ * **itmanagement:** cover the resource-children and asset-proposal tools ([ffbf79a](https://github.com/UteamUP/uteamup-mcp/commit/ffbf79a8c68520dfbaf17e280b80f228c269da59))
135
+ * **itmanagement:** MCP contract tests for the IT Management tools ([36d1335](https://github.com/UteamUP/uteamup-mcp/commit/36d13358da9dd903657c512195f014d752545762))
136
+ * **location-privacy:** MCP proxy tests for the location privacy tools ([00e6ace](https://github.com/UteamUP/uteamup-mcp/commit/00e6ace33652bd751b0a6aff75c2f7aa953c4d97))
137
+ * match the explicit reconciliation enum serializer ([70e17a2](https://github.com/UteamUP/uteamup-mcp/commit/70e17a25d6cde7e4c10ce78efcc2462d4c285943))
138
+ * **mcp:** add maintenance revision forwarding and stale review rejection ([75f45c0](https://github.com/UteamUP/uteamup-mcp/commit/75f45c0310b4b4136e9474e51bd2df3063c6e3c7))
139
+ * **mcp:** cover completion report args and report analytics tools ([dcc164b](https://github.com/UteamUP/uteamup-mcp/commit/dcc164b8701cc8975b6ab1eb8c5e093fc1b66c77))
140
+ * **mcp:** cover report template and schedule tools ([02acad3](https://github.com/UteamUP/uteamup-mcp/commit/02acad3b8dedfc44b15b64adf771e0ebb000101e))
141
+ * **mcp:** cover resource booking tools ([c16bdb9](https://github.com/UteamUP/uteamup-mcp/commit/c16bdb9127a4c815d02c82dd541a99138eac37ce))
142
+ * **mcp:** cover the asset group, dependency, dossier and share tools ([f8ca283](https://github.com/UteamUP/uteamup-mcp/commit/f8ca28318bc288ef0344689704448ab79ef00bab))
143
+ * **mcp:** cover the asset shutdown rule tools ([6db40e2](https://github.com/UteamUP/uteamup-mcp/commit/6db40e268c3461ee544d7c818541f87605d884c9))
144
+ * **mcp:** cover the UteamupBiosecurityStatus proxy tool ([2b43521](https://github.com/UteamUP/uteamup-mcp/commit/2b4352149b60042e3547f53f6529032043319b5e))
145
+ * **mcp:** cover UteamupAssetPatch ([6d6f139](https://github.com/UteamUP/uteamup-mcp/commit/6d6f139dd7c70d9edc295d095bdb74ff8000a693))
146
+ * **mcp:** cover work report output, share summary and completion failure tools ([617e522](https://github.com/UteamUP/uteamup-mcp/commit/617e5223953647589801e5bf0da20b2581fdff8d))
147
+ * **mcp:** cover work report tools through the proxy ([757fef0](https://github.com/UteamUP/uteamup-mcp/commit/757fef0c1e5fade9a53fa3f223a94c56d36d2e28))
148
+ * **mcp:** project prerequisite tools ([b4de7c7](https://github.com/UteamUP/uteamup-mcp/commit/b4de7c743c56a040c32f1a2af93352b0776c8597))
149
+ * **mcp:** workorder dependency and template prerequisite tools ([d659764](https://github.com/UteamUP/uteamup-mcp/commit/d659764596a30b27d9d4b9a8c4ce9eb555181667))
150
+ * **meter-reading:** cover the reading view log and attribute restriction tools ([0360084](https://github.com/UteamUP/uteamup-mcp/commit/0360084f88fcf93a0c146f6e02a038a773041c7b))
151
+ * **meter-readings:** cover the tenant-wide list and get reading tools ([16c665d](https://github.com/UteamUP/uteamup-mcp/commit/16c665de7e4d1e30dd609256af8c91c8116bdb84))
152
+ * mirror labour modifier GUID references in MCP fixtures ([b14e93e](https://github.com/UteamUP/uteamup-mcp/commit/b14e93e0d04452bce78fe0a1d1478a867c41c759))
153
+ * preserve exact holiday versions in project schedule tools ([4e546e8](https://github.com/UteamUP/uteamup-mcp/commit/4e546e870a6386727a632d8469ca9f777890e591))
154
+ * preserve exact project gate reviews through MCP ([231f9c0](https://github.com/UteamUP/uteamup-mcp/commit/231f9c09dc636843b4579c0bfaaf1af5b423e887))
155
+ * preserve exact stock source filter through MCP ([bfb7271](https://github.com/UteamUP/uteamup-mcp/commit/bfb7271e059bba384884f657b13ee79e829673dd))
156
+ * preserve owning project work-order scope contracts ([d109621](https://github.com/UteamUP/uteamup-mcp/commit/d109621406d715020e12a86a35dd1f70822da5b7))
157
+ * preserve project cost creation retry receipts ([4e9a8e5](https://github.com/UteamUP/uteamup-mcp/commit/4e9a8e578b3cce106362fc14fd45e004d7c6b715))
158
+ * preserve resource update retry keys through MCP ([b114f17](https://github.com/UteamUP/uteamup-mcp/commit/b114f1705e32e9a668e2c61548d47cff4a41b0bd))
159
+ * **project-share:** proxy contract tests for the project share tools ([e8bc397](https://github.com/UteamUP/uteamup-mcp/commit/e8bc3974420cdf544928521a3e9d9470a2114d87))
160
+ * **project-share:** withhold baselines in the default grid fixture ([fd623b8](https://github.com/UteamUP/uteamup-mcp/commit/fd623b809030d5f3da637bfe081cb12121771fa0))
161
+ * **project-timeline:** add tests for project timeline and workflow contracts ([863765a](https://github.com/UteamUP/uteamup-mcp/commit/863765aeed701e6037ecc74b268acdd3b1492666))
162
+ * **project:** cover the project template MCP tools ([860ce3e](https://github.com/UteamUP/uteamup-mcp/commit/860ce3eb8f18f38af51f1eaf93304468d70f1f54))
163
+ * **quality:** add audit finding MCP proxy contracts ([71474ee](https://github.com/UteamUP/uteamup-mcp/commit/71474ee7c7408d67aa47091993dc37460e08a788))
164
+ * **quality:** add CAPA MCP proxy contracts ([96c729a](https://github.com/UteamUP/uteamup-mcp/commit/96c729a6260646ec12594a3cf817d21913c541dd))
165
+ * **quality:** align CAPA proxy consequences ([30f2cc6](https://github.com/UteamUP/uteamup-mcp/commit/30f2cc64e41546ea57405d46933f95537b5abe32))
166
+ * **quality:** cover audit programme MCP proxy ([86d40e9](https://github.com/UteamUP/uteamup-mcp/commit/86d40e96fb659c581bf0b82aa72b68e26e675c0a))
167
+ * **quality:** cover main audit MCP proxy ([a77a8bf](https://github.com/UteamUP/uteamup-mcp/commit/a77a8bfd6bece53cb52b9ea06a4ee02defbea96b))
168
+ * **quality:** generic-proxy contracts for the quality workflow-policy tools ([68cae9c](https://github.com/UteamUP/uteamup-mcp/commit/68cae9ced272eb685ecd7abe2cf89fd1f541a3b1))
169
+ * **quality:** proxy contracts for the ITP, ITP execution and SCAR tools (T2.14) ([b857a66](https://github.com/UteamUP/uteamup-mcp/commit/b857a6698fc6306aba048645c4221aeb084503f8))
170
+ * retain legacy odometer handover contract coverage ([b13a4ff](https://github.com/UteamUP/uteamup-mcp/commit/b13a4ffe2d439960089338748fabbe5ec45f0314))
171
+ * retain project booking reviews and replay receipts in MCP ([d11ae7a](https://github.com/UteamUP/uteamup-mcp/commit/d11ae7a86a91be26fd577f42d09a54e94aa78f06))
172
+ * retain reviewed project process proxy contracts ([cfabeb1](https://github.com/UteamUP/uteamup-mcp/commit/cfabeb1d0e12c1ff868ed15c02ee457c7bd97933))
173
+ * **safety:** jest coverage for the legal and emergency-contact tools ([47dc499](https://github.com/UteamUP/uteamup-mcp/commit/47dc49921e7cc36717d43e174221a4ee1fb56226))
174
+ * **stock:** cover alert acknowledgement state forwarding ([c9c50b5](https://github.com/UteamUP/uteamup-mcp/commit/c9c50b5236bf732131345b006201657f81aabe12))
175
+ * **stock:** cover stock search sort, sheet and stock-level status forwarding ([6b635a5](https://github.com/UteamUP/uteamup-mcp/commit/6b635a57b7f0b81ca4ab578e7b9397e7b05079b7))
176
+ * **stock:** cover UteamupStockListTakes forwarding ([4e6397f](https://github.com/UteamUP/uteamup-mcp/commit/4e6397f5eb9aed3597359671f69eebe8f0cbdf52))
177
+ * **system-status-tools:** add tests for UteamupExternalServiceStatus tool ([86cb96d](https://github.com/UteamUP/uteamup-mcp/commit/86cb96dcda74e38507a832650d2c917ddcf0fb7b))
178
+ * **tenant-coding-profile:** add tests for tenant designation profile MCP tools ([4f8bd59](https://github.com/UteamUP/uteamup-mcp/commit/4f8bd590f8270395b3844e73c5cf33455ffc1df7))
179
+ * **tenant:** cover industry and module MCP proxies ([d5c19de](https://github.com/UteamUP/uteamup-mcp/commit/d5c19de255b56e172a633e760a35bcc532a7bbb7))
180
+ * use the response helper for handover search contracts ([7a6665e](https://github.com/UteamUP/uteamup-mcp/commit/7a6665e4a4fb237956b0b7b5cdd73b9b960c366a))
181
+ * **user:** pin the userGuid contract of the user tools ([a2d50f0](https://github.com/UteamUP/uteamup-mcp/commit/a2d50f02927cc875bc907a37f380a3e6486a1891))
182
+ * **vin:** Jest contract suite for the fleet VIN decode MCP tool ([42dc9e2](https://github.com/UteamUP/uteamup-mcp/commit/42dc9e2baffc3a936c27deb6cbc444dfa37e6d0f))
183
+ * **weather:** cover the UteamupWeatherSiteWindows tool through the proxy ([deacdef](https://github.com/UteamUP/uteamup-mcp/commit/deacdefecb343517a8419095d4a6a103468f755b))
184
+ * **workorder-share:** proxy contract tests for the share tools ([fe05a2f](https://github.com/UteamUP/uteamup-mcp/commit/fe05a2f4c7b5278fd7db5b953290479cc4242828))
185
+ * **workpermit:** cover the automatic expiry settings tools ([c8c8151](https://github.com/UteamUP/uteamup-mcp/commit/c8c8151ae70da7187cff47f08a8ce4badb9c19c6))
186
+ * **workpermit:** cover the named approver tools ([b1d130a](https://github.com/UteamUP/uteamup-mcp/commit/b1d130a6d13de3842b06cfa6edbfcac76655fa67))
187
+
188
+
189
+ ### CI/CD
190
+
191
+ * publish server.json to Official MCP Registry via GitHub OIDC ([729a7f6](https://github.com/UteamUP/uteamup-mcp/commit/729a7f632611fd3680b54cc8f2ec1f85e2948449))
192
+
193
+ ## [Unreleased]
194
+
195
+ - Fix the stdio proxy hanging: requests now run concurrently, each backend call has a total
196
+ deadline ("Backend did not answer within N ms"), and the process exits within 2 s of stdin
197
+ closing so a client reconnect replaces it. A 401 clears the cached token and retries once with a
198
+ fresh one; backend error bodies (JSON-RPC errors, ProblemDetails) are forwarded; an empty body is
199
+ an error instead of an empty success; `ping` is answered locally.
200
+ - Document sign-in account linking for Grok, Grok Bot and ChatGPT (dynamic client registration,
201
+ consent page, tenant opt-in) and cover the `UteamupAssistantConnectionList` / `Revoke` admin tools.
202
+ - Add the tenant-configurable private ChatGPT/Grok pilot setup guide and optional
203
+ `UTEAMUP_MCP_PATH=/mcp/read-only` forwarding through the existing OAuth transport.
204
+ - Add protocol coverage for tenant SAML connection read, disabled metadata import, and owner-bound
205
+ setup tests, including argument forwarding and authentication/service error responses.
206
+
207
+ ## [2.2.0-beta.9](https://github.com/UteamUP/uteamup-mcp/compare/2.1.0-beta.9...2.2.0-beta.9) (2026-08-29)
208
+
209
+
210
+ ### Features
211
+
212
+ * **handover:** proxy numeric redemption safely ([bcf142e](https://github.com/UteamUP/uteamup-mcp/commit/bcf142e41ab26625e4a40daafe9ca65710f2f3e7))
213
+ * **mcp:** add buildMcpForwardHeaders function and related tests; update transport security methods ([528951e](https://github.com/UteamUP/uteamup-mcp/commit/528951e59b19492d99dfd29d98fd1b881c9968fe))
214
+ * **security:** implement transport security and payload limits ([64d23e9](https://github.com/UteamUP/uteamup-mcp/commit/64d23e97c4d0c60fad208bbf5716496cb17d1254))
215
+ * **tests:** enhance tests for asset certification and heat exposure tools; add redaction for sensitive data in logger ([a383973](https://github.com/UteamUP/uteamup-mcp/commit/a383973e63f1a0ca4d714b72f749bb2a989ddfe0))
216
+
217
+
218
+ ### Bug Fixes
219
+
220
+ * harden MCP AI governance boundary ([3bb1016](https://github.com/UteamUP/uteamup-mcp/commit/3bb101673cebfbffc2dab0eef98e155768a76396))
221
+ * update brace-expansion transitive dependencies ([7304935](https://github.com/UteamUP/uteamup-mcp/commit/7304935e18b46bd06d3848cadd7e8e5f615238ed))
222
+
223
+
224
+ ### Miscellaneous
225
+
226
+ * **security:** add npm dependabot ecosystem and weekly audit workflow ([350a0df](https://github.com/UteamUP/uteamup-mcp/commit/350a0dfa12d65b3107b0f36c59bbcac5fa85de9a))
227
+ * update .gitignore to exclude MSBuild binary logs ([d0aa1ab](https://github.com/UteamUP/uteamup-mcp/commit/d0aa1ab151fb9438e0617786b99171a9f26d5807))
228
+
229
+
230
+ ### Documentation
231
+
232
+ * **mcp:** update MCPGuidelines.md to specify that tests should only be ([4a7c2d3](https://github.com/UteamUP/uteamup-mcp/commit/4a7c2d3ebee3c55c877d9ff5993cdb1b50e58ae7))
233
+ * update changelog with tutorial tools test coverage ([a587c7f](https://github.com/UteamUP/uteamup-mcp/commit/a587c7f07958c7892a5dc2a43b05c2a5c3e47511))
234
+ * update frontend styling rules documentation path ([0b8ff27](https://github.com/UteamUP/uteamup-mcp/commit/0b8ff273cd4cb5b8a6b9d15f80053cd401190226))
235
+
236
+
237
+ ### Tests
238
+
239
+ * add unit tests for asset assistant and shift handover ai summary tools ([baddf7e](https://github.com/UteamUP/uteamup-mcp/commit/baddf7e65443acf8f72d4dfd7b33cf6ea1cab88c))
240
+ * add unit tests for part and stock tools ([c2ae5d7](https://github.com/UteamUP/uteamup-mcp/commit/c2ae5d7addb89060fceec81e75ece56efcb2384d))
241
+ * **agreements:** cover MCP entitlement contracts ([096b3e6](https://github.com/UteamUP/uteamup-mcp/commit/096b3e6d3d9122de588af97f7c91b5eca53ec7b5))
242
+ * **agreements:** cover MCP service agreement contracts ([991b250](https://github.com/UteamUP/uteamup-mcp/commit/991b2505317ecd26a900735d37354c701c4c3b61))
243
+ * **ai-credit-packages-tools:** update mock payload structure in unit tests ([fa87816](https://github.com/UteamUP/uteamup-mcp/commit/fa87816d99f85a25180aa5a32a2cf1d3f110f870))
244
+ * **ai-tier-assist-tools:** add unit tests for tier assist tools ([97f0e16](https://github.com/UteamUP/uteamup-mcp/commit/97f0e1675c26fe8800bb1f45ad64ca4b7dbcbb83))
245
+ * **ai:** add outcome measurements tools tests ([e6a1680](https://github.com/UteamUP/uteamup-mcp/commit/e6a1680a1046ecc029228db0e809b30ab9424e90))
246
+ * **ai:** cover control plane MCP proxy ([a1b13d1](https://github.com/UteamUP/uteamup-mcp/commit/a1b13d14a952273a16d70c938af7eda094980480))
247
+ * **ai:** cover data readiness MCP proxy ([aedbf52](https://github.com/UteamUP/uteamup-mcp/commit/aedbf52ce025241d15408ae737ef67fabf31a9f2))
248
+ * **ai:** cover Knowledge tutorial trust proxy ([711c389](https://github.com/UteamUP/uteamup-mcp/commit/711c389b76bd9a11473aa86e17ebe06a90ac5d7b))
249
+ * align cleanup MCP enum fixtures ([5938d63](https://github.com/UteamUP/uteamup-mcp/commit/5938d63791755a862cdf13d29879d93ca4f3c92e))
250
+ * align contractor and vendor tools with GUID contracts ([b669b71](https://github.com/UteamUP/uteamup-mcp/commit/b669b71e8835f40fce1f945dc161a77f1b92bb0d))
251
+ * align journal code linking with GUID contracts ([1abf196](https://github.com/UteamUP/uteamup-mcp/commit/1abf1961e35ebb5d5ab60e1f7b9e101eeebac6e4))
252
+ * align labour rate MCP fixtures with tenant GUIDs ([bb850ba](https://github.com/UteamUP/uteamup-mcp/commit/bb850bad6f44611b2599c19089467177360253d4))
253
+ * assert shift handover guid contract ([463e40f](https://github.com/UteamUP/uteamup-mcp/commit/463e40f3d91ac61133341f5c7e90decefe9be65d))
254
+ * attendance-station, on-call, and timesheet MCP tool coverage ([b321485](https://github.com/UteamUP/uteamup-mcp/commit/b3214853c86cfa85ecad87b59cfba285ed28341a))
255
+ * **briefing:** cover daily read and HITL confirm tools ([88c2e25](https://github.com/UteamUP/uteamup-mcp/commit/88c2e25dafe821630598302d11901c689b8c551c))
256
+ * **catalog-physical-attributes-tools:** add new test file for catalog physical attributes tools ([9cf5040](https://github.com/UteamUP/uteamup-mcp/commit/9cf504072617b077ed75ec41b2a1652e495c8e3a))
257
+ * **conversation:** add MCP tool tests ([bf9ba52](https://github.com/UteamUP/uteamup-mcp/commit/bf9ba52876f2fb5493898472e3b06bd73f290e31))
258
+ * cover asset assistant citation freshness ([a3d2115](https://github.com/UteamUP/uteamup-mcp/commit/a3d211511786e9cb586f3c038c9330ece1bf3338))
259
+ * cover asset report GUID tools ([dd67830](https://github.com/UteamUP/uteamup-mcp/commit/dd67830920e001b7b2d051002df93c4b56afac53))
260
+ * cover concurrent time entry contracts ([bf33682](https://github.com/UteamUP/uteamup-mcp/commit/bf3368241e9e397f52fa6e2af542f306a03e9844))
261
+ * cover enabled UPMate MCP capability contracts ([c1149f0](https://github.com/UteamUP/uteamup-mcp/commit/c1149f07df5ccf020922d435b72d87e356896de5))
262
+ * cover field service mutation retry contracts ([afb0a8a](https://github.com/UteamUP/uteamup-mcp/commit/afb0a8ad7178e9683ace7821f8b03a6e20ddbd88))
263
+ * cover fleet maintenance proposal MCP capability ([92865a7](https://github.com/UteamUP/uteamup-mcp/commit/92865a7f28eddf6a8388d3f554bf3590b759da06))
264
+ * cover GUID logbook import tool ([ebf41f0](https://github.com/UteamUP/uteamup-mcp/commit/ebf41f041163a9098d60b954c2d06a21e35580b9))
265
+ * cover GUID maintenance plan tools ([4864590](https://github.com/UteamUP/uteamup-mcp/commit/4864590872bf2a79609785c9d82af9c4c1ce983b))
266
+ * cover GUID portal communication tools ([ea38ded](https://github.com/UteamUP/uteamup-mcp/commit/ea38ded7423f5f24074ed5bfa84a55f557fc8db6))
267
+ * cover handover carry-over MCP contracts ([843bac1](https://github.com/UteamUP/uteamup-mcp/commit/843bac1ea31419ae8fd3ff6063f86c79a1487a5e))
268
+ * cover operational baton MCP proxy ([0b6d155](https://github.com/UteamUP/uteamup-mcp/commit/0b6d15515c21e40701677080ee09c8501d2cc7e4))
269
+ * cover provider-neutral billing tools ([9ea6019](https://github.com/UteamUP/uteamup-mcp/commit/9ea6019cd41ae399bc847e34c6db0f21ea3b694f))
270
+ * cover quality cleanup MCP proxy ([b3b5a50](https://github.com/UteamUP/uteamup-mcp/commit/b3b5a5002972b0b00eb7a76077385bbb49df6838))
271
+ * cover quality governance MCP tools ([a9b60c0](https://github.com/UteamUP/uteamup-mcp/commit/a9b60c0e9313b78b41620a6c4f1e65c6c9d1b256))
272
+ * cover quick report MCP tools ([a79e48e](https://github.com/UteamUP/uteamup-mcp/commit/a79e48e3bb21897556fbd129cfcdaaef5da99eb8))
273
+ * cover service SLA milestone proxy ([8804032](https://github.com/UteamUP/uteamup-mcp/commit/880403249de51ff10326a4f4421a4d9419178451))
274
+ * cover shift handover audit MCP tools ([c626509](https://github.com/UteamUP/uteamup-mcp/commit/c6265093d7b78b8712e264c9dc8eb92ff80662b1))
275
+ * cover shift handover section MCP contracts ([424cfdc](https://github.com/UteamUP/uteamup-mcp/commit/424cfdc69a1c7cce1a245634ef7eaa426f5424a9))
276
+ * cover UPMate asset detail contract ([ba84e08](https://github.com/UteamUP/uteamup-mcp/commit/ba84e081ade6385e3af1744ffad11b7a580f89b9))
277
+ * **digitaltwin:** add MCP proxy contract tests for the twin tools ([f991822](https://github.com/UteamUP/uteamup-mcp/commit/f9918229fceb515410653dd8d822c3d4699f3636))
278
+ * enforce shift handover GUID responses ([2402a08](https://github.com/UteamUP/uteamup-mcp/commit/2402a085fc20279280d08ad29c6130581f83e7e7))
279
+ * expand coverage for labour marketplace and shift handover tools ([075e1dc](https://github.com/UteamUP/uteamup-mcp/commit/075e1dc8d942a952c7a8567ed79402605547b3e9))
280
+ * **failures:** enforce GUID-only MCP reads ([3f7b1ce](https://github.com/UteamUP/uteamup-mcp/commit/3f7b1ce57c490b99ba2a693b1586394c9ea8fe2c))
281
+ * **fleet:** add asset contact GUID and service price list tests ([e6fc7bf](https://github.com/UteamUP/uteamup-mcp/commit/e6fc7bfa2e2aff2e1706243b54f7f46b1e2902c9))
282
+ * **fleet:** cover intelligence MCP parity ([a012e0f](https://github.com/UteamUP/uteamup-mcp/commit/a012e0fcba976ba361583aeb4793bfe3a73c0f01))
283
+ * **fleet:** cover intelligence mcp tools ([744193d](https://github.com/UteamUP/uteamup-mcp/commit/744193df0fc705e6d958494b94185f733531433a))
284
+ * **fleet:** verify GUID calendar MCP contracts ([9b7e9f9](https://github.com/UteamUP/uteamup-mcp/commit/9b7e9f94aee496ebb168bf2c473bc1509a20a7df))
285
+ * harden emergency insertion mcp proxy ([051d18e](https://github.com/UteamUP/uteamup-mcp/commit/051d18e755a67a4da6caf3e60cbf02f10a2e64c1))
286
+ * **inventory:** cover the scope-enforced bulk delete MCP tool ([f0916e7](https://github.com/UteamUP/uteamup-mcp/commit/f0916e7f166dd735b4a8ea21d2e190f9fff4b367))
287
+ * **iot:** add initial iot tests ([62bd370](https://github.com/UteamUP/uteamup-mcp/commit/62bd3700af6bab003b270594d7b507a2f0add934))
288
+ * Jest coverage for the 14 construction MCP tools ([9efb7cb](https://github.com/UteamUP/uteamup-mcp/commit/9efb7cb5bac2663aceb71bd06c64d8064e87fe53))
289
+ * **journals:** verify MCP field note parity ([15f3589](https://github.com/UteamUP/uteamup-mcp/commit/15f35891e5a8512a67211999ac305dbdfd369cd5))
290
+ * lock canonical workorder links ([20da7a2](https://github.com/UteamUP/uteamup-mcp/commit/20da7a2b2cb3f0354f73263044ce9e41e4461dc3))
291
+ * **maintenance:** cover nest asset maintenance plan MCP tool ([c0f73db](https://github.com/UteamUP/uteamup-mcp/commit/c0f73db591ea45ca3ac4b82b835b55f15bda2b6f))
292
+ * **maintenance:** verify planning MCP parity ([2e37150](https://github.com/UteamUP/uteamup-mcp/commit/2e371509e1f804699943490fadca2f85594471c2))
293
+ * **marketplace-tools:** update buyer verification property to isEstablished ([3a60368](https://github.com/UteamUP/uteamup-mcp/commit/3a6036835f9055d4fe04a59024856c5af4031adc))
294
+ * **marketplace:** add conversation controls tests ([e16d8c5](https://github.com/UteamUP/uteamup-mcp/commit/e16d8c507a1396d3df8bd69d49637eac21904cdd))
295
+ * **marketplace:** add coverage for worker dispatch replacement and update shift handover tool arguments ([e8174fe](https://github.com/UteamUP/uteamup-mcp/commit/e8174fe6f37ab3455b12fabba8c40aa86c6577f1))
296
+ * **marketplace:** add labour contractor analytics tests ([51e3b71](https://github.com/UteamUP/uteamup-mcp/commit/51e3b7197d1d37d8872dcd05f2a655c2b228c9ef))
297
+ * **marketplace:** add tests for UteamupMarketplaceSavedSearchesList, UteamupMarketplaceSaveSearch, and UteamupMarketplaceDeleteSavedSearch tools ([8456d0e](https://github.com/UteamUP/uteamup-mcp/commit/8456d0e401cd5b561c851e17a9d19ffd9993b8d2))
298
+ * **marketplace:** add tests for UteamupMarketplaceSellerScorecard tool ([2a180bf](https://github.com/UteamUP/uteamup-mcp/commit/2a180bfb23cf305b4e0f0fa96cce198670e0fa66))
299
+ * **marketplace:** cover labour agreement timesheets ([457f1f0](https://github.com/UteamUP/uteamup-mcp/commit/457f1f006106fc57d3cb2e9cc3c3479b6dec4a1c))
300
+ * **marketplace:** cover labour AI tools ([f30ee40](https://github.com/UteamUP/uteamup-mcp/commit/f30ee408acce9250b7991b0015baf9f8de704199))
301
+ * **marketplace:** cover private conversation AI summaries ([a2bfd44](https://github.com/UteamUP/uteamup-mcp/commit/a2bfd44afca8c3c9bdd4b5980a528343d6afaadc))
302
+ * **marketplace:** cover private labour workspace tool ([abf40a2](https://github.com/UteamUP/uteamup-mcp/commit/abf40a22da93a7261fede43871b47310bfcf614e))
303
+ * **marketplace:** Jest coverage for the facets MCP tool (H4) ([07adee6](https://github.com/UteamUP/uteamup-mcp/commit/07adee6a1681dd648c78e95cdccb15740e7cceb5))
304
+ * **marketplace:** Jest for buyer-reputation MCP tool (H13) ([945dcbc](https://github.com/UteamUP/uteamup-mcp/commit/945dcbc5d81f3634873df9693fc4c2e275c60e76))
305
+ * **mcp:** add Jest tests for UteamupCodeCatalogDuplicate + UteamupStockItemDuplicate ([2845ddc](https://github.com/UteamUP/uteamup-mcp/commit/2845ddc2cff2dbe34f5924e6369b0e705612c1e4))
306
+ * **mcp:** add part procurement intelligence tool tests ([7480c92](https://github.com/UteamUP/uteamup-mcp/commit/7480c92c568cd0b280df6793b108549dae7106bf))
307
+ * **mcp:** add promotion tools test coverage ([e056002](https://github.com/UteamUP/uteamup-mcp/commit/e056002b193775487cbffafc3c09a27808cf4ae0))
308
+ * **mcp:** add tests for UteamupTeamMoodRead tool and error handling ([b8f93da](https://github.com/UteamUP/uteamup-mcp/commit/b8f93dab8e30f04bc24e364edfcf6e900b588b97))
309
+ * **mcp:** cover accounting export tools ([9fc5f20](https://github.com/UteamUP/uteamup-mcp/commit/9fc5f206896492a708083a47985fbaafb18abeef))
310
+ * **mcp:** cover active and expiring rentals ([5c90c30](https://github.com/UteamUP/uteamup-mcp/commit/5c90c30cc613a3259c8dd9f495cbfb044385813b))
311
+ * **mcp:** cover asset certification status reads ([d3674c1](https://github.com/UteamUP/uteamup-mcp/commit/d3674c129b3503666c4bfea13e6823d8c75c8bea))
312
+ * **mcp:** cover AssetCertification create with CE fields ([c700381](https://github.com/UteamUP/uteamup-mcp/commit/c700381389cbb0d372dfc08aca7ff4d477d96742))
313
+ * **mcp:** cover authoritative offer cards ([e804b58](https://github.com/UteamUP/uteamup-mcp/commit/e804b58d38050f6552de4cc77c359b2e5924ae3a))
314
+ * **mcp:** cover available asset rentals ([956d36f](https://github.com/UteamUP/uteamup-mcp/commit/956d36f2276e5c8e447b76b41400c64c57ba5bf6))
315
+ * **mcp:** cover bookable resource tools ([fe09ed1](https://github.com/UteamUP/uteamup-mcp/commit/fe09ed1a9f2a1b05a499abffc066e7391de89674))
316
+ * **mcp:** cover consent-stage contact cards ([f75cd45](https://github.com/UteamUP/uteamup-mcp/commit/f75cd45c7b64ec17c654e94a3e6779605640288c))
317
+ * **mcp:** cover contractor application AI drafts ([5f68749](https://github.com/UteamUP/uteamup-mcp/commit/5f68749172fc25261db444badf3a72ac791c514a))
318
+ * **mcp:** cover critical handover acknowledgements ([c632513](https://github.com/UteamUP/uteamup-mcp/commit/c63251305b8627d8d8257d27436ee87db07f6ea6))
319
+ * **mcp:** cover filtered asset lifecycle reads ([d0abc0f](https://github.com/UteamUP/uteamup-mcp/commit/d0abc0f41c2174edde65f44436ab948449f3b571))
320
+ * **mcp:** cover governed IoT command tools ([d4b607a](https://github.com/UteamUP/uteamup-mcp/commit/d4b607a36944e0888e4b3841f21a9a7b530fd529))
321
+ * **mcp:** cover Heat NEP exposure list and create tools ([b7faf82](https://github.com/UteamUP/uteamup-mcp/commit/b7faf82e00ec33df2836d3b5f42364e08f93a7a0))
322
+ * **mcp:** cover location access schedule tools ([90e7d79](https://github.com/UteamUP/uteamup-mcp/commit/90e7d7921dcc9b9fbaf939237a66b3c6aa0c8a93))
323
+ * **mcp:** cover marketplace meeting tools ([0ba6835](https://github.com/UteamUP/uteamup-mcp/commit/0ba68356c7331bde9f2e5c0163e39cf721a265e2))
324
+ * **mcp:** cover marketplace participant mentions ([525d473](https://github.com/UteamUP/uteamup-mcp/commit/525d47338f672022f46db923aafd9e5241b55609))
325
+ * **mcp:** cover open asset failures ([5261541](https://github.com/UteamUP/uteamup-mcp/commit/5261541b743ad2f90f6b91232bdc757403715153))
326
+ * **mcp:** cover operational service billing tools ([d73963d](https://github.com/UteamUP/uteamup-mcp/commit/d73963df763080a1705823642a69a4798771f2a5))
327
+ * **mcp:** cover overdue asset calibrations ([bbe6a25](https://github.com/UteamUP/uteamup-mcp/commit/bbe6a25959110a737b69f36a2aa8b3d13e969bad))
328
+ * **mcp:** cover project field context ([d593494](https://github.com/UteamUP/uteamup-mcp/commit/d5934940f90fbb1d5ca80c422c1fdc50eab96a0a))
329
+ * **mcp:** cover rental revenue reads ([aff4ea2](https://github.com/UteamUP/uteamup-mcp/commit/aff4ea253cb1a71b68e84aacff2f089d803afa06))
330
+ * **mcp:** cover report catalog proxy ([8385cfa](https://github.com/UteamUP/uteamup-mcp/commit/8385cfadc2eb5983821539406e1825ae5486afe0))
331
+ * **mcp:** cover reporting-link tool proxying ([9a67c73](https://github.com/UteamUP/uteamup-mcp/commit/9a67c73a85f8c9565174967ddf301b4544ee2b6b))
332
+ * **mcp:** cover return case lifecycle tools ([c8aa51d](https://github.com/UteamUP/uteamup-mcp/commit/c8aa51d5603cde1688d3b65cdd1103fe3058d4f2))
333
+ * **mcp:** cover severity-filtered asset failures ([6cef3f7](https://github.com/UteamUP/uteamup-mcp/commit/6cef3f7a00009eb886585d027a02324a1194229c))
334
+ * **mcp:** cover shift handover operational links ([18f4c1f](https://github.com/UteamUP/uteamup-mcp/commit/18f4c1f50b2c4baef150a39667151ec8a495a954))
335
+ * **mcp:** cover the GUID-first bank-transfer billing tools ([a2688d3](https://github.com/UteamUP/uteamup-mcp/commit/a2688d325e70f3db19a194920aa579f635a640c5))
336
+ * **mcp:** cover the payment-provider tools ([95dc53e](https://github.com/UteamUP/uteamup-mcp/commit/95dc53e9af818570aebfda27ed214e0fddddbe43))
337
+ * **mcp:** cover UPMate field service tools ([da02c84](https://github.com/UteamUP/uteamup-mcp/commit/da02c8417c9f2992dd8fa40b76e666339594384e))
338
+ * **mcp:** expand test coverage for asset calibration and shift handover ([fa95cab](https://github.com/UteamUP/uteamup-mcp/commit/fa95cab1cb5165b5a2c8d110f78c63aa1e69c4bf))
339
+ * **mcp:** mirror shift handover reference GUIDs ([cbeb380](https://github.com/UteamUP/uteamup-mcp/commit/cbeb380184245f83fddb979276bedd4e450f8a16))
340
+ * **mcp:** read the tool result from the response body ([41154df](https://github.com/UteamUP/uteamup-mcp/commit/41154dfa4a6c6b8db551b98842a2c2d34e343d4d))
341
+ * **mcp:** update documentation and expand test coverage ([4a7c2d3](https://github.com/UteamUP/uteamup-mcp/commit/4a7c2d3ebee3c55c877d9ff5993cdb1b50e58ae7))
342
+ * **mcp:** update labour rate tools to use modifierGuid instead of id ([c27e579](https://github.com/UteamUP/uteamup-mcp/commit/c27e579b109c444965a710c83853d7e192d5301a))
343
+ * **mcp:** use real supplier-invoice match statuses in fixtures ([bfb3de1](https://github.com/UteamUP/uteamup-mcp/commit/bfb3de1118a172b7eab05e408b85ad8ae911ad44))
344
+ * **messaging:** add tests for UteamupMarketplaceMessageSend and related tools ([0560970](https://github.com/UteamUP/uteamup-mcp/commit/056097021d8da4062cd3344a30ddb689baec628e))
345
+ * **meters:** mirror GUID workorder reading tool ([e37fce9](https://github.com/UteamUP/uteamup-mcp/commit/e37fce943f23e1600c61542507dd814b8b8b9078))
346
+ * **meters:** remove integer schedule contracts ([64aed60](https://github.com/UteamUP/uteamup-mcp/commit/64aed60d03f72eadaa1d87d47306a80b4e5b938b))
347
+ * mirror canonical workorder create tool ([c79c858](https://github.com/UteamUP/uteamup-mcp/commit/c79c8585746a915fe61afc48a805ea9cf6335e1f))
348
+ * mirror guid shift request contracts ([920cc0a](https://github.com/UteamUP/uteamup-mcp/commit/920cc0a69e1e1101f3f0a796d4e2d80b4199c899))
349
+ * mirror GUID-only MCP boundary tools ([a765ebf](https://github.com/UteamUP/uteamup-mcp/commit/a765ebf6dc2e7fda71a719af95af5b22298eae1c))
350
+ * mirror IoT definition history tool ([5e81568](https://github.com/UteamUP/uteamup-mcp/commit/5e81568df4334d724c2c08f399866f906ea35096))
351
+ * **operations:** cover planning proxy contracts ([8c5b334](https://github.com/UteamUP/uteamup-mcp/commit/8c5b334123ef3432a6e1b2e724f6d73b469a2228))
352
+ * **partner:** update test comments/const after reseller→partner rename ([fe867d1](https://github.com/UteamUP/uteamup-mcp/commit/fe867d1d2410875193375d5c7412f8c7c4bf8032))
353
+ * **partner:** update tests for Partner MCP tools and rename references from Reseller to Partner ([d879cf8](https://github.com/UteamUP/uteamup-mcp/commit/d879cf847cd41065fb849d18b643fdcc0d99c9ea))
354
+ * pin GUID-only workorder completion proxy ([d098f18](https://github.com/UteamUP/uteamup-mcp/commit/d098f185fc0466e1b3ebfeae70abc6785d6cbb5f))
355
+ * preserve asset calibration overdue coverage ([9c4c678](https://github.com/UteamUP/uteamup-mcp/commit/9c4c67865b4550d19336a2e9a814229e6e792316))
356
+ * preserve IoT stamp diagnostics through MCP ([8935148](https://github.com/UteamUP/uteamup-mcp/commit/89351483c13144f356cb7d02ea4ae5d8c4f8deca))
357
+ * **procurement:** cover supplier invoice MCP tools ([0c71e6f](https://github.com/UteamUP/uteamup-mcp/commit/0c71e6fd6ad02ea9d73227baa5cb50d74b386a7b))
358
+ * **project-governance:** add unit tests for project governance tool ([ea239c3](https://github.com/UteamUP/uteamup-mcp/commit/ea239c394558deec8de9b5018025f09212a25479))
359
+ * **project-governance:** update tool names and argument keys in unit tests ([a093e04](https://github.com/UteamUP/uteamup-mcp/commit/a093e04dafbebd4c47ca537e2cbdaaa55dcd6acd))
360
+ * **project-my-projects:** remove id property from project test data ([9cc21d1](https://github.com/UteamUP/uteamup-mcp/commit/9cc21d1739797b354b635cc880cf23e2172deaac))
361
+ * **project-planning:** cover the new workorder-link MCP tools ([cd51b1c](https://github.com/UteamUP/uteamup-mcp/commit/cd51b1cc9880716fe700bcee77b23d2ede3719d1))
362
+ * **quality:** align cleanup replay fixture ([c1454a8](https://github.com/UteamUP/uteamup-mcp/commit/c1454a890fac524b41c435e33cca12511c6f4eef))
363
+ * refactor tests and add eslint configuration ([610d72e](https://github.com/UteamUP/uteamup-mcp/commit/610d72ec4ee6cb4568982c3d2ad39d3e0361dfcb))
364
+ * **reliability:** cover governed MCP tools ([52b8e0c](https://github.com/UteamUP/uteamup-mcp/commit/52b8e0ca6224fcc1c84e0477aa46e5207bef28e7))
365
+ * **reliability:** cover risk intelligence mcp parity ([f1097c3](https://github.com/UteamUP/uteamup-mcp/commit/f1097c3f8673b0998a600273c6e469b32bfcb8a7))
366
+ * **reliability:** cover strategy proposal mcp parity ([e0486fb](https://github.com/UteamUP/uteamup-mcp/commit/e0486fbcb3ef97bf21145f9ced224ab688c7596e))
367
+ * **reliability:** enforce GUID-only analytics contracts ([f808e4c](https://github.com/UteamUP/uteamup-mcp/commit/f808e4c465748235642c7d629af0b4eaa75287dd))
368
+ * remove retired billing overview tool ([9fef096](https://github.com/UteamUP/uteamup-mcp/commit/9fef096d3b5fc268e9e21f3c97a33443c50a0197))
369
+ * **reseller:** add tests for Reseller MCP tools and functionality ([15c9eb2](https://github.com/UteamUP/uteamup-mcp/commit/15c9eb23469386e6d998e07fcc2ee98afb785e84))
370
+ * retire immediate bank transfer refund tool ([4c761a1](https://github.com/UteamUP/uteamup-mcp/commit/4c761a104a7c47ac8e2ecd20ce90175b0d0cfcca))
371
+ * **route:** cover guid operational contracts ([de5bfe6](https://github.com/UteamUP/uteamup-mcp/commit/de5bfe673762312a78121e291462128831cb6140))
372
+ * **schedule-emergency-insertion:** add working time policy and violation ([4a7c2d3](https://github.com/UteamUP/uteamup-mcp/commit/4a7c2d3ebee3c55c877d9ff5993cdb1b50e58ae7))
373
+ * **schedule-emergency-insertion:** update test data with runGuid and idempotencyKey ([5b8594f](https://github.com/UteamUP/uteamup-mcp/commit/5b8594f75915c0b7b1b0d26a03cea29c4dd3684c))
374
+ * **schedule:** add crew details to proposed assignments in optimization tests ([d99ad27](https://github.com/UteamUP/uteamup-mcp/commit/d99ad27481d22c957a098cc1f951affd529229e5))
375
+ * **schedule:** add schedule optimization run tests ([4ad69ee](https://github.com/UteamUP/uteamup-mcp/commit/4ad69eee7def86916e372dcd0277c407ce8e01a7))
376
+ * **schedule:** cover emergency insertion preview tool ([dd352c4](https://github.com/UteamUP/uteamup-mcp/commit/dd352c41548aa6b6621568f3d3fef8cfcde416dd))
377
+ * **schedule:** cover guid booking MCP contracts ([48eaed9](https://github.com/UteamUP/uteamup-mcp/commit/48eaed9b3618e7046aa5c4986a7ed3b22b650af0))
378
+ * **schedule:** cover optimization apply and revert tools ([d1ffebc](https://github.com/UteamUP/uteamup-mcp/commit/d1ffebcd1dcea2dfd5b3d384a2d79f4ec0af44d1))
379
+ * **schedule:** cover optimization evidence ([98a1c98](https://github.com/UteamUP/uteamup-mcp/commit/98a1c981f12eecc20d3c344d685e9fae95a1fe9a))
380
+ * **schedule:** cover optimization policy tools ([37e05fd](https://github.com/UteamUP/uteamup-mcp/commit/37e05fd3c3d53bf187ad96ac9701dc327110f8cf))
381
+ * **schedule:** cover policy restore, archive listing and the enum wire format ([ebe5760](https://github.com/UteamUP/uteamup-mcp/commit/ebe576037793ce0abb5e0458c48ea5c5ffd83918))
382
+ * **schedule:** cover publication proxy contracts ([f7025ba](https://github.com/UteamUP/uteamup-mcp/commit/f7025bac27e490676349e44a209ca9a00a8a4426))
383
+ * **schedule:** cover supporting resource proxy ([1893889](https://github.com/UteamUP/uteamup-mcp/commit/18938892f3a35242bfb964dba8a30fa972b114fd))
384
+ * **security:** align TLS coverage with origin validation ([1563161](https://github.com/UteamUP/uteamup-mcp/commit/15631611d9fecb26c7d9199a72555f8f9283307f))
385
+ * **shift-handover:** cover operational metrics proxy ([161afb5](https://github.com/UteamUP/uteamup-mcp/commit/161afb559fc6e500265eb57bd9bf1a604fe2e6de))
386
+ * **shift-handover:** cover transfer challenge MCP proxy ([a7223ed](https://github.com/UteamUP/uteamup-mcp/commit/a7223ed4793507206991394a05fd20a584de02eb))
387
+ * **stock-activity-tool:** add unit tests for stock activity tool ([bbd799c](https://github.com/UteamUP/uteamup-mcp/commit/bbd799c871b16366b9a3712e231ce21a19149daf))
388
+ * **stock-ai-count-session-tools:** add unit tests for stock ai count session tool ([a688c38](https://github.com/UteamUP/uteamup-mcp/commit/a688c3817fa6b7620b58b2381907eed9eea28deb))
389
+ * **stock-enterprise-tools:** add condition grade filter test case ([9cf5040](https://github.com/UteamUP/uteamup-mcp/commit/9cf504072617b077ed75ec41b2a1652e495c8e3a))
390
+ * **stock-seasonality-tools:** add unit tests for stock seasonality tool ([aa6d40e](https://github.com/UteamUP/uteamup-mcp/commit/aa6d40eb2fd6984c90864f3a8c053c301025e305))
391
+ * **tutorial-tools:** add unit tests for tutorial tools ([9463cf8](https://github.com/UteamUP/uteamup-mcp/commit/9463cf8f1463d4527def846fb79795d2aa7d2579))
392
+ * **upmate:** add additional enabled capability contracts ([eb7b51c](https://github.com/UteamUP/uteamup-mcp/commit/eb7b51cfd75e439d1b4d45b9adc69f197635e6e8))
393
+ * **upmate:** add coverage for project health and customer portal work requests ([77b1068](https://github.com/UteamUP/uteamup-mcp/commit/77b106879b309ebc4aa4984929ecea6bd7dc7ec5))
394
+ * **upmate:** add coverage for workorder template analysis and customer portal users ([d8c92a0](https://github.com/UteamUP/uteamup-mcp/commit/d8c92a0649f6d9826f706a48281c84b317846810))
395
+ * **upmate:** add UteamupProjectBudgetGet to capability contracts ([930ae3d](https://github.com/UteamUP/uteamup-mcp/commit/930ae3d535035802e1d9b1079291fef26203ed76))
396
+ * **upmate:** cover document and vendor read contracts ([42eeedc](https://github.com/UteamUP/uteamup-mcp/commit/42eeedc3b971e07a5a3a116f137af07bb7b81b21))
397
+ * **upmate:** cover fleet dashboard read contracts ([a90d84d](https://github.com/UteamUP/uteamup-mcp/commit/a90d84d03b757e7a92c1174f2145b4cda898ea11))
398
+ * **upmate:** cover fleet package retries ([56df195](https://github.com/UteamUP/uteamup-mcp/commit/56df19555319d759508c0a480d3303e1104989c2))
399
+ * **upmate:** cover IoT rules read contract ([eadf903](https://github.com/UteamUP/uteamup-mcp/commit/eadf90391a380f96e902b5a5b8d5ca9f465e3b5f))
400
+ * **upmate:** cover project and shift detail contracts ([a2c9187](https://github.com/UteamUP/uteamup-mcp/commit/a2c91878e10de18fc4a9cceab6cd1d1936ed3159))
401
+ * **upmate:** Jest coverage for the eight governed field-service tools ([7675dd4](https://github.com/UteamUP/uteamup-mcp/commit/7675dd4f09b7fec2996f25ed4c82e07046f3807e))
402
+ * **upmate:** synchronize enabled capability count ([2818c10](https://github.com/UteamUP/uteamup-mcp/commit/2818c10ae78055fc37e9059b072e755a107b0481))
403
+ * **upmate:** verify cross-module tutorial discovery ([c9ecde4](https://github.com/UteamUP/uteamup-mcp/commit/c9ecde49010d99509649b080e8055f7c4be31a36))
404
+ * use GUID for extension install contracts ([27d993a](https://github.com/UteamUP/uteamup-mcp/commit/27d993a9b20e320a5729a1c89ebd6fa6b1efb7dc))
405
+ * use guid handover acceptance contracts ([c48171e](https://github.com/UteamUP/uteamup-mcp/commit/c48171e5684faaa4d8d849796cc0398aa9b8cf1a))
406
+ * **vehicle-inspection-overdue:** add new test suite for vehicle inspection ([4a7c2d3](https://github.com/UteamUP/uteamup-mcp/commit/4a7c2d3ebee3c55c877d9ff5993cdb1b50e58ae7))
407
+ * **vendors:** use guid scorecard tool contracts ([5c833ff](https://github.com/UteamUP/uteamup-mcp/commit/5c833ff2010a4e74816ac3d9ade71a6b5a7008b2))
408
+ * **workforce:** align MCP planning GUID contracts ([9419f0b](https://github.com/UteamUP/uteamup-mcp/commit/9419f0b263ea5f65ad8b89ad218a4bba90665adf))
409
+ * **workforce:** enforce GUID planning contracts ([cb3ac4a](https://github.com/UteamUP/uteamup-mcp/commit/cb3ac4a54082ebaafd18776a4d7041cd8459633d))
410
+
411
+
412
+ ### CI/CD
413
+
414
+ * **cra:** publish a CycloneDX SBOM for the MCP server ([d8d1c36](https://github.com/UteamUP/uteamup-mcp/commit/d8d1c368465cd775e630f06a1cbde5dce4ff92d3))
415
+ * enforce MCP AI governance and locked installs ([f83b0d9](https://github.com/UteamUP/uteamup-mcp/commit/f83b0d9fe44f73e8dadea0ae6fc7f9281c0aecdc))
416
+ * **security:** add dependency release cooldown ([a9de3c1](https://github.com/UteamUP/uteamup-mcp/commit/a9de3c174679fe2ff1be4f499f82f9a1626eb397))
417
+
418
+ ## [Unreleased]
419
+ - test(stock): cover forwarding both acknowledgement states through the tenant alert inbox tool.
420
+
421
+ ### Tests
422
+
423
+ * **tutorials:** cover the read-only UteamupTutorialList and UteamupTutorialGet tools, including JSON-RPC, authentication, service-unavailable, empty-result, and semantic-ID contracts
424
+
425
+ ## [2.1.0-beta.9](https://github.com/UteamUP/uteamup-mcp/compare/2.0.0-beta.9...2.1.0-beta.9) (2026-07-03)
426
+
427
+
428
+ ### Features
429
+
430
+ * **meter-reading-schedule:** add UteamupMeterscheduleCreateWorkorder tool with tests for work order creation ([29ea2ad](https://github.com/UteamUP/uteamup-mcp/commit/29ea2ad431b92f2299a87ce2ff547479d7d2e598))
431
+
432
+
433
+ ### Bug Fixes
434
+
435
+ * **.gitignore:** refine temporary files pattern to match any name containing "tmp" ([94e4977](https://github.com/UteamUP/uteamup-mcp/commit/94e4977805065884f534512931178b6b57a61dcd))
436
+
437
+
438
+ ### Miscellaneous
439
+
440
+ * **gitignore:** add exclusion for session log files ([82f6a2c](https://github.com/UteamUP/uteamup-mcp/commit/82f6a2ca84a5e4a3cc5bcabd0159b2bf5605b1e5))
441
+ * **session-log:** remove outdated session log for notification-pref MCP tests ([6686585](https://github.com/UteamUP/uteamup-mcp/commit/66865851c4da7d466556375bdf6834c9d3dec846))
442
+
443
+
444
+ ### Documentation
445
+
446
+ * create session log for ChatGPT mobile MCP review findings ([c7d9ac6](https://github.com/UteamUP/uteamup-mcp/commit/c7d9ac6667c7315d9c3ce9bef87d89a7798b2cd0))
447
+
448
+
449
+ ### Tests
450
+
451
+ * add reseller MCP tool tests ([8028cce](https://github.com/UteamUP/uteamup-mcp/commit/8028cce6df91c836c464b5cf053cb8d552ed6259))
452
+ * **asset-aggregated-documents:** add tests for UteamupAssetGetAggregatedDocuments tool ([3e3155c](https://github.com/UteamUP/uteamup-mcp/commit/3e3155c0462b85876120f8e31ecd9d47f68cacfa))
453
+ * **asset-duplicate:** add profile image field to asset read responses ([c7d9ac6](https://github.com/UteamUP/uteamup-mcp/commit/c7d9ac6667c7315d9c3ce9bef87d89a7798b2cd0))
454
+ * **asset-duplicate:** add tests for UteamupAssetDuplicate MCP tool ([f5de991](https://github.com/UteamUP/uteamup-mcp/commit/f5de9915ca0d0556f22a79618cc4e2780c6bc67d))
455
+ * **asset-edit-code-assignment:** add tests for UteamupAssetEditCodeAssignment MCP tool ([37b5ca2](https://github.com/UteamUP/uteamup-mcp/commit/37b5ca25245ab53572681191c61f09b1aee893a9))
456
+ * **billing:** cover the AI-credit packages MCP tool ([fe8d5f5](https://github.com/UteamUP/uteamup-mcp/commit/fe8d5f5c7e20e9f6ed7b5ce1d165e5a30ef6ed28))
457
+ * **bugs:** add Jest coverage for Bugs & Features WaitList status transitions ([5bd60ac](https://github.com/UteamUP/uteamup-mcp/commit/5bd60acfa35cc4f7cdfc0d3f08d1fadd4186be3d))
458
+ * **bugs:** add MCP coverage for the bug reporter conversation read tool ([0fd58d5](https://github.com/UteamUP/uteamup-mcp/commit/0fd58d57e2ef1f08fac0a1617edb2f8899a80e43))
459
+ * **bugs:** add tests for UteamupBugsAndFeaturesMine to verify caller's own reports ([dfbeebf](https://github.com/UteamUP/uteamup-mcp/commit/dfbeebf1ffb1f7a586dd879a7e1746a71ea0dcfc))
460
+ * **code-catalog:** add tests for UteamupCodingsystemMoveEntryByGuid MCP tool ([3d98d10](https://github.com/UteamUP/uteamup-mcp/commit/3d98d10c4f343df422e0c475dd2428601d7622f9))
461
+ * **codecatalog-move-entry:** include profile image fields in code-catalog read responses ([c7d9ac6](https://github.com/UteamUP/uteamup-mcp/commit/c7d9ac6667c7315d9c3ce9bef87d89a7798b2cd0))
462
+ * **knowledge-ai:** add tests for UteamupKnowledgeAiTranslate and UteamupKnowledgeAiGenerateFromText tools ([c5827d1](https://github.com/UteamUP/uteamup-mcp/commit/c5827d1dc2b52c1cb41a6e062632f70cba0d4ba8))
463
+ * **knowledge-entity-links:** add Jest tests for UteamupKnowledgeArticleGetLinked, LinkEntity, and UnlinkEntity tools ([14cc12b](https://github.com/UteamUP/uteamup-mcp/commit/14cc12b43689e1277fd29ea3bb02fcd2e3c2bfd9))
464
+ * **mcp:** cover UteamupNotificationPreferenceGet/Set tools ([185972a](https://github.com/UteamUP/uteamup-mcp/commit/185972a573671f6f9ff7c7eea09f1718d5d50a59))
465
+ * **mcp:** document findings and proof of production MCP functionality ([942f445](https://github.com/UteamUP/uteamup-mcp/commit/942f445b670da7bf0665f3bf8bf00729622a843a))
466
+ * **meter-reading-schedule:** add tests for UteamupMeterscheduleGetOpenWorkorders tool ([dc247c2](https://github.com/UteamUP/uteamup-mcp/commit/dc247c2c69ba1a721c010ee765d11ff25e367f7c))
467
+ * **meter-reading-schedule:** add tests for weekly and yearly schedule creation ([4af7e65](https://github.com/UteamUP/uteamup-mcp/commit/4af7e65dd444d62c5604a19b518c3e882a6192e0))
468
+ * **notification-pref:** add Jest tests for UteamupNotificationPreferenceGet/Set tools ([780049c](https://github.com/UteamUP/uteamup-mcp/commit/780049c808da97088bdd46f806da3cfb8a3d010a))
469
+ * **notification-pref:** add session log for Jest tests on new MCP tools ([14e7c8a](https://github.com/UteamUP/uteamup-mcp/commit/14e7c8a9c35fd4d23d2925fd7093ec2ca37477c9))
470
+ * **plans:** cover the 5 new plan-management MCP tools ([8c2cf79](https://github.com/UteamUP/uteamup-mcp/commit/8c2cf79e9f8a64678e0aef8a1194d5bc3497c747))
471
+ * **project:** cover UPMate estimate + apply MCP tools ([f4c5284](https://github.com/UteamUP/uteamup-mcp/commit/f4c5284c957cea4e1c7e1937bbdbdf2a6f45dfa7))
472
+ * **reseller:** add tests for new reseller tools in MCP ([e1df9e6](https://github.com/UteamUP/uteamup-mcp/commit/e1df9e6b0506166fca6b1a42c25f4806f4b43514))
473
+ * **reseller:** cover the application-meetings read tool ([2a9b633](https://github.com/UteamUP/uteamup-mcp/commit/2a9b633eb71b36767775b667eb9dce888139cf92))
474
+ * **reseller:** MCP Jest coverage for program-defaults read tool ([70d2736](https://github.com/UteamUP/uteamup-mcp/commit/70d2736e3d5f8c597057a5b22310cebe38d9cbfa))
475
+ * **responsible-owners:** add tests for UteamupAssetSetResponsibleOwners and UteamupCodecatalogSetResponsibleOwners tools ([30a47f6](https://github.com/UteamUP/uteamup-mcp/commit/30a47f6c4f87f9f75c52a2dde3184e0f814c9fca))
476
+ * **session-log:** remove outdated session log for ChatGPT mobile MCP review ([c00e704](https://github.com/UteamUP/uteamup-mcp/commit/c00e70407ef16304452b58566d5f79768d54bc26))
477
+ * **stock-enterprise-tools:** add tests for Stock enterprise MCP tools ([7c0ef24](https://github.com/UteamUP/uteamup-mcp/commit/7c0ef24e7b5b5da538c1da4ed7133d53c5e50262))
478
+ * **stock:** add MCP count-from-photo tool Jest test ([52d1285](https://github.com/UteamUP/uteamup-mcp/commit/52d12851f3101d1d93f91cd65f60b83935e6bddf))
479
+ * **wholesaler-tools:** add Jest tests for UteamupWholesaler tools including listing, retrieval, applications, and catalog ([087487d](https://github.com/UteamUP/uteamup-mcp/commit/087487de10d73874eb29c0dcc722ec6760be8b80))
480
+
481
+ ## [2.0.0-beta.9](https://github.com/UteamUP/uteamup-mcp/compare/1.0.0-beta.9...2.0.0-beta.9) (2026-05-27)
482
+
483
+
484
+ ### ⚠ BREAKING CHANGES
485
+
486
+ * **deps:** bump zod 3 -> 4 (mcp)
487
+ * **deps:** bump eslint 8 -> 10 (mcp)
488
+ * **deps:** bump jest 29 -> 30 (mcp)
489
+ * **deps:** bump pino 9 -> 10 + pino-pretty 12 -> 13 (mcp)
490
+ * **deps:** bump @types/node 20 -> 25 (mcp)
491
+
492
+ ### Features
493
+
494
+ * add external GUIDs to mock data for MyProjects MCP tool tests ([476364d](https://github.com/UteamUP/uteamup-mcp/commit/476364de7956df3966aa4be3a6d5e5536866bc88))
495
+ * add full test coverage for Schedule and WorkforcePlanning MCP tools ([918cd1e](https://github.com/UteamUP/uteamup-mcp/commit/918cd1e350dd853bd46368fa310096bfe4894633))
496
+ * Add integration tests for schedule assignment MCP tools, covering week schedule, assignment creation, update, deletion, auto-assignment, and availability. ([21b8063](https://github.com/UteamUP/uteamup-mcp/commit/21b80632f1940e351450f58139f49248f635e8b1))
497
+ * add MCP tests for extension system and Customer Viewer tools ([8dce914](https://github.com/UteamUP/uteamup-mcp/commit/8dce914a6d0bc844fefeae5ab49f8f2bc7e20aae))
498
+ * add tests for Document metadata and timeline MCP tools ([6e66e74](https://github.com/UteamUP/uteamup-mcp/commit/6e66e745ff841c5d9fbb1b8381fc1e6d7f4afa8e))
499
+ * add tests for new Schedule AI / Workforce Planning MCP tools. ([7236780](https://github.com/UteamUP/uteamup-mcp/commit/723678005f324af0d50b5d31f520c932197cf758))
500
+ * add tests for UteamupAssetGetAssignedStock MCP tool ([fb0b7ac](https://github.com/UteamUP/uteamup-mcp/commit/fb0b7ac4fe1d7b9a62e633652bc5a26e6411a431))
501
+ * **dedicated-instance-integration:** add dedicated instance integration details and tool definitions ([f055003](https://github.com/UteamUP/uteamup-mcp/commit/f05500367ab24467cf2d5ea4b5a1a36cd0ffb425))
502
+ * **deps:** bump @types/node 20 -> 25 (mcp) ([84ed199](https://github.com/UteamUP/uteamup-mcp/commit/84ed1990667a1ad35684f81af79a94b87a27a76d))
503
+ * **deps:** bump eslint 8 -> 10 (mcp) ([aeb02c5](https://github.com/UteamUP/uteamup-mcp/commit/aeb02c570e731185b8da7fdcfbf0386eb429f7ee))
504
+ * **deps:** bump jest 29 -> 30 (mcp) ([930a9e7](https://github.com/UteamUP/uteamup-mcp/commit/930a9e7bcf91bee40901e5517bac69d35ed97b70))
505
+ * **deps:** bump pino 9 -> 10 + pino-pretty 12 -> 13 (mcp) ([5628151](https://github.com/UteamUP/uteamup-mcp/commit/5628151c8ee75bc7c8e00635b392f731fbc44432))
506
+ * **deps:** bump zod 3 -> 4 (mcp) ([cb88055](https://github.com/UteamUP/uteamup-mcp/commit/cb88055d6655a36fb6a465ecab0a93738f770ee7))
507
+ * implement OAuth 2.0 + PKCE and package structure for npm publishing ([d2224d4](https://github.com/UteamUP/uteamup-mcp/commit/d2224d47aab502e6b1868fce601efc6105123eff))
508
+ * Implement retry logic with exponential backoff and fixed delay ([b5452ae](https://github.com/UteamUP/uteamup-mcp/commit/b5452ae2826cc83177160862854ecde9f41758f7))
509
+ * **journal-code-linking:** Add MCP tests for journal-code linking tools ([6d33be6](https://github.com/UteamUP/uteamup-mcp/commit/6d33be66a408a24b7f4a370c76e4e1585d0e4063))
510
+ * **test:** add shared MCP test helper and error factory modules ([e77fd3c](https://github.com/UteamUP/uteamup-mcp/commit/e77fd3c1db45e0f1938636aa45bba86451aad23a))
511
+
512
+
513
+ ### Bug Fixes
514
+
515
+ * **ci:** correct release-please-action SHA to v4.4.0 ([8004f04](https://github.com/UteamUP/uteamup-mcp/commit/8004f0414f6c4710bbee2648a70b15305df4450a))
516
+ * lint non-blocking, unit tests only ([db4d093](https://github.com/UteamUP/uteamup-mcp/commit/db4d093b94618e5e2a6e37a838485dd7c7acc4b0))
517
+ * make lint non-blocking ([90fbb74](https://github.com/UteamUP/uteamup-mcp/commit/90fbb745630559ff9b2651d11c7c0aeb43e8dde0))
518
+ * **security:** gate MCP TLS-verification bypass behind explicit opt-in (UTEAMUP-SEC-2026-05-02-008) ([43e3027](https://github.com/UteamUP/uteamup-mcp/commit/43e30276b9bf636ff7fe40cf7e73a6b314d42642))
519
+
520
+
521
+ ### Miscellaneous
522
+
523
+ * add rules to ignore stale local backup files ([2adbe8c](https://github.com/UteamUP/uteamup-mcp/commit/2adbe8c2291fc0f1e222340fc3522c6fd14603c0))
524
+ * commit pending changes ([706e890](https://github.com/UteamUP/uteamup-mcp/commit/706e89022260959407349f795c326b499dd14cdc))
525
+ * **deps:** bump nock 13.5.6 -> 14.0.15, jest 30.4.1 -> 30.4.2, @types/node 25.6.2 -> 25.7.0 ([da2a2b0](https://github.com/UteamUP/uteamup-mcp/commit/da2a2b09097ae405892e2d315564b3805084fc21))
526
+ * **deps:** update prettier to version 3.8.3 in devDependencies ([a876a10](https://github.com/UteamUP/uteamup-mcp/commit/a876a10a4372fd77bd7c7ffd337cb9820eb3242f))
527
+ * **release:** bump version to 1.0.0-beta.8 and include lib directory in package files ([b4871ea](https://github.com/UteamUP/uteamup-mcp/commit/b4871eae46777f13dbe48eb79e2d0facd5b304d0))
528
+ * **release:** bump version to 1.0.0-beta.9 and update logging configuration ([e3680e4](https://github.com/UteamUP/uteamup-mcp/commit/e3680e4efe2608fb8b388723f0732c96163ecb78))
529
+ * **release:** update to version 1.0.0-beta.6 with SSE response parsing and improved notification handling ([d8e1297](https://github.com/UteamUP/uteamup-mcp/commit/d8e1297e225c30be812be4a3119ed5416f0c2b74))
530
+ * remove backup index.js file ([d81c64e](https://github.com/UteamUP/uteamup-mcp/commit/d81c64ea69af2fd5b41c7e69ab1a499868d91377))
531
+
532
+
533
+ ### Code Refactoring
534
+
535
+ * **test:** extract shared helpers from schedule test files ([12eb76a](https://github.com/UteamUP/uteamup-mcp/commit/12eb76a6f2d49591b7258eb3f178ac90f2dbfdfd))
536
+ * **test:** extract shared helpers from shift test files ([b65acfc](https://github.com/UteamUP/uteamup-mcp/commit/b65acfcf34cda550f7f1b128e9f66bb5eddb8ac2))
537
+ * **test:** extract shared helpers from workforce/tenant/labour test files ([e93ce79](https://github.com/UteamUP/uteamup-mcp/commit/e93ce791921cc2004aaca1b4b3f17fc0f5c593f1))
538
+
539
+
540
+ ### Documentation
541
+
542
+ * add comprehensive README with installation, configuration, and troubleshooting ([24286e2](https://github.com/UteamUP/uteamup-mcp/commit/24286e2670d8384a9448e7cd49e3739d2c551d44))
543
+ * add links section with npm package, documentation, issues, and support information ([adce428](https://github.com/UteamUP/uteamup-mcp/commit/adce4282d79e5cd4a918017c2cdb08b0fcc3bdb9))
544
+ * add test deduplication design and implementation plan ([9ac6f25](https://github.com/UteamUP/uteamup-mcp/commit/9ac6f2581abc7310a653c8df312c8cab7f755814))
545
+ * note new tenant invite-defaults tools route via generic proxy ([c883417](https://github.com/UteamUP/uteamup-mcp/commit/c883417b1cc1e0208ffbddc88e45c2cd68bab3a5))
546
+ * update CHANGELOG with group members and assignment proxy tests ([440b70f](https://github.com/UteamUP/uteamup-mcp/commit/440b70f2c8f9b5bc7472c5c6f41e7c7d848d27e8))
547
+ * update CHANGELOG with labour rate MCP test coverage ([f96f9e6](https://github.com/UteamUP/uteamup-mcp/commit/f96f9e611873fb78fe61c5b516abeae6fedee748))
548
+ * update CHANGELOG with test deduplication work ([e7fe256](https://github.com/UteamUP/uteamup-mcp/commit/e7fe25641b297c6e8b5ea891a8abc94a2f666588))
549
+
550
+
551
+ ### Tests
552
+
553
+ * add 36 MCP tool tests for maintenance analytics suite ([54cf92b](https://github.com/UteamUP/uteamup-mcp/commit/54cf92b3d48a44a9194d18ab8454dc3ee70b3f34))
554
+ * Add configuration validation tests ([b5452ae](https://github.com/UteamUP/uteamup-mcp/commit/b5452ae2826cc83177160862854ecde9f41758f7))
555
+ * add Jest suite for UserUiState MCP tools ([da1ce8f](https://github.com/UteamUP/uteamup-mcp/commit/da1ce8f94fd58018a1d5a3d7e569769bea725d1d))
556
+ * Add logger tests for sensitive data redaction ([b5452ae](https://github.com/UteamUP/uteamup-mcp/commit/b5452ae2826cc83177160862854ecde9f41758f7))
557
+ * add MCP proxy tests for group members and work order assignment tools ([b553b8d](https://github.com/UteamUP/uteamup-mcp/commit/b553b8da0a8a5d588652a5127e6db64409610b46))
558
+ * add MCP tests for labour rate modifier and effective-rate tools ([110cf40](https://github.com/UteamUP/uteamup-mcp/commit/110cf4007c3574993c9f6bfc6996ed2abf4bdcf5))
559
+ * add MCP tests for workforce group IconName field ([b521459](https://github.com/UteamUP/uteamup-mcp/commit/b521459645de1f0ad37339feba73329a7e6f5a84))
560
+ * Add retry logic tests ([b5452ae](https://github.com/UteamUP/uteamup-mcp/commit/b5452ae2826cc83177160862854ecde9f41758f7))
561
+ * add WorkorderWatcher MCP tool tests for JSON-RPC compliance and error handling ([92a37f3](https://github.com/UteamUP/uteamup-mcp/commit/92a37f36e747c22bc5e6d8816b9fbd854e7c30c0))
562
+ * **billing-gateway-switcher:** add tests for per-tenant billing-gateway switcher MCP tools ([4822e75](https://github.com/UteamUP/uteamup-mcp/commit/4822e7597f438f7891c7b8097cade59425b763bb))
563
+ * **billing-gateway-switcher:** fix 401/503 helper wiring ([68a8877](https://github.com/UteamUP/uteamup-mcp/commit/68a887714ac59ce48d01e264638f214b2f11bfca))
564
+ * **bugs-and-features:** add test for PerformanceAuto source filter in UteamupBugsAndFeaturesList tool ([ee10fa5](https://github.com/UteamUP/uteamup-mcp/commit/ee10fa530baff33d94190d94364d5aee5436f363))
565
+ * **bugsandfeatures:** add Jest tests for the 4 new MCP tools ([1ede0ef](https://github.com/UteamUP/uteamup-mcp/commit/1ede0efb972b179b91869670ad3641974cd48c52))
566
+ * **bugsandfeatures:** add test for UteamupBugsAndFeaturesDelete tool ([ba2daea](https://github.com/UteamUP/uteamup-mcp/commit/ba2daea0e4c5a6abb702866b13a8c11dc2a2403d))
567
+ * **changelog:** add tests for UteamupWorkorderQuickClose MCP tool ([e1def96](https://github.com/UteamUP/uteamup-mcp/commit/e1def9668f86aff4a7c6349467c9263103cd36ba))
568
+ * Create integration tests for OAuth flow and MCP request forwarding ([b5452ae](https://github.com/UteamUP/uteamup-mcp/commit/b5452ae2826cc83177160862854ecde9f41758f7))
569
+ * Create metrics tracking tests ([b5452ae](https://github.com/UteamUP/uteamup-mcp/commit/b5452ae2826cc83177160862854ecde9f41758f7))
570
+ * Create SSE parser tests ([b5452ae](https://github.com/UteamUP/uteamup-mcp/commit/b5452ae2826cc83177160862854ecde9f41758f7))
571
+ * **mcp:** add project_my_projects tool test and MCPGuidelines.md ([18484b2](https://github.com/UteamUP/uteamup-mcp/commit/18484b2b00d66e633816ea7e94faa269f9dc14a3))
572
+ * **mcp:** cover 5 new image/document import tools with 11 Jest tests ([16b475e](https://github.com/UteamUP/uteamup-mcp/commit/16b475ebd4685e97a5d2b79d1bd80edc88447bad))
573
+ * **meter-reading-schedule:** add comprehensive tests for Meter Reading Schedule MCP tools ([a3cdf88](https://github.com/UteamUP/uteamup-mcp/commit/a3cdf88b726e6e3f21f70177695b58dc069a6d84))
574
+ * **quick-close:** add tests for UteamupWorkorderQuickClose tool ([1329e9e](https://github.com/UteamUP/uteamup-mcp/commit/1329e9e7d4fab46fb909a92b90063d4a1df3bad2))
575
+ * **vendor:** add 113 MCP tool tests for vendor portal ([a2d7b86](https://github.com/UteamUP/uteamup-mcp/commit/a2d7b8693f4f3b1e702f0d007ece55aff1764130))
576
+ * **workorder-template:** jest spec for UteamupWorkorderTemplateRunScheduleNow ([5537a6e](https://github.com/UteamUP/uteamup-mcp/commit/5537a6e4225552ff4f2d5c1941cf39d29f57db4e))
577
+
578
+
579
+ ### CI/CD
580
+
581
+ * add CI/CD ([2e34349](https://github.com/UteamUP/uteamup-mcp/commit/2e3434950f5a0e8ace3648be07a9377d112e7142))
582
+ * add CODEOWNERS ([3f7e48a](https://github.com/UteamUP/uteamup-mcp/commit/3f7e48a9b488c544525238be08c04670c273e94f))
583
+ * add Dependabot ([7c455ff](https://github.com/UteamUP/uteamup-mcp/commit/7c455ffc3011ef3baa71c441aad1c597eda213ff))
584
+ * add Release Please automated versioning ([7399e96](https://github.com/UteamUP/uteamup-mcp/commit/7399e9672953846312ec1907b7dfb36843379f10))
585
+
586
+ ## [Unreleased]
587
+
588
+ ### Changed
589
+
590
+ - **Bumped `nock` 13.5.6 → 14.0.15, `jest` 30.4.1 → 30.4.2, `@types/node` 25.6.2 → 25.7.0.** nock 14 swaps its HTTP-interception engine to `@mswjs/interceptors`, which schedules `replyWithError` via `setImmediate`. The `'handles network timeout gracefully'` test in `test/workorder-watchlist.test.js` was racing with the next test (`describeJsonRpcCompliance` for `UteamupWorkorderWatchlistGet`) — the stale `setImmediate(ETIMEDOUT)` from the timeout test fired during the JSON-RPC compliance test as an unhandled error (2/3 failure rate). Added an explicit `await new Promise(resolve => setImmediate(resolve))` at the end of the timeout test to drain pending interceptor callbacks before the next test starts. Test suite is green 5/5 back-to-back runs after the fix.
591
+
592
+ ### Added
593
+
594
+ - **`UteamupMeterscheduleCreateWorkorder` tool** — force-create a work order from a meter reading schedule (proxied to the backend `POST /api/meter-reading-schedules/{guid}/create-workorder`), optionally seeded from a workorder template (`useScheduleTemplate` / `workorderTemplateGuid` args). Backend Command + Handler + Tool method added; Jest coverage in `test/meter-reading-schedule.test.js` (no-template / explicit-template / unknown-schedule / permission-denied + JSON-RPC 2.0 / 401 / 503 compliance) — 30 passing.
595
+
596
+ - **Performance Auto-Monitoring (MCP).** Documented `PerformanceAuto` as a valid source filter for the `bugs.list` tool proxy. Added test coverage in `test/` to assert the proxied request payload handles the `PerformanceAuto` source correctly.
597
+
598
+ ### Added
599
+
600
+ - **Two new MCP tools forwarded through the generic proxy: `uteamup_tenant_invite_defaults_get` and `uteamup_tenant_invite_defaults_set`.** Backend-declared via `TenantTools.UteamupTenantInviteDefaultsGet` / `UteamupTenantInviteDefaultsSet` with matching `GetTenantInviteDefaultsCommand` + `UpdateTenantInviteDefaultsCommand` handlers. No MCP server code changes needed — the proxy forwards tool calls generically. Dedicated Jest spec + `describeJsonRpcCompliance`/`401`/`503` harness tracked as a follow-up.
601
+
602
+ - **Tests for the new `UteamupWorkorderQuickClose` MCP tool.** New file `test/quick-close.test.js` exercises the Quick Close tool over JSON-RPC 2.0 (nock-mocked HTTPS, mirrors the `bugs-and-features.test.js` pattern). 10 passing tests: happy path returning a created-and-closed workorder (`quickClosedAt` populated), idempotent replay returning the same workorder, optional `industryCodeGuid` + `performedAt` forwarded correctly, 403 (license / permission) / 422 (validation) / 429 (rate limit) / 404 (template gone / not quick-close) surfaced as RPC errors, plus the shared JSON-RPC 2.0 / 401 / 503 harness. No code changes to the MCP proxy itself needed — the tool is declared backend-side and forwarded generically.
603
+ - **Tests for 4 new `UteamupBugsAndFeatures*` MCP tools.** New file `test/bugs-and-features.test.js` exercises `UteamupBugsAndFeaturesCreate`, `UteamupBugsAndFeaturesGet`, `UteamupBugsAndFeaturesList`, and `UteamupBugsAndFeaturesUpdateStatus` over JSON-RPC 2.0 tools/call (nock-mocked HTTPS, mirrors the labour-rate / project-my-projects pattern). Covers happy-path create returning `status=New`, get by `externalGuid`, paginated list with filters, empty-list response, status transition New → Validated, plus the shared JSON-RPC compliance / 401 / 503 suites. No server-side code needed — the MCP proxy is generic and forwards tool calls to backend MediatR handlers added in the backend repo under the same conventional commit.
604
+ - **Tests for the 5 new image/document import MCP tools.** New file `test/document-import-tools.test.js` exercises `UteamupDocumentImportGetBatch`, `UteamupLogbookImportGet`, `UteamupDocumentReviewQueue`, `UteamupDocumentReviewAcknowledge`, and `UteamupAIUsageSummary` over the JSON-RPC tools/call transport (nock-mocked HTTPS, mirrors the labour-rate / project-my-projects pattern). Eleven passing tests cover the happy path for each tool, the `aiQuotaExhausted=true` flag in batch payloads, the SkippedQuotaExhausted enum value (5) on items, optional `batchId` filter on the review queue, optional `comment` on acknowledge, default-window AI usage summary, and the JSON-RPC error shape for backend 503 / cross-tenant 404 surfaces.
605
+ - `test/project-my-projects.test.js` — Jest coverage for the new `UteamupProjectMyProjects` MCP tool (proxies backend `GET /api/project/my-projects`). Covers happy path, empty list, `myWorkorderCount` shape, JSON-RPC error pass-through, and a regression guard asserting the tool accepts NO arguments (user identity must come from the Bearer token). Wires in the shared `describeJsonRpcCompliance`, `describe401Unauthorized`, and `describe503ServiceUnavailable` suites. 8 tests, all passing.
606
+ - `MCPGuidelines.md` — New top-level guide documenting the generic-proxy architecture, configuration, tool-addition workflow (backend-first — NEVER edit `index.js` for a specific tool), test structure and required coverage per new tool, Release Please versioning, critical regression zones, and security rules.
607
+ - `test/helpers/mcp-test-helpers.js` — Shared `callMcpTool`, `sendRawRequest`, `successReply`, `errorReply` utilities for all MCP tool tests
608
+ - `test/helpers/mcp-error-tests.js` — Reusable test factories: `describeJsonRpcCompliance`, `describe401Unauthorized`, `describe503ServiceUnavailable`
609
+ - 58 new error-handling tests from normalization (503 tests added to 4 files that lacked them; all 3 sections added to `labour-rate.test.js`)
610
+ - 8 MCP proxy tests for `UteamupWorkforceGetGroupMembers` and `UteamupWorkforceAssignWorkOrder` tools in `workforce-planning.test.js`
611
+ - 7 IconName field tests in `workforce-categories.test.js`: create with icon, create without (backwards-compat), update, clear, list returns, get by id returns, create request params
612
+
613
+ ### Changed
614
+
615
+ - Extracted duplicated `callMcpTool` helper (~40 lines each) and error-handling describe blocks from 12 MCP tool test files into shared modules, reducing ~1,800 lines of duplication
616
+ - All 12 MCP tool test files now use shared helpers and standardized error test factories
617
+ - Test count: 714 → 772 tests (18 suites, all passing)
618
+ - **test/labour-rate.test.js** — 20 tests covering all 6 `LabourRateTools`: `UteamupLabourRateGetMyEffectiveRate` (including at= param), `UteamupLabourRateGetRules`, `UteamupLabourRateGetModifiers`, `UteamupLabourRateCreateModifier`, `UteamupLabourRateUpdateModifier`, `UteamupLabourRateDeleteModifier`. Tests cover success paths, validation errors (missing name, zero rateValue, invalid id), permission denial (LaborCost.All), and 401 unauthorized.
619
+ - **test/schedule.test.js** — 33 new tests covering all 3 `ScheduleTools`: `UteamupScheduleGetMySchedule`, `UteamupScheduleGetTeamSchedule`, `UteamupScheduleGetAvailableTechnicians`. Tests include success responses, empty results, invalid input errors, parameter capture, JSON-RPC 2.0 compliance, 401/503 handling, and permission denial.
620
+ - **test/schedule-ai-tools.test.js** — Added tests for 3 previously uncovered `WorkforcePlanningTools`: `UteamupWorkforceSuggestAssignment`, `UteamupWorkforceGetCapacity`, `UteamupWorkforceGetAvailableTechnicians`. Updated JSON-RPC compliance and 401 unauthorized suites to cover all 7 workforce tools.
621
+
622
+ ### Changed
623
+
624
+ - Total test count increased from 70+ to 161 across 9 test suites (100% tool coverage for Schedule and WorkforcePlanning domains).
625
+
8
626
  ## [1.0.0-beta.7] - 2026-02-11
9
627
 
10
628
  ### Added
629
+
11
630
  - **Structured Logging:** Production-ready logging with Pino
12
631
  - Log levels: TRACE, DEBUG, INFO, WARN, ERROR (configurable via `UTEAMUP_LOG_LEVEL`)
13
632
  - JSON and text output formats (configurable via `UTEAMUP_LOG_FORMAT`)
@@ -43,6 +662,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
43
662
  - Error handling tests
44
663
 
45
664
  ### Changed
665
+
46
666
  - Refactored codebase into modular structure (`lib/` directory)
47
667
  - `lib/logger.js`: Structured logging module
48
668
  - `lib/config.js`: Configuration validation module
@@ -53,6 +673,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
53
673
  - Better backward compatibility with legacy `UTEAMUP_DEBUG` flag
54
674
 
55
675
  ### Dependencies
676
+
56
677
  - **Added:** `pino` (^9.6.0) - Structured logging
57
678
  - **Added:** `pino-pretty` (^12.0.0) - Pretty-printed logs for development
58
679
  - **Added:** `zod` (^3.25.0) - Runtime type validation
@@ -60,6 +681,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
60
681
  - **Added (dev):** `@types/node` (^20.11.0) - Node.js type definitions
61
682
 
62
683
  ### Improved
684
+
63
685
  - Production-readiness: Meets industry standards for observability and reliability
64
686
  - Developer experience: Better debugging with structured logs and CLI utilities
65
687
  - Error recovery: Automatic retry on transient failures
@@ -68,6 +690,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
68
690
  ## [1.0.0-beta.6] - 2026-02-10
69
691
 
70
692
  ### Fixed
693
+
71
694
  - **Notification Handling:** Properly handle JSON-RPC notifications with empty responses
72
695
  - Backend returns HTTP 202 (Accepted) with empty body for notifications
73
696
  - Proxy now skips sending response for notifications (id: undefined)
@@ -77,6 +700,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
700
  ## [1.0.0-beta.5] - 2026-02-10
78
701
 
79
702
  ### Fixed
703
+
80
704
  - **CRITICAL:** Added Server-Sent Events (SSE) response parsing
81
705
  - Backend returns responses in `text/event-stream` format (SSE)
82
706
  - Proxy now correctly parses SSE format: extracts JSON from `data:` field
@@ -86,6 +710,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
86
710
  ## [1.0.0-beta.4] - 2026-02-10
87
711
 
88
712
  ### Fixed
713
+
89
714
  - **NPM Package:** Fixed bin field path from `index.js` to `./index.js` for proper npm installation
90
715
  - **Debug Logging:** Added comprehensive MCP response logging to help diagnose JSON-RPC format issues
91
716
  - Now logs raw response body
@@ -95,6 +720,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
95
720
  ## [1.0.0-beta.3] - 2026-02-10
96
721
 
97
722
  ### Fixed
723
+
98
724
  - **CRITICAL:** Added `Accept: application/json, text/event-stream` header to MCP requests
99
725
  - Backend requires both content types for HTTP transport compatibility
100
726
  - Fixes HTTP 406 "Not Acceptable" error
@@ -103,6 +729,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
103
729
  ## [1.0.0-beta.2] - 2026-02-10
104
730
 
105
731
  ### Fixed
732
+
106
733
  - **CRITICAL:** Token response parsing now accepts both `accessToken` (camelCase) and `access_token` (snake_case) formats
107
734
  - Backend returns `accessToken` but code only checked for `access_token`
108
735
  - This caused authentication to fail despite successful OAuth flow
@@ -111,6 +738,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
111
738
  ## [1.0.0-beta.1] - 2026-02-10
112
739
 
113
740
  ### Added
741
+
114
742
  - Initial beta release
115
743
  - OAuth 2.0 Authorization Code + PKCE authentication flow
116
744
  - Automatic token caching with 7-day expiration
@@ -123,11 +751,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
123
751
  - JSDoc documentation for all public functions
124
752
 
125
753
  ### Fixed
754
+
126
755
  - Token response parsing to use OAuth 2.0 standard `access_token` field (was incorrectly expecting `accessToken`)
127
756
  - JSON-RPC 2.0 response format to always include request IDs
128
757
  - Error handling for 401/403 HTTP status codes with user-friendly messages
129
758
 
130
759
  ### Security
760
+
131
761
  - Single-use authorization codes enforced
132
762
  - PKCE S256 challenge method (SHA-256)
133
763
  - Token-only authentication (credentials never logged)
@@ -136,6 +766,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
136
766
  ## [Unreleased]
137
767
 
138
768
  ### Planned
769
+
139
770
  - Automatic token refresh on expiration
140
771
  - Configurable token cache location
141
772
  - Additional error recovery strategies