@leadbay/mcp 0.37.0 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/bin.js +17 -3
- package/dist/http-server.js +17 -3
- package/dist/installer-electron.js +1 -1
- package/dist/installer-gui.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog — @leadbay/mcp
|
|
2
2
|
|
|
3
|
+
## 0.38.0 — 2026-09-10
|
|
4
|
+
|
|
5
|
+
`leadbay_account_status` now returns `mcp_version`, the version of the server
|
|
6
|
+
answering the call, on every call and on both the stdio and hosted servers.
|
|
7
|
+
|
|
8
|
+
Before this, an agent asked "what version of Leadbay are you running" had no
|
|
9
|
+
answer. The version reached the host only in `initialize`'s `serverInfo`, which
|
|
10
|
+
hosts keep out of the model's context, and in
|
|
11
|
+
`update_available.current_version`, which exists only while an update is
|
|
12
|
+
pending and never on hosted (`http-server.ts` wires no update store).
|
|
13
|
+
|
|
14
|
+
The server wrapper sets the field next to `update_available`; the composite's
|
|
15
|
+
`outputSchema` declares it, and the description gains a routing trigger and one
|
|
16
|
+
sentence telling the agent to answer version questions with it.
|
|
17
|
+
|
|
3
18
|
## 0.37.0 — 2026-09-08
|
|
4
19
|
|
|
5
20
|
Expose the backend MCP-first delivery endpoints (`POST /1.6/mcp/search`,
|
package/dist/bin.js
CHANGED
|
@@ -1599,7 +1599,7 @@ account resurfaced:
|
|
|
1599
1599
|
`;
|
|
1600
1600
|
leadbay_account_status = `## WHEN TO USE
|
|
1601
1601
|
|
|
1602
|
-
Trigger phrases: "what's my account status", "how much quota do I have", "what lens am I on", "I topped up / I bought credits / I added credits".
|
|
1602
|
+
Trigger phrases: "what's my account status", "how much quota do I have", "what lens am I on", "I topped up / I bought credits / I added credits", "what version of Leadbay am I running".
|
|
1603
1603
|
|
|
1604
1604
|
Do NOT use for: "show me leads" \u2192 \`leadbay_pull_leads\`.
|
|
1605
1605
|
|
|
@@ -1608,6 +1608,7 @@ Prefer when: meta question about account, quota, active lens, or top-up recovery
|
|
|
1608
1608
|
Examples that SHOULD invoke this tool:
|
|
1609
1609
|
- "What's my account status?"
|
|
1610
1610
|
- "How much quota do I have left this week?"
|
|
1611
|
+
- "Which version of the Leadbay connector is this?"
|
|
1611
1612
|
|
|
1612
1613
|
Examples that should NOT invoke this tool (sound similar, route elsewhere):
|
|
1613
1614
|
- "Show me today's leads."
|
|
@@ -1633,6 +1634,8 @@ Show the user's account state \u2014 admin rights, language, last-active lens, q
|
|
|
1633
1634
|
|
|
1634
1635
|
**After a user tops up, do NOT keep refusing \u2014 RETRY.** If the user signals they topped up / bought credits / added credits, the previous QUOTA_EXCEEDED is invalidated the moment the Stripe webhook lands. RE-CALL \`leadbay_account_status\` to pick up the new state AND retry the originally failed call. The retry itself does not require a successful account_status check first \u2014 a topped-up user has cleared the throttle whether or not your cached snapshot reflects it yet. If the retry hits the wall again, only then re-offer top-up / wait. **A stale quota snapshot is never a reason to gate-keep a topped-up user.**
|
|
1635
1636
|
|
|
1637
|
+
**\`mcp_version\`** is the version of the Leadbay MCP server answering the call. When the user asks which Leadbay version they are running, answer with it.
|
|
1638
|
+
|
|
1636
1639
|
**\`notifications\` block.** The response now includes a top-level \`notifications\` array listing background work the user (or agent) initiated that has since completed (\`bulk_enrich\`, \`bulk_qualify\`, \`import\`). These are signals to revise prior agent outputs the just-finished work might have made stale \u2014 they're NOT a pending-task list for the user. After revising (or confirming nothing is affected), call \`leadbay_acknowledge_notification(notification_id)\`. Full handling protocol below.
|
|
1637
1640
|
|
|
1638
1641
|
## GATE \u2014 INSPECT \`_meta.notifications\` ON EVERY RESPONSE
|
|
@@ -6946,7 +6949,7 @@ This tool MUTATES state. The caller (agent or human-in-the-loop) is responsible
|
|
|
6946
6949
|
NO_COMMERCE_TOOL_DESCRIPTIONS = {
|
|
6947
6950
|
leadbay_account_status: `## WHEN TO USE
|
|
6948
6951
|
|
|
6949
|
-
Trigger phrases: "what's my account status", "how much quota do I have", "what lens am I on", "I topped up / I bought credits / I added credits".
|
|
6952
|
+
Trigger phrases: "what's my account status", "how much quota do I have", "what lens am I on", "I topped up / I bought credits / I added credits", "what version of Leadbay am I running".
|
|
6950
6953
|
|
|
6951
6954
|
Do NOT use for: "show me leads" \u2192 \`leadbay_pull_leads\`.
|
|
6952
6955
|
|
|
@@ -6955,6 +6958,7 @@ Prefer when: meta question about account, quota, active lens, or top-up recovery
|
|
|
6955
6958
|
Examples that SHOULD invoke this tool:
|
|
6956
6959
|
- "What's my account status?"
|
|
6957
6960
|
- "How much quota do I have left this week?"
|
|
6961
|
+
- "Which version of the Leadbay connector is this?"
|
|
6958
6962
|
|
|
6959
6963
|
Examples that should NOT invoke this tool (sound similar, route elsewhere):
|
|
6960
6964
|
- "Show me today's leads."
|
|
@@ -6976,6 +6980,8 @@ Show the user's account state \u2014 admin rights, language, last-active lens, q
|
|
|
6976
6980
|
|
|
6977
6981
|
**After a user tops up, do NOT keep refusing \u2014 RETRY.** If the user signals they topped up / bought credits / added credits, the previous QUOTA_EXCEEDED is invalidated the moment the Stripe webhook lands. RE-CALL \`leadbay_account_status\` to pick up the new state AND retry the originally failed call. The retry itself does not require a successful account_status check first \u2014 a topped-up user has cleared the throttle whether or not your cached snapshot reflects it yet. **A stale quota snapshot is never a reason to gate-keep a topped-up user.**
|
|
6978
6982
|
|
|
6983
|
+
**\`mcp_version\`** is the version of the Leadbay MCP server answering the call. When the user asks which Leadbay version they are running, answer with it.
|
|
6984
|
+
|
|
6979
6985
|
**\`notifications\` block.** The response now includes a top-level \`notifications\` array listing background work the user (or agent) initiated that has since completed (\`bulk_enrich\`, \`bulk_qualify\`, \`import\`). These are signals to revise prior agent outputs the just-finished work might have made stale \u2014 they're NOT a pending-task list for the user. After revising (or confirming nothing is affected), call \`leadbay_acknowledge_notification(notification_id)\`. Full handling protocol below.
|
|
6980
6986
|
|
|
6981
6987
|
## GATE \u2014 INSPECT \`_meta.notifications\` ON EVERY RESPONSE
|
|
@@ -17796,6 +17802,11 @@ var init_account_status = __esm({
|
|
|
17796
17802
|
agent_memory: { type: "object" }
|
|
17797
17803
|
}
|
|
17798
17804
|
},
|
|
17805
|
+
// Set by the MCP server wrapper (NOT this composite) on every call.
|
|
17806
|
+
mcp_version: {
|
|
17807
|
+
type: "string",
|
|
17808
|
+
description: "Version of the Leadbay MCP server answering this call. Answer 'what version of Leadbay are you running' with this value."
|
|
17809
|
+
},
|
|
17799
17810
|
// Auto-update block. Populated by the MCP server wrapper (NOT this
|
|
17800
17811
|
// composite) when a newer release is published on GitHub AND the
|
|
17801
17812
|
// user hasn't suppressed it. When present, the agent should prompt
|
|
@@ -29136,6 +29147,9 @@ ${url}
|
|
|
29136
29147
|
}) === true
|
|
29137
29148
|
}));
|
|
29138
29149
|
await maybeAttachUpdate(name, result);
|
|
29150
|
+
if (name === "leadbay_account_status" && result !== null && typeof result === "object" && !Array.isArray(result) && result.error !== true) {
|
|
29151
|
+
result.mcp_version = serverVersion;
|
|
29152
|
+
}
|
|
29139
29153
|
maybeAttachNotifications(result);
|
|
29140
29154
|
if (result && typeof result === "object" && result.error === true) {
|
|
29141
29155
|
const envText = formatErrorForLLM(result);
|
|
@@ -30787,7 +30801,7 @@ var OAUTH_BASE_URLS = {
|
|
|
30787
30801
|
fr: "https://staging.api.leadbay.app"
|
|
30788
30802
|
}
|
|
30789
30803
|
};
|
|
30790
|
-
var VERSION = "0.
|
|
30804
|
+
var VERSION = "0.38.0";
|
|
30791
30805
|
var HELP = `
|
|
30792
30806
|
leadbay-mcp ${VERSION} \u2014 Leadbay Model Context Protocol server
|
|
30793
30807
|
|
package/dist/http-server.js
CHANGED
|
@@ -4545,7 +4545,7 @@ account resurfaced:
|
|
|
4545
4545
|
`;
|
|
4546
4546
|
var leadbay_account_status = `## WHEN TO USE
|
|
4547
4547
|
|
|
4548
|
-
Trigger phrases: "what's my account status", "how much quota do I have", "what lens am I on", "I topped up / I bought credits / I added credits".
|
|
4548
|
+
Trigger phrases: "what's my account status", "how much quota do I have", "what lens am I on", "I topped up / I bought credits / I added credits", "what version of Leadbay am I running".
|
|
4549
4549
|
|
|
4550
4550
|
Do NOT use for: "show me leads" \u2192 \`leadbay_pull_leads\`.
|
|
4551
4551
|
|
|
@@ -4554,6 +4554,7 @@ Prefer when: meta question about account, quota, active lens, or top-up recovery
|
|
|
4554
4554
|
Examples that SHOULD invoke this tool:
|
|
4555
4555
|
- "What's my account status?"
|
|
4556
4556
|
- "How much quota do I have left this week?"
|
|
4557
|
+
- "Which version of the Leadbay connector is this?"
|
|
4557
4558
|
|
|
4558
4559
|
Examples that should NOT invoke this tool (sound similar, route elsewhere):
|
|
4559
4560
|
- "Show me today's leads."
|
|
@@ -4579,6 +4580,8 @@ Show the user's account state \u2014 admin rights, language, last-active lens, q
|
|
|
4579
4580
|
|
|
4580
4581
|
**After a user tops up, do NOT keep refusing \u2014 RETRY.** If the user signals they topped up / bought credits / added credits, the previous QUOTA_EXCEEDED is invalidated the moment the Stripe webhook lands. RE-CALL \`leadbay_account_status\` to pick up the new state AND retry the originally failed call. The retry itself does not require a successful account_status check first \u2014 a topped-up user has cleared the throttle whether or not your cached snapshot reflects it yet. If the retry hits the wall again, only then re-offer top-up / wait. **A stale quota snapshot is never a reason to gate-keep a topped-up user.**
|
|
4581
4582
|
|
|
4583
|
+
**\`mcp_version\`** is the version of the Leadbay MCP server answering the call. When the user asks which Leadbay version they are running, answer with it.
|
|
4584
|
+
|
|
4582
4585
|
**\`notifications\` block.** The response now includes a top-level \`notifications\` array listing background work the user (or agent) initiated that has since completed (\`bulk_enrich\`, \`bulk_qualify\`, \`import\`). These are signals to revise prior agent outputs the just-finished work might have made stale \u2014 they're NOT a pending-task list for the user. After revising (or confirming nothing is affected), call \`leadbay_acknowledge_notification(notification_id)\`. Full handling protocol below.
|
|
4583
4586
|
|
|
4584
4587
|
## GATE \u2014 INSPECT \`_meta.notifications\` ON EVERY RESPONSE
|
|
@@ -9892,7 +9895,7 @@ This tool MUTATES state. The caller (agent or human-in-the-loop) is responsible
|
|
|
9892
9895
|
var NO_COMMERCE_TOOL_DESCRIPTIONS = {
|
|
9893
9896
|
leadbay_account_status: `## WHEN TO USE
|
|
9894
9897
|
|
|
9895
|
-
Trigger phrases: "what's my account status", "how much quota do I have", "what lens am I on", "I topped up / I bought credits / I added credits".
|
|
9898
|
+
Trigger phrases: "what's my account status", "how much quota do I have", "what lens am I on", "I topped up / I bought credits / I added credits", "what version of Leadbay am I running".
|
|
9896
9899
|
|
|
9897
9900
|
Do NOT use for: "show me leads" \u2192 \`leadbay_pull_leads\`.
|
|
9898
9901
|
|
|
@@ -9901,6 +9904,7 @@ Prefer when: meta question about account, quota, active lens, or top-up recovery
|
|
|
9901
9904
|
Examples that SHOULD invoke this tool:
|
|
9902
9905
|
- "What's my account status?"
|
|
9903
9906
|
- "How much quota do I have left this week?"
|
|
9907
|
+
- "Which version of the Leadbay connector is this?"
|
|
9904
9908
|
|
|
9905
9909
|
Examples that should NOT invoke this tool (sound similar, route elsewhere):
|
|
9906
9910
|
- "Show me today's leads."
|
|
@@ -9922,6 +9926,8 @@ Show the user's account state \u2014 admin rights, language, last-active lens, q
|
|
|
9922
9926
|
|
|
9923
9927
|
**After a user tops up, do NOT keep refusing \u2014 RETRY.** If the user signals they topped up / bought credits / added credits, the previous QUOTA_EXCEEDED is invalidated the moment the Stripe webhook lands. RE-CALL \`leadbay_account_status\` to pick up the new state AND retry the originally failed call. The retry itself does not require a successful account_status check first \u2014 a topped-up user has cleared the throttle whether or not your cached snapshot reflects it yet. **A stale quota snapshot is never a reason to gate-keep a topped-up user.**
|
|
9924
9928
|
|
|
9929
|
+
**\`mcp_version\`** is the version of the Leadbay MCP server answering the call. When the user asks which Leadbay version they are running, answer with it.
|
|
9930
|
+
|
|
9925
9931
|
**\`notifications\` block.** The response now includes a top-level \`notifications\` array listing background work the user (or agent) initiated that has since completed (\`bulk_enrich\`, \`bulk_qualify\`, \`import\`). These are signals to revise prior agent outputs the just-finished work might have made stale \u2014 they're NOT a pending-task list for the user. After revising (or confirming nothing is affected), call \`leadbay_acknowledge_notification(notification_id)\`. Full handling protocol below.
|
|
9926
9932
|
|
|
9927
9933
|
## GATE \u2014 INSPECT \`_meta.notifications\` ON EVERY RESPONSE
|
|
@@ -20075,6 +20081,11 @@ var accountStatus = {
|
|
|
20075
20081
|
agent_memory: { type: "object" }
|
|
20076
20082
|
}
|
|
20077
20083
|
},
|
|
20084
|
+
// Set by the MCP server wrapper (NOT this composite) on every call.
|
|
20085
|
+
mcp_version: {
|
|
20086
|
+
type: "string",
|
|
20087
|
+
description: "Version of the Leadbay MCP server answering this call. Answer 'what version of Leadbay are you running' with this value."
|
|
20088
|
+
},
|
|
20078
20089
|
// Auto-update block. Populated by the MCP server wrapper (NOT this
|
|
20079
20090
|
// composite) when a newer release is published on GitHub AND the
|
|
20080
20091
|
// user hasn't suppressed it. When present, the agent should prompt
|
|
@@ -27716,6 +27727,9 @@ ${url}
|
|
|
27716
27727
|
}) === true
|
|
27717
27728
|
}));
|
|
27718
27729
|
await maybeAttachUpdate(name, result);
|
|
27730
|
+
if (name === "leadbay_account_status" && result !== null && typeof result === "object" && !Array.isArray(result) && result.error !== true) {
|
|
27731
|
+
result.mcp_version = serverVersion;
|
|
27732
|
+
}
|
|
27719
27733
|
maybeAttachNotifications(result);
|
|
27720
27734
|
if (result && typeof result === "object" && result.error === true) {
|
|
27721
27735
|
const envText = formatErrorForLLM(result);
|
|
@@ -28112,7 +28126,7 @@ function parseWriteEnv(env = process.env) {
|
|
|
28112
28126
|
}
|
|
28113
28127
|
|
|
28114
28128
|
// src/http-server.ts
|
|
28115
|
-
var VERSION = true ? "0.
|
|
28129
|
+
var VERSION = true ? "0.38.0" : "0.0.0-dev";
|
|
28116
28130
|
var PORT = Number(process.env.PORT ?? 8080);
|
|
28117
28131
|
var HOST = process.env.HOST ?? "0.0.0.0";
|
|
28118
28132
|
var logger = {
|
package/dist/installer-gui.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leadbay/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.38.0",
|
|
4
4
|
"mcpName": "io.github.leadbay/leadbay-mcp",
|
|
5
5
|
"description": "Model Context Protocol (MCP) server for Leadbay — AI lead discovery, qualification, and enrichment for Claude Desktop, Cursor, and Claude Code.",
|
|
6
6
|
"type": "module",
|