@yoryoboy/bi-mcp 1.4.0 → 1.5.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.
Files changed (71) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/index.js +244 -0
  3. package/dist/index.js.map +2 -2
  4. package/dist/mcp-use.json +2 -2
  5. package/dist/src/config/mercadolibre-profile-store.js +106 -0
  6. package/dist/src/config/mercadolibre-profile-store.js.map +7 -0
  7. package/dist/src/config/mercadolibre.js +153 -0
  8. package/dist/src/config/mercadolibre.js.map +7 -0
  9. package/dist/src/services/mercadolibre/mercadolibre-api.js +204 -0
  10. package/dist/src/services/mercadolibre/mercadolibre-api.js.map +7 -0
  11. package/dist/src/services/mercadolibre/mercadolibre-items.js +156 -0
  12. package/dist/src/services/mercadolibre/mercadolibre-items.js.map +7 -0
  13. package/dist/src/services/mercadolibre/mercadolibre-orders.js +65 -0
  14. package/dist/src/services/mercadolibre/mercadolibre-orders.js.map +7 -0
  15. package/dist/src/services/mercadolibre/mercadolibre-questions.js +28 -0
  16. package/dist/src/services/mercadolibre/mercadolibre-questions.js.map +7 -0
  17. package/dist/src/tools/index.js +1 -0
  18. package/dist/src/tools/index.js.map +2 -2
  19. package/dist/src/tools/mercadolibre/answer-question.js +37 -0
  20. package/dist/src/tools/mercadolibre/answer-question.js.map +7 -0
  21. package/dist/src/tools/mercadolibre/create-item.js +82 -0
  22. package/dist/src/tools/mercadolibre/create-item.js.map +7 -0
  23. package/dist/src/tools/mercadolibre/estimate-listing-fee.js +60 -0
  24. package/dist/src/tools/mercadolibre/estimate-listing-fee.js.map +7 -0
  25. package/dist/src/tools/mercadolibre/get-account-context.js +38 -0
  26. package/dist/src/tools/mercadolibre/get-account-context.js.map +7 -0
  27. package/dist/src/tools/mercadolibre/get-category-requirements.js +57 -0
  28. package/dist/src/tools/mercadolibre/get-category-requirements.js.map +7 -0
  29. package/dist/src/tools/mercadolibre/get-item-details.js +97 -0
  30. package/dist/src/tools/mercadolibre/get-item-details.js.map +7 -0
  31. package/dist/src/tools/mercadolibre/get-item-visits.js +92 -0
  32. package/dist/src/tools/mercadolibre/get-item-visits.js.map +7 -0
  33. package/dist/src/tools/mercadolibre/get-listing-quality.js +48 -0
  34. package/dist/src/tools/mercadolibre/get-listing-quality.js.map +7 -0
  35. package/dist/src/tools/mercadolibre/get-order-details.js +115 -0
  36. package/dist/src/tools/mercadolibre/get-order-details.js.map +7 -0
  37. package/dist/src/tools/mercadolibre/get-orders-summary.js +105 -0
  38. package/dist/src/tools/mercadolibre/get-orders-summary.js.map +7 -0
  39. package/dist/src/tools/mercadolibre/get-sales-by-item.js +97 -0
  40. package/dist/src/tools/mercadolibre/get-sales-by-item.js.map +7 -0
  41. package/dist/src/tools/mercadolibre/get-sales-trend.js +83 -0
  42. package/dist/src/tools/mercadolibre/get-sales-trend.js.map +7 -0
  43. package/dist/src/tools/mercadolibre/get-shipping-summary.js +115 -0
  44. package/dist/src/tools/mercadolibre/get-shipping-summary.js.map +7 -0
  45. package/dist/src/tools/mercadolibre/get-store-performance.js +102 -0
  46. package/dist/src/tools/mercadolibre/get-store-performance.js.map +7 -0
  47. package/dist/src/tools/mercadolibre/helpers.js +43 -0
  48. package/dist/src/tools/mercadolibre/helpers.js.map +7 -0
  49. package/dist/src/tools/mercadolibre/index.js +24 -0
  50. package/dist/src/tools/mercadolibre/index.js.map +7 -0
  51. package/dist/src/tools/mercadolibre/pause-or-reactivate-item.js +44 -0
  52. package/dist/src/tools/mercadolibre/pause-or-reactivate-item.js.map +7 -0
  53. package/dist/src/tools/mercadolibre/predict-category.js +49 -0
  54. package/dist/src/tools/mercadolibre/predict-category.js.map +7 -0
  55. package/dist/src/tools/mercadolibre/profile-resolution.js +56 -0
  56. package/dist/src/tools/mercadolibre/profile-resolution.js.map +7 -0
  57. package/dist/src/tools/mercadolibre/search-items.js +91 -0
  58. package/dist/src/tools/mercadolibre/search-items.js.map +7 -0
  59. package/dist/src/tools/mercadolibre/search-questions.js +71 -0
  60. package/dist/src/tools/mercadolibre/search-questions.js.map +7 -0
  61. package/dist/src/tools/mercadolibre/update-item-basic-fields.js +71 -0
  62. package/dist/src/tools/mercadolibre/update-item-basic-fields.js.map +7 -0
  63. package/dist/src/tools/mercadolibre/update-item-description.js +49 -0
  64. package/dist/src/tools/mercadolibre/update-item-description.js.map +7 -0
  65. package/dist/src/tools/mercadolibre/update-item-pictures.js +58 -0
  66. package/dist/src/tools/mercadolibre/update-item-pictures.js.map +7 -0
  67. package/dist/src/tools/mercadolibre/validate-connection.js +44 -0
  68. package/dist/src/tools/mercadolibre/validate-connection.js.map +7 -0
  69. package/dist/src/tools/mercadolibre/write-helpers.js +46 -0
  70. package/dist/src/tools/mercadolibre/write-helpers.js.map +7 -0
  71. package/package.json +1 -1
