myhotlunchbox-mcp 1.2.2 → 1.2.3
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/dist/auth.js +14 -1
- package/dist/bundle.js +903 -248
- package/dist/client.js +8 -1
- package/dist/tools/_shared.js +11 -30
- package/dist/tools/billing.js +17 -8
- package/dist/tools/checkout.js +13 -12
- package/dist/tools/orders.js +11 -10
- package/dist/tools/students.js +11 -6
- package/dist/version.js +1 -1
- package/package.json +4 -4
- package/server.json +2 -2
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "MCP server for My Hot Lunchbox — order school lunches, manage students, and track payments via natural language",
|
|
10
|
-
"version": "1.2.
|
|
10
|
+
"version": "1.2.3"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
|
13
13
|
{
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"displayName": "My Hot Lunchbox",
|
|
16
16
|
"source": "./",
|
|
17
17
|
"description": "MCP server for My Hot Lunchbox — school lunch calendar, ordering, and payments. Signs in server-side with the parent account credentials.",
|
|
18
|
-
"version": "1.2.
|
|
18
|
+
"version": "1.2.3",
|
|
19
19
|
"author": {
|
|
20
20
|
"name": "Chris Hall"
|
|
21
21
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "myhotlunchbox-mcp",
|
|
3
3
|
"displayName": "My Hot Lunchbox",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.3",
|
|
5
5
|
"description": "MCP server for My Hot Lunchbox — order school lunches, manage students, and track payments via natural language",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Chris Hall",
|
package/dist/auth.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { McpToolError, truncateErrorMessage } from '@chrischall/mcp-utils';
|
|
1
|
+
import { EdgeBlockedError, McpToolError, detectEdgeBlock, truncateErrorMessage } from '@chrischall/mcp-utils';
|
|
2
2
|
import { TokenManager } from '@chrischall/mcp-utils/session';
|
|
3
3
|
import { API_PREFIX, OAUTH_SCOPE } from './config.js';
|
|
4
4
|
import { createTokenCache, reportCacheWriteFailure } from './token-cache.js';
|
|
@@ -97,6 +97,19 @@ export class MhlbAuth {
|
|
|
97
97
|
}
|
|
98
98
|
const raw = await res.text();
|
|
99
99
|
if (!res.ok) {
|
|
100
|
+
// A CDN/WAF refused the sign-in before the token endpoint saw it, so the
|
|
101
|
+
// password was never judged. Reporting it as "rejected the sign-in"
|
|
102
|
+
// points at a credential on an account that locks on failed attempts.
|
|
103
|
+
// Not an invalid_grant, so it latches nothing and triggers no fallback
|
|
104
|
+
// password grant (chrischall/mcp-host#1015).
|
|
105
|
+
const edge = detectEdgeBlock({ body: raw, headers: res.headers, status: res.status });
|
|
106
|
+
if (edge !== null) {
|
|
107
|
+
throw new EdgeBlockedError(res.status, edge.vendor, {
|
|
108
|
+
service: 'My Hot Lunchbox',
|
|
109
|
+
method: 'POST',
|
|
110
|
+
path: `${API_PREFIX}/auth/login`,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
100
113
|
let parsed = null;
|
|
101
114
|
try {
|
|
102
115
|
parsed = JSON.parse(raw);
|