cobroya 1.0.0 → 1.0.1
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/mcp-server.d.ts +2 -1
- package/dist/mcp-server.js +90 -84
- package/dist/mcp-server.js.map +1 -1
- package/package.json +2 -1
package/dist/mcp-server.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
export declare function createMcpServer(accessToken: string): McpServer;
|
package/dist/mcp-server.js
CHANGED
|
@@ -1,95 +1,101 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createMcpServer = createMcpServer;
|
|
3
4
|
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
4
5
|
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
5
6
|
const zod_1 = require("zod");
|
|
6
7
|
const index_js_1 = require("./index.js");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
function createMcpServer(accessToken) {
|
|
9
|
+
const { tools } = (0, index_js_1.createMercadoPagoTools)(accessToken);
|
|
10
|
+
const server = new mcp_js_1.McpServer({
|
|
11
|
+
name: "cobroya",
|
|
12
|
+
version: "1.0.0",
|
|
13
|
+
});
|
|
14
|
+
server.tool("create_payment_preference", "Creates a Mercado Pago checkout payment preference (payment link). Returns init_point URL for redirecting buyers.", {
|
|
15
|
+
title: zod_1.z.string(),
|
|
16
|
+
quantity: zod_1.z.number(),
|
|
17
|
+
currency: zod_1.z.string(),
|
|
18
|
+
unit_price: zod_1.z.number(),
|
|
19
|
+
back_urls: zod_1.z.object({
|
|
20
|
+
success: zod_1.z.string().optional(),
|
|
21
|
+
failure: zod_1.z.string().optional(),
|
|
22
|
+
pending: zod_1.z.string().optional(),
|
|
23
|
+
}).optional(),
|
|
24
|
+
notification_url: zod_1.z.string().optional(),
|
|
25
|
+
}, async (params) => {
|
|
26
|
+
try {
|
|
27
|
+
const result = await tools.create_payment_preference(params);
|
|
28
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
32
|
+
return { content: [{ type: "text", text: message }], isError: true };
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
server.tool("get_payment", "Retrieve a payment by its ID. Returns full payment details including status, amount, payer info.", {
|
|
36
|
+
payment_id: zod_1.z.string(),
|
|
37
|
+
}, async (params) => {
|
|
38
|
+
try {
|
|
39
|
+
const result = await tools.get_payment(params);
|
|
40
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
44
|
+
return { content: [{ type: "text", text: message }], isError: true };
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
server.tool("create_refund", "Refund a payment fully or partially. Omit amount for full refund.", {
|
|
48
|
+
payment_id: zod_1.z.string(),
|
|
49
|
+
amount: zod_1.z.number().optional(),
|
|
50
|
+
}, async (params) => {
|
|
51
|
+
try {
|
|
52
|
+
const result = await tools.create_refund(params);
|
|
53
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
57
|
+
return { content: [{ type: "text", text: message }], isError: true };
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
server.tool("search_payments", "Search recent payments for the authenticated merchant. Supports filtering by status.", {
|
|
61
|
+
status: zod_1.z.string().optional(),
|
|
62
|
+
limit: zod_1.z.number().optional(),
|
|
63
|
+
offset: zod_1.z.number().optional(),
|
|
64
|
+
}, async (params) => {
|
|
65
|
+
try {
|
|
66
|
+
const result = await tools.search_payments(params);
|
|
67
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
71
|
+
return { content: [{ type: "text", text: message }], isError: true };
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
server.tool("get_merchant_info", "Retrieve the authenticated merchant's user profile including ID, nickname, and site.", {}, async () => {
|
|
75
|
+
try {
|
|
76
|
+
const result = await tools.get_merchant_info();
|
|
77
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
81
|
+
return { content: [{ type: "text", text: message }], isError: true };
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
return server;
|
|
11
85
|
}
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
quantity: zod_1.z.number(),
|
|
20
|
-
currency: zod_1.z.string(),
|
|
21
|
-
unit_price: zod_1.z.number(),
|
|
22
|
-
back_urls: zod_1.z.object({
|
|
23
|
-
success: zod_1.z.string().optional(),
|
|
24
|
-
failure: zod_1.z.string().optional(),
|
|
25
|
-
pending: zod_1.z.string().optional(),
|
|
26
|
-
}).optional(),
|
|
27
|
-
notification_url: zod_1.z.string().optional(),
|
|
28
|
-
}, async (params) => {
|
|
29
|
-
try {
|
|
30
|
-
const result = await tools.create_payment_preference(params);
|
|
31
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
86
|
+
// CLI entry point
|
|
87
|
+
const isMain = process.argv[1]?.includes("mcp-server");
|
|
88
|
+
if (isMain) {
|
|
89
|
+
const token = process.env.MERCADO_PAGO_ACCESS_TOKEN;
|
|
90
|
+
if (!token) {
|
|
91
|
+
console.error("MERCADO_PAGO_ACCESS_TOKEN environment variable is required");
|
|
92
|
+
process.exit(1);
|
|
32
93
|
}
|
|
33
|
-
|
|
34
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
35
|
-
return { content: [{ type: "text", text: message }], isError: true };
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
server.tool("get_payment", "Retrieve a payment by its ID. Returns full payment details including status, amount, payer info.", {
|
|
39
|
-
payment_id: zod_1.z.string(),
|
|
40
|
-
}, async (params) => {
|
|
41
|
-
try {
|
|
42
|
-
const result = await tools.get_payment(params);
|
|
43
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
47
|
-
return { content: [{ type: "text", text: message }], isError: true };
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
server.tool("create_refund", "Refund a payment fully or partially. Omit amount for full refund.", {
|
|
51
|
-
payment_id: zod_1.z.string(),
|
|
52
|
-
amount: zod_1.z.number().optional(),
|
|
53
|
-
}, async (params) => {
|
|
54
|
-
try {
|
|
55
|
-
const result = await tools.create_refund(params);
|
|
56
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
60
|
-
return { content: [{ type: "text", text: message }], isError: true };
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
server.tool("search_payments", "Search recent payments for the authenticated merchant. Supports filtering by status.", {
|
|
64
|
-
status: zod_1.z.string().optional(),
|
|
65
|
-
limit: zod_1.z.number().optional(),
|
|
66
|
-
offset: zod_1.z.number().optional(),
|
|
67
|
-
}, async (params) => {
|
|
68
|
-
try {
|
|
69
|
-
const result = await tools.search_payments(params);
|
|
70
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
74
|
-
return { content: [{ type: "text", text: message }], isError: true };
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
server.tool("get_merchant_info", "Retrieve the authenticated merchant's user profile including ID, nickname, and site.", {}, async () => {
|
|
78
|
-
try {
|
|
79
|
-
const result = await tools.get_merchant_info();
|
|
80
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
81
|
-
}
|
|
82
|
-
catch (error) {
|
|
83
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
84
|
-
return { content: [{ type: "text", text: message }], isError: true };
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
async function main() {
|
|
94
|
+
const server = createMcpServer(token);
|
|
88
95
|
const transport = new stdio_js_1.StdioServerTransport();
|
|
89
|
-
|
|
96
|
+
server.connect(transport).catch((error) => {
|
|
97
|
+
console.error("Fatal error:", error);
|
|
98
|
+
process.exit(1);
|
|
99
|
+
});
|
|
90
100
|
}
|
|
91
|
-
main().catch((error) => {
|
|
92
|
-
console.error("Fatal error:", error);
|
|
93
|
-
process.exit(1);
|
|
94
|
-
});
|
|
95
101
|
//# sourceMappingURL=mcp-server.js.map
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cobroya",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"mcpName": "io.github.dan1d/cobroya",
|
|
4
5
|
"description": "Mercado Pago payment links from Telegram, WhatsApp, and AI agents. Cobra en 10 segundos.",
|
|
5
6
|
"main": "dist/index.js",
|
|
6
7
|
"types": "dist/index.d.ts",
|