@@ -0,0 +1,156 @@
1
+ import {
2
+ getMercadoLibreApiContext,
3
+ parseMercadoLibreMultiget,
4
+ runMercadoLibreBatch
5
+ } from "./mercadolibre-api.js";
6
+ async function searchMercadoLibreItems(profileId, params) {
7
+ const { api } = await getMercadoLibreApiContext(profileId);
8
+ const response = await api.get(
9
+ `/users/${params.sellerId}/items/search`,
10
+ {
11
+ params: {
12
+ status: params.status,
13
+ category: params.category,
14
+ listing_type_id: params.listingTypeId,
15
+ orders: params.orders,
16
+ limit: params.limit ?? 20,
17
+ offset: params.offset ?? 0
18
+ }
19
+ }
20
+ );
21
+ return response.data;
22
+ }
23
+ async function getMercadoLibreItem(profileId, itemId) {
24
+ const { api } = await getMercadoLibreApiContext(profileId);
25
+ const response = await api.get(`/items/${itemId}`);
26
+ return response.data;
27
+ }
28
+ async function getMercadoLibreItemDetailsBatch(profileId, itemIds, attributes) {
29
+ const { api } = await getMercadoLibreApiContext(profileId);
30
+ const response = await api.get("/items", {
31
+ params: {
32
+ ids: itemIds.join(","),
33
+ attributes: attributes?.join(",")
34
+ }
35
+ });
36
+ return parseMercadoLibreMultiget(response);
37
+ }
38
+ async function getMercadoLibreItemDetailsWithFallbackBatch(profileId, itemIds, options = {}) {
39
+ const { api } = await getMercadoLibreApiContext(profileId);
40
+ return runMercadoLibreBatch(itemIds, (itemId) => getItem(api, itemId), options);
41
+ }
42
+ async function getItem(api, itemId) {
43
+ const response = await api.get(`/items/${itemId}`);
44
+ return response.data;
45
+ }
46
+ async function createMercadoLibreItem(profileId, payload) {
47
+ const { api } = await getMercadoLibreApiContext(profileId);
48
+ const response = await api.post("/items", payload);
49
+ return response.data;
50
+ }
51
+ async function updateMercadoLibreItem(profileId, itemId, payload) {
52
+ const { api } = await getMercadoLibreApiContext(profileId);
53
+ const response = await api.put(`/items/${itemId}`, payload);
54
+ return response.data;
55
+ }
56
+ async function getMercadoLibreItemDescription(profileId, itemId) {
57
+ const { api } = await getMercadoLibreApiContext(profileId);
58
+ const response = await api.get(`/items/${itemId}/description`);
59
+ return response.data;
60
+ }
61
+ async function createMercadoLibreItemDescription(profileId, itemId, plainText) {
62
+ const { api } = await getMercadoLibreApiContext(profileId);
63
+ const response = await api.post(`/items/${itemId}/description`, {
64
+ plain_text: plainText
65
+ });
66
+ return response.data;
67
+ }
68
+ async function replaceMercadoLibreItemDescription(profileId, itemId, plainText) {
69
+ const { api } = await getMercadoLibreApiContext(profileId);
70
+ const response = await api.put(
71
+ `/items/${itemId}/description?api_version=2`,
72
+ {
73
+ plain_text: plainText
74
+ }
75
+ );
76
+ return response.data;
77
+ }
78
+ async function addMercadoLibreItemPicture(profileId, itemId, source) {
79
+ const { api } = await getMercadoLibreApiContext(profileId);
80
+ const response = await api.post(`/items/${itemId}/pictures`, {
81
+ source
82
+ });
83
+ return response.data;
84
+ }
85
+ async function searchMercadoLibreDomainDiscovery(profileId, query, limit, siteId = "MLA") {
86
+ const { api } = await getMercadoLibreApiContext(profileId);
87
+ const response = await api.get(`/sites/${siteId}/domain_discovery/search`, {
88
+ params: { q: query, limit }
89
+ });
90
+ return response.data;
91
+ }
92
+ async function getMercadoLibreCategoryAttributes(profileId, categoryId) {
93
+ const { api } = await getMercadoLibreApiContext(profileId);
94
+ const response = await api.get(`/categories/${categoryId}/attributes`);
95
+ return response.data;
96
+ }
97
+ async function getMercadoLibreCategoryShippingPreferences(profileId, categoryId) {
98
+ const { api } = await getMercadoLibreApiContext(profileId);
99
+ const response = await api.get(
100
+ `/categories/${categoryId}/shipping_preferences`
101
+ );
102
+ return response.data;
103
+ }
104
+ async function estimateMercadoLibreListingPrice(profileId, params) {
105
+ const { api } = await getMercadoLibreApiContext(profileId);
106
+ const response = await api.get("/sites/MLA/listing_prices", {
107
+ params
108
+ });
109
+ return response.data;
110
+ }
111
+ async function getMercadoLibreUserItemsVisits(profileId, sellerId, dateFrom, dateTo) {
112
+ const { api } = await getMercadoLibreApiContext(profileId);
113
+ const response = await api.get(`/users/${sellerId}/items_visits`, {
114
+ params: {
115
+ date_from: dateFrom,
116
+ date_to: dateTo
117
+ }
118
+ });
119
+ return response.data;
120
+ }
121
+ async function getMercadoLibreItemVisitsWindow(profileId, itemId, last, unit = "day", ending) {
122
+ const { api } = await getMercadoLibreApiContext(profileId);
123
+ const response = await api.get(`/items/${itemId}/visits/time_window`, {
124
+ params: {
125
+ last,
126
+ unit,
127
+ ending
128
+ }
129
+ });
130
+ return response.data;
131
+ }
132
+ async function getMercadoLibreItemPerformance(profileId, itemId) {
133
+ const { api } = await getMercadoLibreApiContext(profileId);
134
+ const response = await api.get(`/item/${itemId}/performance`);
135
+ return response.data;
136
+ }
137
+ export {
138
+ addMercadoLibreItemPicture,
139
+ createMercadoLibreItem,
140
+ createMercadoLibreItemDescription,
141
+ estimateMercadoLibreListingPrice,
142
+ getMercadoLibreCategoryAttributes,
143
+ getMercadoLibreCategoryShippingPreferences,
144
+ getMercadoLibreItem,
145
+ getMercadoLibreItemDescription,
146
+ getMercadoLibreItemDetailsBatch,
147
+ getMercadoLibreItemDetailsWithFallbackBatch,
148
+ getMercadoLibreItemPerformance,
149
+ getMercadoLibreItemVisitsWindow,
150
+ getMercadoLibreUserItemsVisits,
151
+ replaceMercadoLibreItemDescription,
152
+ searchMercadoLibreDomainDiscovery,
153
+ searchMercadoLibreItems,
154
+ updateMercadoLibreItem
155
+ };
156
+ //# sourceMappingURL=mercadolibre-items.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/services/mercadolibre/mercadolibre-items.ts"],
4
+ "sourcesContent": ["import type { AxiosInstance } from \"axios\";\n\nimport {\n getMercadoLibreApiContext,\n parseMercadoLibreMultiget,\n runMercadoLibreBatch,\n type MercadoLibreBatchFetchOptions,\n} from \"./mercadolibre-api.js\";\n\nexport async function searchMercadoLibreItems(\n profileId: string,\n params: {\n sellerId: string;\n status?: string;\n category?: string;\n listingTypeId?: string;\n orders?: string;\n limit?: number;\n offset?: number;\n }\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Record<string, unknown>>(\n `/users/${params.sellerId}/items/search`,\n {\n params: {\n status: params.status,\n category: params.category,\n listing_type_id: params.listingTypeId,\n orders: params.orders,\n limit: params.limit ?? 20,\n offset: params.offset ?? 0,\n },\n }\n );\n return response.data;\n}\n\nexport async function getMercadoLibreItem(profileId: string, itemId: string) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Record<string, unknown>>(`/items/${itemId}`);\n return response.data;\n}\n\nexport async function getMercadoLibreItemDetailsBatch(\n profileId: string,\n itemIds: string[],\n attributes?: string[]\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Array<{ code?: number; body?: Record<string, unknown> }>>(\"/items\", {\n params: {\n ids: itemIds.join(\",\"),\n attributes: attributes?.join(\",\"),\n },\n });\n return parseMercadoLibreMultiget(response);\n}\n\nexport async function getMercadoLibreItemDetailsWithFallbackBatch(\n profileId: string,\n itemIds: string[],\n options: MercadoLibreBatchFetchOptions = {}\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n return runMercadoLibreBatch(itemIds, (itemId) => getItem(api, itemId), options);\n}\n\nasync function getItem(api: AxiosInstance, itemId: string): Promise<Record<string, unknown>> {\n const response = await api.get<Record<string, unknown>>(`/items/${itemId}`);\n return response.data;\n}\n\nexport async function createMercadoLibreItem(profileId: string, payload: Record<string, unknown>) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.post<Record<string, unknown>>(\"/items\", payload);\n return response.data;\n}\n\nexport async function updateMercadoLibreItem(\n profileId: string,\n itemId: string,\n payload: Record<string, unknown>\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.put<Record<string, unknown>>(`/items/${itemId}`, payload);\n return response.data;\n}\n\nexport async function getMercadoLibreItemDescription(profileId: string, itemId: string) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Record<string, unknown>>(`/items/${itemId}/description`);\n return response.data;\n}\n\nexport async function createMercadoLibreItemDescription(\n profileId: string,\n itemId: string,\n plainText: string\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.post<Record<string, unknown>>(`/items/${itemId}/description`, {\n plain_text: plainText,\n });\n return response.data;\n}\n\nexport async function replaceMercadoLibreItemDescription(\n profileId: string,\n itemId: string,\n plainText: string\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.put<Record<string, unknown>>(\n `/items/${itemId}/description?api_version=2`,\n {\n plain_text: plainText,\n }\n );\n return response.data;\n}\n\nexport async function addMercadoLibreItemPicture(\n profileId: string,\n itemId: string,\n source: string\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.post<Record<string, unknown>>(`/items/${itemId}/pictures`, {\n source,\n });\n return response.data;\n}\n\nexport async function searchMercadoLibreDomainDiscovery(\n profileId: string,\n query: string,\n limit: number,\n siteId = \"MLA\"\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Array<Record<string, unknown>>>(`/sites/${siteId}/domain_discovery/search`, {\n params: { q: query, limit },\n });\n return response.data;\n}\n\nexport async function getMercadoLibreCategoryAttributes(profileId: string, categoryId: string) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Array<Record<string, unknown>>>(`/categories/${categoryId}/attributes`);\n return response.data;\n}\n\nexport async function getMercadoLibreCategoryShippingPreferences(\n profileId: string,\n categoryId: string\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Record<string, unknown>>(\n `/categories/${categoryId}/shipping_preferences`\n );\n return response.data;\n}\n\nexport async function estimateMercadoLibreListingPrice(\n profileId: string,\n params: Record<string, string | number | boolean | undefined>\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Array<Record<string, unknown>>>(\"/sites/MLA/listing_prices\", {\n params,\n });\n return response.data;\n}\n\nexport async function getMercadoLibreUserItemsVisits(\n profileId: string,\n sellerId: string,\n dateFrom: string,\n dateTo: string\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Record<string, unknown>>(`/users/${sellerId}/items_visits`, {\n params: {\n date_from: dateFrom,\n date_to: dateTo,\n },\n });\n return response.data;\n}\n\nexport async function getMercadoLibreItemVisitsWindow(\n profileId: string,\n itemId: string,\n last: number,\n unit = \"day\",\n ending?: string\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Record<string, unknown>>(`/items/${itemId}/visits/time_window`, {\n params: {\n last,\n unit,\n ending,\n },\n });\n return response.data;\n}\n\nexport async function getMercadoLibreItemPerformance(profileId: string, itemId: string) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Record<string, unknown>>(`/item/${itemId}/performance`);\n return response.data;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,65 @@
1
+ import {
2
+ getMercadoLibreApiContext,
3
+ runMercadoLibreBatch
4
+ } from "./mercadolibre-api.js";
5
+ function orderSearchParams(params) {
6
+ return {
7
+ seller: params.seller,
8
+ "order.date_created.from": `${params.from}T00:00:00.000-00:00`,
9
+ "order.date_created.to": `${params.to}T23:59:59.999-00:00`,
10
+ order_status: params.status,
11
+ q: params.q,
12
+ sort: params.sort,
13
+ offset: params.offset ?? 0,
14
+ limit: params.limit ?? 50
15
+ };
16
+ }
17
+ async function fetchOrder(api, orderId) {
18
+ const response = await api.get(`/orders/${orderId}`);
19
+ return response.data;
20
+ }
21
+ async function searchMercadoLibreOrders(profileId, params) {
22
+ const { api, sellerId } = await getMercadoLibreApiContext(profileId);
23
+ const response = await api.get("/orders/search", {
24
+ params: orderSearchParams({ ...params, seller: params.seller || sellerId })
25
+ });
26
+ return response.data;
27
+ }
28
+ async function getMercadoLibreOrder(profileId, orderId) {
29
+ const { api } = await getMercadoLibreApiContext(profileId);
30
+ return fetchOrder(api, orderId);
31
+ }
32
+ async function getMercadoLibreOrderDetailsBatch(profileId, orderIds, options = {}) {
33
+ const { api } = await getMercadoLibreApiContext(profileId);
34
+ return runMercadoLibreBatch(orderIds, (orderId) => fetchOrder(api, orderId), options);
35
+ }
36
+ async function getMercadoLibreOrderShipments(profileId, orderId) {
37
+ const { api } = await getMercadoLibreApiContext(profileId);
38
+ const response = await api.get(`/orders/${orderId}/shipments`);
39
+ return response.data;
40
+ }
41
+ async function getMercadoLibreShipment(profileId, shipmentId) {
42
+ const { api } = await getMercadoLibreApiContext(profileId);
43
+ const response = await api.get(`/shipments/${shipmentId}`);
44
+ return response.data;
45
+ }
46
+ async function getMercadoLibreShipmentItems(profileId, shipmentId) {
47
+ const { api } = await getMercadoLibreApiContext(profileId);
48
+ const response = await api.get(`/shipments/${shipmentId}/items`);
49
+ return response.data;
50
+ }
51
+ async function getMercadoLibreShipmentCosts(profileId, shipmentId) {
52
+ const { api } = await getMercadoLibreApiContext(profileId);
53
+ const response = await api.get(`/shipments/${shipmentId}/costs`);
54
+ return response.data;
55
+ }
56
+ export {
57
+ getMercadoLibreOrder,
58
+ getMercadoLibreOrderDetailsBatch,
59
+ getMercadoLibreOrderShipments,
60
+ getMercadoLibreShipment,
61
+ getMercadoLibreShipmentCosts,
62
+ getMercadoLibreShipmentItems,
63
+ searchMercadoLibreOrders
64
+ };
65
+ //# sourceMappingURL=mercadolibre-orders.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/services/mercadolibre/mercadolibre-orders.ts"],
4
+ "sourcesContent": ["import type { AxiosInstance } from \"axios\";\n\nimport {\n getMercadoLibreApiContext,\n runMercadoLibreBatch,\n type MercadoLibreBatchFetchOptions,\n} from \"./mercadolibre-api.js\";\n\nexport interface MercadoLibreOrdersSearchParams {\n seller: string;\n from: string;\n to: string;\n status?: string;\n q?: string;\n sort?: string;\n offset?: number;\n limit?: number;\n}\n\nfunction orderSearchParams(params: MercadoLibreOrdersSearchParams) {\n return {\n seller: params.seller,\n \"order.date_created.from\": `${params.from}T00:00:00.000-00:00`,\n \"order.date_created.to\": `${params.to}T23:59:59.999-00:00`,\n order_status: params.status,\n q: params.q,\n sort: params.sort,\n offset: params.offset ?? 0,\n limit: params.limit ?? 50,\n };\n}\n\nasync function fetchOrder(api: AxiosInstance, orderId: string): Promise<Record<string, unknown>> {\n const response = await api.get<Record<string, unknown>>(`/orders/${orderId}`);\n return response.data;\n}\n\nexport async function searchMercadoLibreOrders(\n profileId: string,\n params: MercadoLibreOrdersSearchParams\n) {\n const { api, sellerId } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Record<string, unknown>>(\"/orders/search\", {\n params: orderSearchParams({ ...params, seller: params.seller || sellerId }),\n });\n\n return response.data;\n}\n\nexport async function getMercadoLibreOrder(profileId: string, orderId: string) {\n const { api } = await getMercadoLibreApiContext(profileId);\n return fetchOrder(api, orderId);\n}\n\nexport async function getMercadoLibreOrderDetailsBatch(\n profileId: string,\n orderIds: string[],\n options: MercadoLibreBatchFetchOptions = {}\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n return runMercadoLibreBatch(orderIds, (orderId) => fetchOrder(api, orderId), options);\n}\n\nexport async function getMercadoLibreOrderShipments(profileId: string, orderId: string) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Record<string, unknown>>(`/orders/${orderId}/shipments`);\n return response.data;\n}\n\nexport async function getMercadoLibreShipment(profileId: string, shipmentId: string) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Record<string, unknown>>(`/shipments/${shipmentId}`);\n return response.data;\n}\n\nexport async function getMercadoLibreShipmentItems(profileId: string, shipmentId: string) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Record<string, unknown>>(`/shipments/${shipmentId}/items`);\n return response.data;\n}\n\nexport async function getMercadoLibreShipmentCosts(profileId: string, shipmentId: string) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Record<string, unknown>>(`/shipments/${shipmentId}/costs`);\n return response.data;\n}\n"],
5
+ "mappings": "AAEA;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AAaP,SAAS,kBAAkB,QAAwC;AACjE,SAAO;AAAA,IACL,QAAQ,OAAO;AAAA,IACf,2BAA2B,GAAG,OAAO,IAAI;AAAA,IACzC,yBAAyB,GAAG,OAAO,EAAE;AAAA,IACrC,cAAc,OAAO;AAAA,IACrB,GAAG,OAAO;AAAA,IACV,MAAM,OAAO;AAAA,IACb,QAAQ,OAAO,UAAU;AAAA,IACzB,OAAO,OAAO,SAAS;AAAA,EACzB;AACF;AAEA,eAAe,WAAW,KAAoB,SAAmD;AAC/F,QAAM,WAAW,MAAM,IAAI,IAA6B,WAAW,OAAO,EAAE;AAC5E,SAAO,SAAS;AAClB;AAEA,eAAsB,yBACpB,WACA,QACA;AACA,QAAM,EAAE,KAAK,SAAS,IAAI,MAAM,0BAA0B,SAAS;AACnE,QAAM,WAAW,MAAM,IAAI,IAA6B,kBAAkB;AAAA,IACxE,QAAQ,kBAAkB,EAAE,GAAG,QAAQ,QAAQ,OAAO,UAAU,SAAS,CAAC;AAAA,EAC5E,CAAC;AAED,SAAO,SAAS;AAClB;AAEA,eAAsB,qBAAqB,WAAmB,SAAiB;AAC7E,QAAM,EAAE,IAAI,IAAI,MAAM,0BAA0B,SAAS;AACzD,SAAO,WAAW,KAAK,OAAO;AAChC;AAEA,eAAsB,iCACpB,WACA,UACA,UAAyC,CAAC,GAC1C;AACA,QAAM,EAAE,IAAI,IAAI,MAAM,0BAA0B,SAAS;AACzD,SAAO,qBAAqB,UAAU,CAAC,YAAY,WAAW,KAAK,OAAO,GAAG,OAAO;AACtF;AAEA,eAAsB,8BAA8B,WAAmB,SAAiB;AACtF,QAAM,EAAE,IAAI,IAAI,MAAM,0BAA0B,SAAS;AACzD,QAAM,WAAW,MAAM,IAAI,IAA6B,WAAW,OAAO,YAAY;AACtF,SAAO,SAAS;AAClB;AAEA,eAAsB,wBAAwB,WAAmB,YAAoB;AACnF,QAAM,EAAE,IAAI,IAAI,MAAM,0BAA0B,SAAS;AACzD,QAAM,WAAW,MAAM,IAAI,IAA6B,cAAc,UAAU,EAAE;AAClF,SAAO,SAAS;AAClB;AAEA,eAAsB,6BAA6B,WAAmB,YAAoB;AACxF,QAAM,EAAE,IAAI,IAAI,MAAM,0BAA0B,SAAS;AACzD,QAAM,WAAW,MAAM,IAAI,IAA6B,cAAc,UAAU,QAAQ;AACxF,SAAO,SAAS;AAClB;AAEA,eAAsB,6BAA6B,WAAmB,YAAoB;AACxF,QAAM,EAAE,IAAI,IAAI,MAAM,0BAA0B,SAAS;AACzD,QAAM,WAAW,MAAM,IAAI,IAA6B,cAAc,UAAU,QAAQ;AACxF,SAAO,SAAS;AAClB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,28 @@
1
+ import { getMercadoLibreApiContext } from "./mercadolibre-api.js";
2
+ async function searchMercadoLibreQuestions(profileId, params) {
3
+ const { api } = await getMercadoLibreApiContext(profileId);
4
+ const response = await api.get("/questions/search", {
5
+ params: {
6
+ seller_id: params.sellerId,
7
+ api_version: 4,
8
+ item_id: params.itemId,
9
+ status: params.status,
10
+ limit: params.limit ?? 20,
11
+ offset: params.offset ?? 0
12
+ }
13
+ });
14
+ return response.data;
15
+ }
16
+ async function answerMercadoLibreQuestion(profileId, questionId, text) {
17
+ const { api } = await getMercadoLibreApiContext(profileId);
18
+ const response = await api.post("/answers", {
19
+ question_id: questionId,
20
+ text
21
+ });
22
+ return response.data;
23
+ }
24
+ export {
25
+ answerMercadoLibreQuestion,
26
+ searchMercadoLibreQuestions
27
+ };
28
+ //# sourceMappingURL=mercadolibre-questions.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/services/mercadolibre/mercadolibre-questions.ts"],
4
+ "sourcesContent": ["import { getMercadoLibreApiContext } from \"./mercadolibre-api.js\";\n\nexport async function searchMercadoLibreQuestions(\n profileId: string,\n params: {\n sellerId: string;\n itemId?: string;\n status?: string;\n limit?: number;\n offset?: number;\n }\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.get<Record<string, unknown>>(\"/questions/search\", {\n params: {\n seller_id: params.sellerId,\n api_version: 4,\n item_id: params.itemId,\n status: params.status,\n limit: params.limit ?? 20,\n offset: params.offset ?? 0,\n },\n });\n\n return response.data;\n}\n\nexport async function answerMercadoLibreQuestion(\n profileId: string,\n questionId: number,\n text: string\n) {\n const { api } = await getMercadoLibreApiContext(profileId);\n const response = await api.post<Record<string, unknown>>(\"/answers\", {\n question_id: questionId,\n text,\n });\n\n return response.data;\n}\n"],
5
+ "mappings": "AAAA,SAAS,iCAAiC;AAE1C,eAAsB,4BACpB,WACA,QAOA;AACA,QAAM,EAAE,IAAI,IAAI,MAAM,0BAA0B,SAAS;AACzD,QAAM,WAAW,MAAM,IAAI,IAA6B,qBAAqB;AAAA,IAC3E,QAAQ;AAAA,MACN,WAAW,OAAO;AAAA,MAClB,aAAa;AAAA,MACb,SAAS,OAAO;AAAA,MAChB,QAAQ,OAAO;AAAA,MACf,OAAO,OAAO,SAAS;AAAA,MACvB,QAAQ,OAAO,UAAU;AAAA,IAC3B;AAAA,EACF,CAAC;AAED,SAAO,SAAS;AAClB;AAEA,eAAsB,2BACpB,WACA,YACA,MACA;AACA,QAAM,EAAE,IAAI,IAAI,MAAM,0BAA0B,SAAS;AACzD,QAAM,WAAW,MAAM,IAAI,KAA8B,YAAY;AAAA,IACnE,aAAa;AAAA,IACb;AAAA,EACF,CAAC;AAED,SAAO,SAAS;AAClB;",
6
+ "names": []
7
+ }
@@ -4,4 +4,5 @@ export * from "./analytics/index.js";
4
4
  export * from "./google-ads/index.js";
