listingbureau-mcp 0.1.12 → 0.1.13
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/dist/index.d.ts +73 -1
- package/dist/index.js +63 -44
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,74 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
export {
|
|
2
|
+
export default function createServer(args: {
|
|
3
|
+
config: {
|
|
4
|
+
lbApiKey?: string;
|
|
5
|
+
};
|
|
6
|
+
env?: Record<string, string | undefined>;
|
|
7
|
+
}): import("@modelcontextprotocol/sdk/server").Server<{
|
|
8
|
+
method: string;
|
|
9
|
+
params?: {
|
|
10
|
+
[x: string]: unknown;
|
|
11
|
+
_meta?: {
|
|
12
|
+
[x: string]: unknown;
|
|
13
|
+
progressToken?: string | number | undefined;
|
|
14
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
15
|
+
taskId: string;
|
|
16
|
+
} | undefined;
|
|
17
|
+
} | undefined;
|
|
18
|
+
} | undefined;
|
|
19
|
+
}, {
|
|
20
|
+
method: string;
|
|
21
|
+
params?: {
|
|
22
|
+
[x: string]: unknown;
|
|
23
|
+
_meta?: {
|
|
24
|
+
[x: string]: unknown;
|
|
25
|
+
progressToken?: string | number | undefined;
|
|
26
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
27
|
+
taskId: string;
|
|
28
|
+
} | undefined;
|
|
29
|
+
} | undefined;
|
|
30
|
+
} | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
[x: string]: unknown;
|
|
33
|
+
_meta?: {
|
|
34
|
+
[x: string]: unknown;
|
|
35
|
+
progressToken?: string | number | undefined;
|
|
36
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
37
|
+
taskId: string;
|
|
38
|
+
} | undefined;
|
|
39
|
+
} | undefined;
|
|
40
|
+
}>;
|
|
41
|
+
export declare function createSandboxServer(): import("@modelcontextprotocol/sdk/server").Server<{
|
|
42
|
+
method: string;
|
|
43
|
+
params?: {
|
|
44
|
+
[x: string]: unknown;
|
|
45
|
+
_meta?: {
|
|
46
|
+
[x: string]: unknown;
|
|
47
|
+
progressToken?: string | number | undefined;
|
|
48
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
49
|
+
taskId: string;
|
|
50
|
+
} | undefined;
|
|
51
|
+
} | undefined;
|
|
52
|
+
} | undefined;
|
|
53
|
+
}, {
|
|
54
|
+
method: string;
|
|
55
|
+
params?: {
|
|
56
|
+
[x: string]: unknown;
|
|
57
|
+
_meta?: {
|
|
58
|
+
[x: string]: unknown;
|
|
59
|
+
progressToken?: string | number | undefined;
|
|
60
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
61
|
+
taskId: string;
|
|
62
|
+
} | undefined;
|
|
63
|
+
} | undefined;
|
|
64
|
+
} | undefined;
|
|
65
|
+
}, {
|
|
66
|
+
[x: string]: unknown;
|
|
67
|
+
_meta?: {
|
|
68
|
+
[x: string]: unknown;
|
|
69
|
+
progressToken?: string | number | undefined;
|
|
70
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
71
|
+
taskId: string;
|
|
72
|
+
} | undefined;
|
|
73
|
+
} | undefined;
|
|
74
|
+
}>;
|
package/dist/index.js
CHANGED
|
@@ -14,51 +14,70 @@ import { checkForUpdate } from "./utils/update-check.js";
|
|
|
14
14
|
import { createRequire } from "node:module";
|
|
15
15
|
const require = createRequire(import.meta.url);
|
|
16
16
|
const pkg = require("../package.json");
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
const INSTRUCTIONS = [
|
|
18
|
+
"Listing Bureau provides Amazon organic ranking services: SFB (Search Find Buy), ATC (Add to Cart), and PGV (page views).",
|
|
19
|
+
"SFB drives purchases that directly boost organic ranking. ATC and PGV support the funnel but alone rarely move ranking unless the keyword is very uncompetitive.",
|
|
20
|
+
"When a user schedules only ATC/PGV with no SFB, note that these are typically paired with SFB to maintain a healthy conversion ratio.",
|
|
21
|
+
"",
|
|
22
|
+
"When advising on service volumes, aim for a natural Amazon funnel with realistic conversion rates (10-15%). These are starting points — adjust based on the user's product, price point, and keyword competitiveness:",
|
|
23
|
+
"Default ratio per SFB: ~2 ATC, ~8-10 PGV.",
|
|
24
|
+
"Cheaper/high-intent keywords (e.g. branded): ~1-1.5 ATC, ~5-7 PGV per SFB.",
|
|
25
|
+
"Expensive/competitive keywords: ~2-3 ATC, ~10-15 PGV per SFB to reflect more browsing.",
|
|
26
|
+
"Avoid SFB-only schedules with near-100% conversion. Keep ratios consistent per keyword so traffic looks like natural shopper behavior.",
|
|
27
|
+
"",
|
|
28
|
+
"When the user asks about something outside current capabilities (other marketplaces, unsupported features), offer to submit their input as feedback via lb_feedback_submit.",
|
|
29
|
+
"",
|
|
30
|
+
"SFB units are real Amazon purchases of the user's product. The retail price in the SFB cost is not a net expense — the seller receives it back as normal Amazon sale proceeds. The actual out-of-pocket cost per SFB is the service fee plus the 11% tax/transfer overhead on the retail price.",
|
|
31
|
+
"",
|
|
32
|
+
"CAMPAIGN METHODOLOGY:",
|
|
33
|
+
"For guided campaign workflows (product assessment, competition analysis, strategy recommendation, cost/ROI, execution, monitoring), use the amazon-product-ranking skill.",
|
|
34
|
+
"Skill: https://github.com/listingbureau/listingbureau-mcp/tree/main/skills/amazon-product-ranking",
|
|
35
|
+
"The skill covers: entry point detection (full flow / quick-start / cost-only), funnel profile selection, ramp schedules, campaign types (new launch / re-ranking / keyword expansion), and troubleshooting.",
|
|
36
|
+
"Without the skill, use the funnel ratios above and the lb_* tools directly.",
|
|
37
|
+
].join("\n");
|
|
38
|
+
function buildServer(apiKey, baseUrl) {
|
|
39
|
+
const client = new LBClient(apiKey, baseUrl);
|
|
40
|
+
const server = new McpServer({ name: "listingbureau", version: pkg.version }, { instructions: INSTRUCTIONS });
|
|
41
|
+
registerAccountTools(server, client);
|
|
42
|
+
registerWalletTools(server, client);
|
|
43
|
+
registerProjectsTools(server, client);
|
|
44
|
+
registerScheduleTools(server, client);
|
|
45
|
+
registerOrdersTools(server, client);
|
|
46
|
+
registerFeedbackTools(server, client);
|
|
47
|
+
registerCostTools(server, client);
|
|
48
|
+
return server;
|
|
49
|
+
}
|
|
50
|
+
// Smithery SDK exports
|
|
51
|
+
export default function createServer(args) {
|
|
52
|
+
const apiKey = args.config?.lbApiKey || args.env?.LB_API_KEY || "";
|
|
53
|
+
let baseUrl = "https://listingbureau.com";
|
|
54
|
+
if (args.env?.LB_BASE_URL) {
|
|
55
|
+
baseUrl = validateBaseUrl(args.env.LB_BASE_URL);
|
|
22
56
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
57
|
+
return buildServer(apiKey, baseUrl).server;
|
|
58
|
+
}
|
|
59
|
+
export function createSandboxServer() {
|
|
60
|
+
return createServer({ config: { lbApiKey: "" }, env: {} });
|
|
61
|
+
}
|
|
62
|
+
// Direct stdio execution (npx listingbureau-mcp)
|
|
63
|
+
async function main() {
|
|
64
|
+
const apiKey = process.env.LB_API_KEY ?? "";
|
|
65
|
+
let baseUrl = "https://listingbureau.com";
|
|
66
|
+
if (process.env.LB_BASE_URL) {
|
|
67
|
+
try {
|
|
68
|
+
baseUrl = validateBaseUrl(process.env.LB_BASE_URL);
|
|
69
|
+
}
|
|
70
|
+
catch (e) {
|
|
71
|
+
console.error(e.message);
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
26
74
|
}
|
|
75
|
+
const server = buildServer(apiKey, baseUrl);
|
|
76
|
+
const transport = new StdioServerTransport();
|
|
77
|
+
await server.connect(transport);
|
|
78
|
+
checkForUpdate(pkg.version).catch(() => { });
|
|
27
79
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
version: pkg.version,
|
|
32
|
-
}, {
|
|
33
|
-
instructions: [
|
|
34
|
-
"Listing Bureau provides Amazon organic ranking services: SFB (Search Find Buy), ATC (Add to Cart), and PGV (page views).",
|
|
35
|
-
"SFB drives purchases that directly boost organic ranking. ATC and PGV support the funnel but alone rarely move ranking unless the keyword is very uncompetitive.",
|
|
36
|
-
"When a user schedules only ATC/PGV with no SFB, note that these are typically paired with SFB to maintain a healthy conversion ratio.",
|
|
37
|
-
"",
|
|
38
|
-
"When advising on service volumes, aim for a natural Amazon funnel with realistic conversion rates (10-15%). These are starting points — adjust based on the user's product, price point, and keyword competitiveness:",
|
|
39
|
-
"Default ratio per SFB: ~2 ATC, ~8-10 PGV.",
|
|
40
|
-
"Cheaper/high-intent keywords (e.g. branded): ~1-1.5 ATC, ~5-7 PGV per SFB.",
|
|
41
|
-
"Expensive/competitive keywords: ~2-3 ATC, ~10-15 PGV per SFB to reflect more browsing.",
|
|
42
|
-
"Avoid SFB-only schedules with near-100% conversion. Keep ratios consistent per keyword so traffic looks like natural shopper behavior.",
|
|
43
|
-
"",
|
|
44
|
-
"When the user asks about something outside current capabilities (other marketplaces, unsupported features), offer to submit their input as feedback via lb_feedback_submit.",
|
|
45
|
-
"",
|
|
46
|
-
"SFB units are real Amazon purchases of the user's product. The retail price in the SFB cost is not a net expense — the seller receives it back as normal Amazon sale proceeds. The actual out-of-pocket cost per SFB is the service fee plus the 11% tax/transfer overhead on the retail price.",
|
|
47
|
-
"",
|
|
48
|
-
"CAMPAIGN METHODOLOGY:",
|
|
49
|
-
"For guided campaign workflows (product assessment, competition analysis, strategy recommendation, cost/ROI, execution, monitoring), use the amazon-product-ranking skill.",
|
|
50
|
-
"Skill: https://github.com/listingbureau/listingbureau-mcp/tree/main/skills/amazon-product-ranking",
|
|
51
|
-
"The skill covers: entry point detection (full flow / quick-start / cost-only), funnel profile selection, ramp schedules, campaign types (new launch / re-ranking / keyword expansion), and troubleshooting.",
|
|
52
|
-
"Without the skill, use the funnel ratios above and the lb_* tools directly.",
|
|
53
|
-
].join("\n"),
|
|
80
|
+
main().catch((err) => {
|
|
81
|
+
console.error(err);
|
|
82
|
+
process.exit(1);
|
|
54
83
|
});
|
|
55
|
-
registerAccountTools(server, client);
|
|
56
|
-
registerWalletTools(server, client);
|
|
57
|
-
registerProjectsTools(server, client);
|
|
58
|
-
registerScheduleTools(server, client);
|
|
59
|
-
registerOrdersTools(server, client);
|
|
60
|
-
registerFeedbackTools(server, client);
|
|
61
|
-
registerCostTools(server, client);
|
|
62
|
-
const transport = new StdioServerTransport();
|
|
63
|
-
await server.connect(transport);
|
|
64
|
-
checkForUpdate(pkg.version).catch(() => { });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "listingbureau-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"mcpName": "io.github.listingbureau/listingbureau-mcp",
|
|
5
5
|
"description": "Amazon organic ranking MCP server. Run ranking campaigns, track keyword positions, and monitor rank movement from any AI assistant.",
|
|
6
6
|
"type": "module",
|