5
5
  export * from "./meta/index.js";
6
6
  export * from "./search-console/index.js";
7
+ export * from "./mercadolibre/index.js";
7
8
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/tools/index.ts"],
4
- "sourcesContent": ["export * from \"./config/index.js\";\nexport * from \"./vtex/index.js\";\nexport * from \"./analytics/index.js\";\nexport * from \"./google-ads/index.js\";\nexport * from \"./meta/index.js\";\nexport * from \"./search-console/index.js\";\n"],
5
- "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
4
+ "sourcesContent": ["export * from \"./config/index.js\";\nexport * from \"./vtex/index.js\";\nexport * from \"./analytics/index.js\";\nexport * from \"./google-ads/index.js\";\nexport * from \"./meta/index.js\";\nexport * from \"./search-console/index.js\";\nexport * from \"./mercadolibre/index.js\";\n"],
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ import { answerMercadoLibreQuestion } from "../../services/mercadolibre/mercadolibre-questions.js";
3
+ import {
4
+ buildMercadoLibreWriteSuccessResponse,
5
+ handleMercadoLibreWriteError,
6
+ mercadolibreProfileIdSchemaField,
7
+ resolveMercadoLibreWriteProfile
8
+ } from "./write-helpers.js";
9
+ const meliAnswerQuestionSchema = z.object({
10
+ profileId: mercadolibreProfileIdSchemaField,
11
+ questionId: z.number().int().positive().describe("MercadoLibre question id."),
12
+ text: z.string().trim().min(1).max(2e3).describe("Answer text to publish.")
13
+ });
14
+ async function meliAnswerQuestionHandler(params) {
15
+ try {
16
+ const profileResolution = await resolveMercadoLibreWriteProfile(params.profileId);
17
+ if (!profileResolution.ok) {
18
+ return profileResolution.response;
19
+ }
20
+ const profileId = profileResolution.value.profileId;
21
+ const result = await answerMercadoLibreQuestion(profileId, params.questionId, params.text);
22
+ return buildMercadoLibreWriteSuccessResponse({
23
+ profileId,
24
+ operation: "answer_question",
25
+ resourceId: String(params.questionId),
26
+ message: "MercadoLibre question answered successfully.",
27
+ after: result
28
+ });
29
+ } catch (err) {
30
+ return handleMercadoLibreWriteError(err, `Failed to answer MercadoLibre question ${params.questionId}`);
31
+ }
32
+ }
33
+ export {
34
+ meliAnswerQuestionHandler,
35
+ meliAnswerQuestionSchema
36
+ };
37
+ //# sourceMappingURL=answer-question.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/tools/mercadolibre/answer-question.ts"],
4
+ "sourcesContent": ["import { z } from \"zod\";\n\nimport { answerMercadoLibreQuestion } from \"../../services/mercadolibre/mercadolibre-questions.js\";\nimport {\n buildMercadoLibreWriteSuccessResponse,\n handleMercadoLibreWriteError,\n mercadolibreProfileIdSchemaField,\n resolveMercadoLibreWriteProfile,\n} from \"./write-helpers.js\";\n\nexport const meliAnswerQuestionSchema = z.object({\n profileId: mercadolibreProfileIdSchemaField,\n questionId: z.number().int().positive().describe(\"MercadoLibre question id.\"),\n text: z.string().trim().min(1).max(2000).describe(\"Answer text to publish.\"),\n});\n\nexport async function meliAnswerQuestionHandler(\n params: z.infer<typeof meliAnswerQuestionSchema>\n) {\n try {\n const profileResolution = await resolveMercadoLibreWriteProfile(params.profileId);\n if (!profileResolution.ok) {\n return profileResolution.response;\n }\n\n const profileId = profileResolution.value.profileId;\n const result = await answerMercadoLibreQuestion(profileId, params.questionId, params.text);\n\n return buildMercadoLibreWriteSuccessResponse({\n profileId,\n operation: \"answer_question\",\n resourceId: String(params.questionId),\n message: \"MercadoLibre question answered successfully.\",\n after: result,\n });\n } catch (err) {\n return handleMercadoLibreWriteError(err, `Failed to answer MercadoLibre question ${params.questionId}`);\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,SAAS;AAElB,SAAS,kCAAkC;AAC3C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,MAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,WAAW;AAAA,EACX,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,2BAA2B;AAAA,EAC5E,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS,yBAAyB;AAC7E,CAAC;AAED,eAAsB,0BACpB,QACA;AACA,MAAI;AACF,UAAM,oBAAoB,MAAM,gCAAgC,OAAO,SAAS;AAChF,QAAI,CAAC,kBAAkB,IAAI;AACzB,aAAO,kBAAkB;AAAA,IAC3B;AAEA,UAAM,YAAY,kBAAkB,MAAM;AAC1C,UAAM,SAAS,MAAM,2BAA2B,WAAW,OAAO,YAAY,OAAO,IAAI;AAEzF,WAAO,sCAAsC;AAAA,MAC3C;AAAA,MACA,WAAW;AAAA,MACX,YAAY,OAAO,OAAO,UAAU;AAAA,MACpC,SAAS;AAAA,MACT,OAAO;AAAA,IACT,CAAC;AAAA,EACH,SAAS,KAAK;AACZ,WAAO,6BAA6B,KAAK,0CAA0C,OAAO,UAAU,EAAE;AAAA,EACxG;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,82 @@
1
+ import { z } from "zod";
2
+ import {
3
+ createMercadoLibreItem,
4
+ createMercadoLibreItemDescription
5
+ } from "../../services/mercadolibre/mercadolibre-items.js";
6
+ import {
7
+ buildMercadoLibreWriteSuccessResponse,
8
+ handleMercadoLibreWriteError,
9
+ mercadolibreProfileIdSchemaField,
10
+ resolveMercadoLibreWriteProfile
11
+ } from "./write-helpers.js";
12
+ const attributeSchema = z.object({
13
+ id: z.string().trim().min(1).describe("MercadoLibre attribute id."),
14
+ value_name: z.string().trim().min(1).optional().describe("Human-readable attribute value."),
15
+ value_id: z.string().trim().min(1).optional().describe("MercadoLibre attribute value id when known.")
16
+ });
17
+ const pictureSchema = z.object({
18
+ source: z.string().trim().url().describe("Public image URL to attach to the item.")
19
+ });
20
+ const meliCreateItemSchema = z.object({
21
+ profileId: mercadolibreProfileIdSchemaField,
22
+ siteId: z.string().trim().min(3).optional().describe("MercadoLibre site id. Defaults to MLA."),
23
+ title: z.string().trim().min(3).describe("Listing title."),
24
+ categoryId: z.string().trim().min(1).describe("MercadoLibre category id."),
25
+ price: z.number().positive().describe("Listing price."),
26
+ currencyId: z.string().trim().min(1).optional().describe("Currency id. Defaults to ARS."),
27
+ buyingMode: z.string().trim().min(1).optional().describe("Buying mode. Defaults to buy_it_now."),
28
+ listingTypeId: z.string().trim().min(1).describe("MercadoLibre listing type id."),
29
+ condition: z.enum(["new", "used", "not_specified"]).describe("Item condition."),
30
+ availableQuantity: z.number().int().min(0).describe("Available quantity to list."),
31
+ attributes: z.array(attributeSchema).optional().describe("MercadoLibre attributes for the listing."),
32
+ pictures: z.array(pictureSchema).optional().describe("Pictures to include in the listing."),
33
+ shipping: z.record(z.string(), z.unknown()).optional().describe("Shipping payload compatible with MercadoLibre items API."),
34
+ saleTerms: z.array(z.record(z.string(), z.unknown())).optional().describe("Sale terms array for the listing."),
35
+ channels: z.array(z.string().trim().min(1)).optional().describe("Optional channels array if supported by the account."),
36
+ description: z.string().trim().min(1).optional().describe("Optional plain-text description to publish after item creation.")
37
+ });
38
+ async function meliCreateItemHandler(params) {
39
+ try {
40
+ const profileResolution = await resolveMercadoLibreWriteProfile(params.profileId);
41
+ if (!profileResolution.ok) {
42
+ return profileResolution.response;
43
+ }
44
+ const profileId = profileResolution.value.profileId;
45
+ const created = await createMercadoLibreItem(profileId, {
46
+ site_id: params.siteId ?? "MLA",
47
+ title: params.title,
48
+ category_id: params.categoryId,
49
+ price: params.price,
50
+ currency_id: params.currencyId ?? "ARS",
51
+ buying_mode: params.buyingMode ?? "buy_it_now",
52
+ listing_type_id: params.listingTypeId,
53
+ condition: params.condition,
54
+ available_quantity: params.availableQuantity,
55
+ attributes: params.attributes,
56
+ pictures: params.pictures,
57
+ shipping: params.shipping,
58
+ sale_terms: params.saleTerms,
59
+ channels: params.channels
60
+ });
61
+ if (params.description && typeof created.id === "string") {
62
+ await createMercadoLibreItemDescription(profileId, created.id, params.description);
63
+ }
64
+ return buildMercadoLibreWriteSuccessResponse({
65
+ profileId,
66
+ operation: "create_item",
67
+ resourceId: typeof created.id === "string" ? created.id : void 0,
68
+ message: "MercadoLibre item created successfully.",
69
+ after: created,
70
+ details: {
71
+ description_created: Boolean(params.description)
72
+ }
73
+ });
74
+ } catch (err) {
75
+ return handleMercadoLibreWriteError(err, "Failed to create MercadoLibre item");
76
+ }
77
+ }
78
+ export {
79
+ meliCreateItemHandler,
80
+ meliCreateItemSchema
81
+ };
82
+ //# sourceMappingURL=create-item.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/tools/mercadolibre/create-item.ts"],
4
+ "sourcesContent": ["import { z } from \"zod\";\n\nimport {\n createMercadoLibreItem,\n createMercadoLibreItemDescription,\n} from \"../../services/mercadolibre/mercadolibre-items.js\";\nimport {\n buildMercadoLibreWriteSuccessResponse,\n handleMercadoLibreWriteError,\n mercadolibreProfileIdSchemaField,\n resolveMercadoLibreWriteProfile,\n} from \"./write-helpers.js\";\n\nconst attributeSchema = z.object({\n id: z.string().trim().min(1).describe(\"MercadoLibre attribute id.\"),\n value_name: z.string().trim().min(1).optional().describe(\"Human-readable attribute value.\"),\n value_id: z.string().trim().min(1).optional().describe(\"MercadoLibre attribute value id when known.\"),\n});\n\nconst pictureSchema = z.object({\n source: z.string().trim().url().describe(\"Public image URL to attach to the item.\"),\n});\n\nexport const meliCreateItemSchema = z.object({\n profileId: mercadolibreProfileIdSchemaField,\n siteId: z.string().trim().min(3).optional().describe(\"MercadoLibre site id. Defaults to MLA.\"),\n title: z.string().trim().min(3).describe(\"Listing title.\"),\n categoryId: z.string().trim().min(1).describe(\"MercadoLibre category id.\"),\n price: z.number().positive().describe(\"Listing price.\"),\n currencyId: z.string().trim().min(1).optional().describe(\"Currency id. Defaults to ARS.\"),\n buyingMode: z.string().trim().min(1).optional().describe(\"Buying mode. Defaults to buy_it_now.\"),\n listingTypeId: z.string().trim().min(1).describe(\"MercadoLibre listing type id.\"),\n condition: z.enum([\"new\", \"used\", \"not_specified\"]).describe(\"Item condition.\"),\n availableQuantity: z.number().int().min(0).describe(\"Available quantity to list.\"),\n attributes: z.array(attributeSchema).optional().describe(\"MercadoLibre attributes for the listing.\"),\n pictures: z.array(pictureSchema).optional().describe(\"Pictures to include in the listing.\"),\n shipping: z.record(z.string(), z.unknown()).optional().describe(\"Shipping payload compatible with MercadoLibre items API.\"),\n saleTerms: z.array(z.record(z.string(), z.unknown())).optional().describe(\"Sale terms array for the listing.\"),\n channels: z.array(z.string().trim().min(1)).optional().describe(\"Optional channels array if supported by the account.\"),\n description: z.string().trim().min(1).optional().describe(\"Optional plain-text description to publish after item creation.\"),\n});\n\nexport async function meliCreateItemHandler(params: z.infer<typeof meliCreateItemSchema>) {\n try {\n const profileResolution = await resolveMercadoLibreWriteProfile(params.profileId);\n if (!profileResolution.ok) {\n return profileResolution.response;\n }\n\n const profileId = profileResolution.value.profileId;\n const created = await createMercadoLibreItem(profileId, {\n site_id: params.siteId ?? \"MLA\",\n title: params.title,\n category_id: params.categoryId,\n price: params.price,\n currency_id: params.currencyId ?? \"ARS\",\n buying_mode: params.buyingMode ?? \"buy_it_now\",\n listing_type_id: params.listingTypeId,\n condition: params.condition,\n available_quantity: params.availableQuantity,\n attributes: params.attributes,\n pictures: params.pictures,\n shipping: params.shipping,\n sale_terms: params.saleTerms,\n channels: params.channels,\n });\n\n if (params.description && typeof created.id === \"string\") {\n await createMercadoLibreItemDescription(profileId, created.id, params.description);\n }\n\n return buildMercadoLibreWriteSuccessResponse({\n profileId,\n operation: \"create_item\",\n resourceId: typeof created.id === \"string\" ? created.id : undefined,\n message: \"MercadoLibre item created successfully.\",\n after: created,\n details: {\n description_created: Boolean(params.description),\n },\n });\n } catch (err) {\n return handleMercadoLibreWriteError(err, \"Failed to create MercadoLibre item\");\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,60 @@
1
+ import { error, object } from "mcp-use/server";
2
+ import { z } from "zod";
3
+ import { formatMercadoLibreError } from "../../services/mercadolibre/mercadolibre-api.js";
4
+ import { estimateMercadoLibreListingPrice } from "../../services/mercadolibre/mercadolibre-items.js";
5
+ import { stripNulls } from "../../utils/strip-payload.js";
6
+ import { asArray, normalizeString, toNumber } from "./helpers.js";
7
+ import { resolveMercadoLibreProfileOrSelection } from "./profile-resolution.js";
8
+ import { mercadolibreProfileIdSchemaField } from "./write-helpers.js";
9
+ const meliEstimateListingFeeSchema = z.object({
10
+ profileId: mercadolibreProfileIdSchemaField,
11
+ price: z.number().positive().describe("Listing price for the product."),
12
+ currencyId: z.string().trim().min(1).optional().describe("Currency id. Defaults to ARS."),
13
+ categoryId: z.string().trim().min(1).describe("MercadoLibre category id."),
14
+ listingTypeId: z.string().trim().min(1).describe("MercadoLibre listing type id."),
15
+ logisticType: z.string().trim().min(1).optional().describe("Optional logistic type."),
16
+ shippingMode: z.string().trim().min(1).optional().describe("Optional shipping mode."),
17
+ billableWeight: z.number().positive().optional().describe("Optional billable weight for shipping-sensitive fee quotes."),
18
+ tags: z.array(z.string().trim().min(1)).optional().describe("Optional MercadoLibre pricing tags.")
19
+ });
20
+ async function meliEstimateListingFeeHandler(params) {
21
+ try {
22
+ const profileResolution = await resolveMercadoLibreProfileOrSelection(params.profileId);
23
+ if (!profileResolution.ok) {
24
+ return profileResolution.response;
25
+ }
26
+ const quotes = await estimateMercadoLibreListingPrice(profileResolution.value.profileId, {
27
+ price: params.price,
28
+ currency_id: params.currencyId ?? "ARS",
29
+ category_id: params.categoryId,
30
+ listing_type_id: params.listingTypeId,
31
+ logistic_type: params.logisticType,
32
+ shipping_mode: params.shippingMode,
33
+ billable_weight: params.billableWeight,
34
+ tags: params.tags?.join(",")
35
+ });
36
+ return object(
37
+ stripNulls({
38
+ profile_id: profileResolution.value.profileId,
39
+ quotes: asArray(quotes).map((quote) => ({
40
+ listing_type_id: normalizeString(quote.listing_type_id),
41
+ listing_type_name: normalizeString(quote.listing_type_name),
42
+ currency_id: normalizeString(quote.currency_id, params.currencyId ?? "ARS"),
43
+ sale_fee_amount: toNumber(quote.sale_fee_amount),
44
+ sale_fee_percent: toNumber(quote.sale_fee_percent),
45
+ fixed_fee: toNumber(quote.fixed_fee),
46
+ gross_amount: toNumber(quote.gross_amount ?? params.price),
47
+ net_amount: toNumber(quote.net_amount),
48
+ free_relist: quote.free_relist
49
+ }))
50
+ })
51
+ );
52
+ } catch (err) {
53
+ return error(formatMercadoLibreError(err, "Failed to estimate MercadoLibre listing fee"));
54
+ }
55
+ }
56
+ export {
57
+ meliEstimateListingFeeHandler,
58
+ meliEstimateListingFeeSchema
59
+ };
60
+ //# sourceMappingURL=estimate-listing-fee.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/tools/mercadolibre/estimate-listing-fee.ts"],
4
+ "sourcesContent": ["import { error, object } from \"mcp-use/server\";\nimport { z } from \"zod\";\n\nimport { formatMercadoLibreError } from \"../../services/mercadolibre/mercadolibre-api.js\";\nimport { estimateMercadoLibreListingPrice } from \"../../services/mercadolibre/mercadolibre-items.js\";\nimport { stripNulls } from \"../../utils/strip-payload.js\";\nimport { asArray, normalizeString, toNumber } from \"./helpers.js\";\nimport { resolveMercadoLibreProfileOrSelection } from \"./profile-resolution.js\";\nimport { mercadolibreProfileIdSchemaField } from \"./write-helpers.js\";\n\nexport const meliEstimateListingFeeSchema = z.object({\n profileId: mercadolibreProfileIdSchemaField,\n price: z.number().positive().describe(\"Listing price for the product.\"),\n currencyId: z.string().trim().min(1).optional().describe(\"Currency id. Defaults to ARS.\"),\n categoryId: z.string().trim().min(1).describe(\"MercadoLibre category id.\"),\n listingTypeId: z.string().trim().min(1).describe(\"MercadoLibre listing type id.\"),\n logisticType: z.string().trim().min(1).optional().describe(\"Optional logistic type.\"),\n shippingMode: z.string().trim().min(1).optional().describe(\"Optional shipping mode.\"),\n billableWeight: z.number().positive().optional().describe(\"Optional billable weight for shipping-sensitive fee quotes.\"),\n tags: z.array(z.string().trim().min(1)).optional().describe(\"Optional MercadoLibre pricing tags.\"),\n});\n\nexport async function meliEstimateListingFeeHandler(\n params: z.infer<typeof meliEstimateListingFeeSchema>\n) {\n try {\n const profileResolution = await resolveMercadoLibreProfileOrSelection(params.profileId);\n if (!profileResolution.ok) {\n return profileResolution.response;\n }\n\n const quotes = await estimateMercadoLibreListingPrice(profileResolution.value.profileId, {\n price: params.price,\n currency_id: params.currencyId ?? \"ARS\",\n category_id: params.categoryId,\n listing_type_id: params.listingTypeId,\n logistic_type: params.logisticType,\n shipping_mode: params.shippingMode,\n billable_weight: params.billableWeight,\n tags: params.tags?.join(\",\"),\n });\n\n return object(\n stripNulls({\n profile_id: profileResolution.value.profileId,\n quotes: asArray<Record<string, unknown>>(quotes).map((quote) => ({\n listing_type_id: normalizeString(quote.listing_type_id),\n listing_type_name: normalizeString(quote.listing_type_name),\n currency_id: normalizeString(quote.currency_id, params.currencyId ?? \"ARS\"),\n sale_fee_amount: toNumber(quote.sale_fee_amount),\n sale_fee_percent: toNumber(quote.sale_fee_percent),\n fixed_fee: toNumber(quote.fixed_fee),\n gross_amount: toNumber(quote.gross_amount ?? params.price),\n net_amount: toNumber(quote.net_amount),\n free_relist: quote.free_relist,\n })),\n })\n );\n } catch (err) {\n return error(formatMercadoLibreError(err, \"Failed to estimate MercadoLibre listing fee\"));\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,OAAO,cAAc;AAC9B,SAAS,SAAS;AAElB,SAAS,+BAA+B;AACxC,SAAS,wCAAwC;AACjD,SAAS,kBAAkB;AAC3B,SAAS,SAAS,iBAAiB,gBAAgB;AACnD,SAAS,6CAA6C;AACtD,SAAS,wCAAwC;AAE1C,MAAM,+BAA+B,EAAE,OAAO;AAAA,EACnD,WAAW;AAAA,EACX,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,EACtE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,+BAA+B;AAAA,EACxF,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS,2BAA2B;AAAA,EACzE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS,+BAA+B;AAAA,EAChF,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA,EACpF,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA,EACpF,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,6DAA6D;AAAA,EACvH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,qCAAqC;AACnG,CAAC;AAED,eAAsB,8BACpB,QACA;AACA,MAAI;AACF,UAAM,oBAAoB,MAAM,sCAAsC,OAAO,SAAS;AACtF,QAAI,CAAC,kBAAkB,IAAI;AACzB,aAAO,kBAAkB;AAAA,IAC3B;AAEA,UAAM,SAAS,MAAM,iCAAiC,kBAAkB,MAAM,WAAW;AAAA,MACvF,OAAO,OAAO;AAAA,MACd,aAAa,OAAO,cAAc;AAAA,MAClC,aAAa,OAAO;AAAA,MACpB,iBAAiB,OAAO;AAAA,MACxB,eAAe,OAAO;AAAA,MACtB,eAAe,OAAO;AAAA,MACtB,iBAAiB,OAAO;AAAA,MACxB,MAAM,OAAO,MAAM,KAAK,GAAG;AAAA,IAC7B,CAAC;AAED,WAAO;AAAA,MACL,WAAW;AAAA,QACT,YAAY,kBAAkB,MAAM;AAAA,QACpC,QAAQ,QAAiC,MAAM,EAAE,IAAI,CAAC,WAAW;AAAA,UAC/D,iBAAiB,gBAAgB,MAAM,eAAe;AAAA,UACtD,mBAAmB,gBAAgB,MAAM,iBAAiB;AAAA,UAC1D,aAAa,gBAAgB,MAAM,aAAa,OAAO,cAAc,KAAK;AAAA,UAC1E,iBAAiB,SAAS,MAAM,eAAe;AAAA,UAC/C,kBAAkB,SAAS,MAAM,gBAAgB;AAAA,UACjD,WAAW,SAAS,MAAM,SAAS;AAAA,UACnC,cAAc,SAAS,MAAM,gBAAgB,OAAO,KAAK;AAAA,UACzD,YAAY,SAAS,MAAM,UAAU;AAAA,UACrC,aAAa,MAAM;AAAA,QACrB,EAAE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF,SAAS,KAAK;AACZ,WAAO,MAAM,wBAAwB,KAAK,6CAA6C,CAAC;AAAA,EAC1F;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,38 @@
1
+ import { error, object } from "mcp-use/server";
2
+ import { z } from "zod";
3
+ import { getMercadoLibreAccessForProfile } from "../../config/mercadolibre.js";
4
+ import { getMercadoLibreUsersMe, formatMercadoLibreError } from "../../services/mercadolibre/mercadolibre-api.js";
5
+ import { stripNulls } from "../../utils/strip-payload.js";
6
+ import { resolveMercadoLibreProfileOrSelection } from "./profile-resolution.js";
7
+ import { mercadolibreProfileIdSchemaField } from "./write-helpers.js";
8
+ const meliGetAccountContextSchema = z.object({
9
+ profileId: mercadolibreProfileIdSchemaField
10
+ });
11
+ async function meliGetAccountContextHandler(params) {
12
+ try {
13
+ const profileResolution = await resolveMercadoLibreProfileOrSelection(params.profileId);
14
+ if (!profileResolution.ok) {
15
+ return profileResolution.response;
16
+ }
17
+ const profileId = profileResolution.value.profileId;
18
+ const access = await getMercadoLibreAccessForProfile(profileId);
19
+ const account = await getMercadoLibreUsersMe(profileId);
20
+ return object(
21
+ stripNulls({
22
+ profile_id: profileId,
23
+ seller_id: access.sellerId,
24
+ nickname: typeof account.nickname === "string" ? account.nickname : null,
25
+ account_id: account.id,
26
+ scopes: access.scopes,
27
+ expires_at: access.expiresAt
28
+ })
29
+ );
30
+ } catch (err) {
31
+ return error(formatMercadoLibreError(err, "Failed to fetch MercadoLibre account context"));
32
+ }
33
+ }
34
+ export {
35
+ meliGetAccountContextHandler,
36
+ meliGetAccountContextSchema
37
+ };
38
+ //# sourceMappingURL=get-account-context.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/tools/mercadolibre/get-account-context.ts"],
4
+ "sourcesContent": ["import { error, object } from \"mcp-use/server\";\nimport { z } from \"zod\";\n\nimport { getMercadoLibreAccessForProfile } from \"../../config/mercadolibre.js\";\nimport { getMercadoLibreUsersMe, formatMercadoLibreError } from \"../../services/mercadolibre/mercadolibre-api.js\";\nimport { stripNulls } from \"../../utils/strip-payload.js\";\nimport { resolveMercadoLibreProfileOrSelection } from \"./profile-resolution.js\";\nimport { mercadolibreProfileIdSchemaField } from \"./write-helpers.js\";\n\nexport const meliGetAccountContextSchema = z.object({\n profileId: mercadolibreProfileIdSchemaField,\n});\n\nexport async function meliGetAccountContextHandler(\n params: z.infer<typeof meliGetAccountContextSchema>\n) {\n try {\n const profileResolution = await resolveMercadoLibreProfileOrSelection(params.profileId);\n if (!profileResolution.ok) {\n return profileResolution.response;\n }\n\n const profileId = profileResolution.value.profileId;\n const access = await getMercadoLibreAccessForProfile(profileId);\n const account = await getMercadoLibreUsersMe(profileId);\n\n return object(\n stripNulls({\n profile_id: profileId,\n seller_id: access.sellerId,\n nickname: typeof account.nickname === \"string\" ? account.nickname : null,\n account_id: account.id,\n scopes: access.scopes,\n expires_at: access.expiresAt,\n })\n );\n } catch (err) {\n return error(formatMercadoLibreError(err, \"Failed to fetch MercadoLibre account context\"));\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,OAAO,cAAc;AAC9B,SAAS,SAAS;AAElB,SAAS,uCAAuC;AAChD,SAAS,wBAAwB,+BAA+B;AAChE,SAAS,kBAAkB;AAC3B,SAAS,6CAA6C;AACtD,SAAS,wCAAwC;AAE1C,MAAM,8BAA8B,EAAE,OAAO;AAAA,EAClD,WAAW;AACb,CAAC;AAED,eAAsB,6BACpB,QACA;AACA,MAAI;AACF,UAAM,oBAAoB,MAAM,sCAAsC,OAAO,SAAS;AACtF,QAAI,CAAC,kBAAkB,IAAI;AACzB,aAAO,kBAAkB;AAAA,IAC3B;AAEA,UAAM,YAAY,kBAAkB,MAAM;AAC1C,UAAM,SAAS,MAAM,gCAAgC,SAAS;AAC9D,UAAM,UAAU,MAAM,uBAAuB,SAAS;AAEtD,WAAO;AAAA,MACL,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,WAAW,OAAO;AAAA,QAClB,UAAU,OAAO,QAAQ,aAAa,WAAW,QAAQ,WAAW;AAAA,QACpE,YAAY,QAAQ;AAAA,QACpB,QAAQ,OAAO;AAAA,QACf,YAAY,OAAO;AAAA,MACrB,CAAC;AAAA,IACH;AAAA,EACF,SAAS,KAAK;AACZ,WAAO,MAAM,wBAAwB,KAAK,8CAA8C,CAAC;AAAA,EAC3F;AACF;",
6
+ "names": []
7
+ }