iwantmymtg-mcp 0.4.0 → 0.6.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/README.md CHANGED
@@ -13,7 +13,7 @@ An [MCP](https://modelcontextprotocol.io) server for [I Want My MTG](https://iwa
13
13
  ## What you can do
14
14
 
15
15
  - **Anonymous (no key):** search cards, look up a card by set+number, get current prices and 30-day price history, get a card's buylist (sell-to-vendor) offers, list sets and their cards, list sealed products.
16
- - **Authenticated (with an IWMM API key):** manage your inventory and transactions; view portfolio summaries, history, performance, cash flow, realized gains, and breakdowns; manage price alerts and notifications.
16
+ - **Authenticated (with an IWMM API key):** manage your inventory and transactions; build and manage decks (create, import from a decklist, edit cards, add the cards you're missing to your buy-list); view portfolio summaries, history, performance, cash flow, realized gains, and breakdowns (including by color, with per-slice drill-down); manage price alerts and notifications.
17
17
  - **Sell tools (with a key):** see your collection's market sell value (best buylist offer per card, grouped by vendor), manage a buy-list (want-list), and get a cash-vs-store-credit recommendation for selling toward your buy list.
18
18
 
19
19
  See the [project roadmap](https://github.com/matthewdtowles/i-want-my-mtg/blob/main/ROADMAP.md#43-mcp-server--agentic-ai-integration) for what's next.
@@ -0,0 +1,208 @@
1
+ import { z } from "zod";
2
+ import { apiClient, AUTH_HEADERS, unwrap } from "../api-client.js";
3
+ /**
4
+ * Deck building (#534, #536, #541). Per-user decks of cards (mainboard +
5
+ * sideboard) with optional format. Backs deck list/detail, decklist import,
6
+ * card management, and "add the cards I'm missing to my buy-list". All tools
7
+ * require IWMM_API_KEY.
8
+ */
9
+ const FORMATS = [
10
+ "standard",
11
+ "commander",
12
+ "modern",
13
+ "legacy",
14
+ "vintage",
15
+ "brawl",
16
+ "explorer",
17
+ "historic",
18
+ "oathbreaker",
19
+ "pauper",
20
+ "pioneer",
21
+ ];
22
+ const format = z
23
+ .enum(FORMATS)
24
+ .optional()
25
+ .describe("Target format. Omit for no format.");
26
+ const deckId = z
27
+ .number()
28
+ .int()
29
+ .min(1)
30
+ .describe("Deck id. Get from list_decks or create_deck.");
31
+ const cardId = z
32
+ .string()
33
+ .uuid()
34
+ .describe("Internal IWMM card UUID. Get from search_cards or get_card.");
35
+ const isSideboard = z
36
+ .boolean()
37
+ .optional()
38
+ .describe("Whether the card belongs to the sideboard. Mainboard and sideboard are separate rows. Defaults to false.");
39
+ export const listDecksTool = {
40
+ name: "list_decks",
41
+ description: "List the authenticated user's decks (summaries: id, name, format, card counts). Requires IWMM_API_KEY.",
42
+ inputSchema: z.object({}),
43
+ handler: async () => {
44
+ const { data, error } = await apiClient.GET("/api/v1/decks", {
45
+ headers: AUTH_HEADERS,
46
+ });
47
+ return unwrap(data, error);
48
+ },
49
+ };
50
+ export const getDeckTool = {
51
+ name: "get_deck",
52
+ description: "Get one deck with its cards (mainboard + sideboard). Requires IWMM_API_KEY.",
53
+ inputSchema: z.object({ deckId }),
54
+ handler: async ({ deckId }) => {
55
+ const { data, error } = await apiClient.GET("/api/v1/decks/{id}", {
56
+ params: { path: { id: deckId } },
57
+ headers: AUTH_HEADERS,
58
+ });
59
+ return unwrap(data, error);
60
+ },
61
+ };
62
+ export const createDeckTool = {
63
+ name: "create_deck",
64
+ description: "Create a new empty deck. This is a real write. Use add_deck_card to fill it, or import_deck to create from pasted text instead. Requires IWMM_API_KEY.",
65
+ inputSchema: z.object({
66
+ name: z.string().min(1).describe("Deck name."),
67
+ format,
68
+ }),
69
+ handler: async (input) => {
70
+ const { data, error } = await apiClient.POST("/api/v1/decks", {
71
+ body: { name: input.name, format: input.format },
72
+ headers: AUTH_HEADERS,
73
+ });
74
+ return unwrap(data, error);
75
+ },
76
+ };
77
+ export const importDeckTool = {
78
+ name: "import_deck",
79
+ description: 'Create a deck from pasted decklist text, one entry per line (e.g. "4 Lightning Bolt"). Returns the new deck id plus any lines that could not be resolved to a card. Requires IWMM_API_KEY.',
80
+ inputSchema: z.object({
81
+ name: z.string().min(1).describe("Deck name."),
82
+ format,
83
+ text: z.string().min(1).describe("Decklist text, one entry per line."),
84
+ }),
85
+ handler: async (input) => {
86
+ const { data, error } = await apiClient.POST("/api/v1/decks/import", {
87
+ body: { name: input.name, format: input.format, text: input.text },
88
+ headers: AUTH_HEADERS,
89
+ });
90
+ return unwrap(data, error);
91
+ },
92
+ };
93
+ export const updateDeckTool = {
94
+ name: "update_deck",
95
+ description: "Rename a deck or change its format. Omitting format clears it. Requires IWMM_API_KEY.",
96
+ inputSchema: z.object({
97
+ deckId,
98
+ name: z.string().min(1).describe("New deck name."),
99
+ format,
100
+ }),
101
+ handler: async (input) => {
102
+ const { data, error } = await apiClient.PATCH("/api/v1/decks/{id}", {
103
+ params: { path: { id: input.deckId } },
104
+ body: { name: input.name, format: input.format },
105
+ headers: AUTH_HEADERS,
106
+ });
107
+ return unwrap(data, error);
108
+ },
109
+ };
110
+ export const deleteDeckTool = {
111
+ name: "delete_deck",
112
+ description: "Delete a deck and all of its cards. This is permanent. Requires IWMM_API_KEY.",
113
+ inputSchema: z.object({ deckId }),
114
+ handler: async ({ deckId }) => {
115
+ const { data, error } = await apiClient.DELETE("/api/v1/decks/{id}", {
116
+ params: { path: { id: deckId } },
117
+ headers: AUTH_HEADERS,
118
+ });
119
+ return unwrap(data, error);
120
+ },
121
+ };
122
+ export const addDeckCardTool = {
123
+ name: "add_deck_card",
124
+ description: "Add a card to a deck, incrementing its quantity (creates the row if absent). Use set_deck_card_quantity to set an absolute quantity or remove_deck_card to delete a row. Requires IWMM_API_KEY.",
125
+ inputSchema: z.object({
126
+ deckId,
127
+ cardId,
128
+ isSideboard,
129
+ quantity: z
130
+ .number()
131
+ .int()
132
+ .min(1)
133
+ .optional()
134
+ .describe("How many to add. Defaults to 1."),
135
+ }),
136
+ handler: async (input) => {
137
+ const { data, error } = await apiClient.POST("/api/v1/decks/{id}/cards", {
138
+ params: { path: { id: input.deckId } },
139
+ body: {
140
+ cardId: input.cardId,
141
+ isSideboard: input.isSideboard ?? false,
142
+ quantity: input.quantity ?? 1,
143
+ },
144
+ headers: AUTH_HEADERS,
145
+ });
146
+ return unwrap(data, error);
147
+ },
148
+ };
149
+ export const setDeckCardQuantityTool = {
150
+ name: "set_deck_card_quantity",
151
+ description: "Set the absolute quantity for a card + board in a deck (not a delta). A quantity of 0 removes the row. Use add_deck_card to increment instead. Requires IWMM_API_KEY.",
152
+ inputSchema: z.object({
153
+ deckId,
154
+ cardId,
155
+ isSideboard: z
156
+ .boolean()
157
+ .describe("Which board the row belongs to. Mainboard and sideboard are separate rows."),
158
+ quantity: z
159
+ .number()
160
+ .int()
161
+ .min(0)
162
+ .describe("Absolute quantity to set. 0 removes the row."),
163
+ }),
164
+ handler: async (input) => {
165
+ const { data, error } = await apiClient.PATCH("/api/v1/decks/{id}/cards", {
166
+ params: { path: { id: input.deckId } },
167
+ body: {
168
+ cardId: input.cardId,
169
+ isSideboard: input.isSideboard,
170
+ quantity: input.quantity,
171
+ },
172
+ headers: AUTH_HEADERS,
173
+ });
174
+ return unwrap(data, error);
175
+ },
176
+ };
177
+ export const removeDeckCardTool = {
178
+ name: "remove_deck_card",
179
+ description: "Remove a card + board row from a deck entirely. Requires IWMM_API_KEY.",
180
+ inputSchema: z.object({
181
+ deckId,
182
+ cardId,
183
+ isSideboard: z
184
+ .boolean()
185
+ .describe("Which board the row belongs to. Mainboard and sideboard are separate rows."),
186
+ }),
187
+ handler: async (input) => {
188
+ const { data, error } = await apiClient.DELETE("/api/v1/decks/{id}/cards", {
189
+ params: { path: { id: input.deckId } },
190
+ body: { cardId: input.cardId, isSideboard: input.isSideboard },
191
+ headers: AUTH_HEADERS,
192
+ });
193
+ return unwrap(data, error);
194
+ },
195
+ };
196
+ export const deckMissingToBuyListTool = {
197
+ name: "deck_missing_to_buy_list",
198
+ description: "Add the deck's missing cards (the shortfall vs. the user's inventory) to their buy-list. Returns the count of distinct cards added. This is a real write to the buy-list. Requires IWMM_API_KEY.",
199
+ inputSchema: z.object({ deckId }),
200
+ handler: async ({ deckId }) => {
201
+ const { data, error } = await apiClient.POST("/api/v1/decks/{id}/missing-to-buy-list", {
202
+ params: { path: { id: deckId } },
203
+ headers: AUTH_HEADERS,
204
+ });
205
+ return unwrap(data, error);
206
+ },
207
+ };
208
+ //# sourceMappingURL=decks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decks.js","sourceRoot":"","sources":["../../src/tools/decks.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import { searchCardsTool } from "./search-cards.js";
2
2
  import { getCardTool, getCardPricesTool, getCardPriceHistoryTool } from "./get-card.js";
3
- import { searchSetsTool, getSetTool, listSetCardsTool, getSealedProductsTool } from "./sets.js";
4
- import { listInventoryTool, addInventoryTool, updateInventoryTool, removeInventoryTool, getInventoryQuantitiesTool, } from "./inventory.js";
3
+ import { searchSetsTool, getSetTool, listSetCardsTool, getSealedProductsTool, getSetPriceHistoryTool, getSealedProductTool, } from "./sets.js";
4
+ import { listInventoryTool, addInventoryTool, updateInventoryTool, removeInventoryTool, getInventoryQuantitiesTool, importInventoryCardsTool, exportInventoryTool, } from "./inventory.js";
5
+ import { listSealedInventoryTool, setSealedInventoryTool, removeSealedInventoryTool, } from "./sealed-inventory.js";
5
6
  import { listTransactionsTool, recordTransactionTool, updateTransactionTool, deleteTransactionTool, getCostBasisTool, } from "./transactions.js";
6
- import { getPortfolioSummaryTool, getPortfolioHistoryTool, getCardPerformanceTool, getCashFlowTool, getRealizedGainsTool, getPortfolioBreakdownTool, refreshPortfolioTool, } from "./portfolio.js";
7
+ import { getPortfolioSummaryTool, getPortfolioHistoryTool, getCardPerformanceTool, getCashFlowTool, getRealizedGainsTool, getPortfolioBreakdownTool, getPortfolioBreakdownCardsTool, refreshPortfolioTool, } from "./portfolio.js";
8
+ import { listDecksTool, getDeckTool, createDeckTool, importDeckTool, updateDeckTool, deleteDeckTool, addDeckCardTool, setDeckCardQuantityTool, removeDeckCardTool, deckMissingToBuyListTool, } from "./decks.js";
7
9
  import { listAlertsTool, createAlertTool, updateAlertTool, deleteAlertTool, } from "./alerts.js";
8
10
  import { listNotificationsTool, getUnreadCountTool, markNotificationReadTool, markAllNotificationsReadTool, } from "./notifications.js";
9
11
  import { getCardBuylistTool, getMarketSellValueTool, getCashVsCreditTool, } from "./sell-tools.js";
@@ -18,6 +20,8 @@ export const tools = [
18
20
  getSetTool,
19
21
  listSetCardsTool,
20
22
  getSealedProductsTool,
23
+ getSealedProductTool,
24
+ getSetPriceHistoryTool,
21
25
  getCardBuylistTool,
22
26
  // Sell tools (auth)
23
27
  getMarketSellValueTool,
@@ -34,6 +38,12 @@ export const tools = [
34
38
  addInventoryTool,
35
39
  updateInventoryTool,
36
40
  removeInventoryTool,
41
+ importInventoryCardsTool,
42
+ exportInventoryTool,
43
+ // Sealed-product inventory (auth; writes Premium)
44
+ listSealedInventoryTool,
45
+ setSealedInventoryTool,
46
+ removeSealedInventoryTool,
37
47
  // Transactions (auth)
38
48
  listTransactionsTool,
39
49
  recordTransactionTool,
@@ -47,7 +57,19 @@ export const tools = [
47
57
  getCashFlowTool,
48
58
  getRealizedGainsTool,
49
59
  getPortfolioBreakdownTool,
60
+ getPortfolioBreakdownCardsTool,
50
61
  refreshPortfolioTool,
62
+ // Decks (auth)
63
+ listDecksTool,
64
+ getDeckTool,
65
+ createDeckTool,
66
+ importDeckTool,
67
+ updateDeckTool,
68
+ deleteDeckTool,
69
+ addDeckCardTool,
70
+ setDeckCardQuantityTool,
71
+ removeDeckCardTool,
72
+ deckMissingToBuyListTool,
51
73
  // Price alerts (auth)
52
74
  listAlertsTool,
53
75
  createAlertTool,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAChG,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AASvB,MAAM,CAAC,MAAM,KAAK,GAAqB;IACrC,sBAAsB;IACtB,eAAe;IACf,WAAW;IACX,iBAAiB;IACjB,uBAAuB;IACvB,cAAc;IACd,UAAU;IACV,gBAAgB;IAChB,qBAAqB;IACrB,kBAAkB;IAClB,oBAAoB;IACpB,sBAAsB;IACtB,mBAAmB;IACnB,8BAA8B;IAC9B,eAAe;IACf,cAAc;IACd,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,iBAAiB;IACjB,0BAA0B;IAC1B,gBAAgB;IAChB,mBAAmB;IACnB,mBAAmB;IACnB,sBAAsB;IACtB,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,gBAAgB;IAChB,2CAA2C;IAC3C,uBAAuB;IACvB,uBAAuB;IACvB,sBAAsB;IACtB,eAAe;IACf,oBAAoB;IACpB,yBAAyB;IACzB,oBAAoB;IACpB,sBAAsB;IACtB,cAAc;IACd,eAAe;IACf,eAAe;IACf,eAAe;IACf,uBAAuB;IACvB,qBAAqB;IACrB,kBAAkB;IAClB,wBAAwB;IACxB,4BAA4B;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAmC,MAAM,CAAC,WAAW,CAC3E,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -73,4 +73,33 @@ export const getInventoryQuantitiesTool = {
73
73
  return unwrap(data, error);
74
74
  },
75
75
  };
76
+ export const importInventoryCardsTool = {
77
+ name: "import_inventory_cards",
78
+ description: "Bulk-import cards into the authenticated user's inventory from pasted CSV text. Native header: name,set_code,number[,quantity][,foil]; Moxfield, Archidekt, Deckbox, and TCGPlayer exports are auto-detected. Returns counts of saved/deleted/skipped rows and per-row errors. Requires IWMM_API_KEY.",
79
+ inputSchema: z.object({
80
+ text: z.string().min(1).describe("CSV text including a header row."),
81
+ }),
82
+ handler: async (input) => {
83
+ // The endpoint takes a multipart file upload; wrap the pasted text as a CSV file.
84
+ const form = new FormData();
85
+ form.append("file", new Blob([input.text], { type: "text/csv" }), "inventory.csv");
86
+ const { data, error } = await apiClient.POST("/api/v1/inventory/import/cards", {
87
+ body: form,
88
+ headers: AUTH_HEADERS,
89
+ });
90
+ return unwrap(data, error);
91
+ },
92
+ };
93
+ export const exportInventoryTool = {
94
+ name: "export_inventory",
95
+ description: "Export the authenticated user's full card inventory as CSV (columns: id, name, set_code, number, quantity, foil). Reimport-compatible with import_inventory_cards. Requires IWMM_API_KEY.",
96
+ inputSchema: z.object({}),
97
+ handler: async () => {
98
+ const { data, error } = await apiClient.GET("/api/v1/inventory/export", {
99
+ headers: AUTH_HEADERS,
100
+ parseAs: "text",
101
+ });
102
+ return unwrap(data, error);
103
+ },
104
+ };
76
105
  //# sourceMappingURL=inventory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/tools/inventory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/tools/inventory.ts"],"names":[],"mappings":"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"}
@@ -64,15 +64,44 @@ export const getRealizedGainsTool = {
64
64
  };
65
65
  export const getPortfolioBreakdownTool = {
66
66
  name: "get_portfolio_breakdown",
67
- description: "Get the user's collection value broken down by a dimension. Premium-gated. Requires IWMM_API_KEY.",
67
+ description: "Get the user's collection value broken down by a dimension into slices (each with value, count, and share). Premium-gated. Use get_portfolio_breakdown_cards to drill into one slice. Requires IWMM_API_KEY.",
68
68
  inputSchema: z.object({
69
69
  by: z
70
- .enum(["set", "rarity", "type", "format", "cost-basis"])
71
- .describe("Dimension to break down by. 'cost-basis' buckets are gain/loss/at-cost."),
70
+ .enum(["set", "rarity", "type", "color", "cost-basis"])
71
+ .describe("Dimension to break down by. 'cost-basis' buckets are gain/loss/at-cost; 'color' groups by color identity."),
72
+ colors: z
73
+ .string()
74
+ .optional()
75
+ .describe("Only for by=color: comma-separated identity codes (W,U,B,R,G,C; C is colorless) to keep only cards whose color identity contains all of them. Ignored for other dimensions."),
72
76
  }),
73
- handler: async ({ by }) => {
77
+ handler: async (input) => {
78
+ const colors = input.by === "color" ? input.colors : undefined;
74
79
  const { data, error } = await apiClient.GET("/api/v1/portfolio/breakdown", {
75
- params: { query: { by } },
80
+ params: { query: { by: input.by, colors } },
81
+ headers: AUTH_HEADERS,
82
+ });
83
+ return unwrap(data, error);
84
+ },
85
+ };
86
+ export const getPortfolioBreakdownCardsTool = {
87
+ name: "get_portfolio_breakdown_cards",
88
+ description: "Get the cards inside one slice of a portfolio breakdown (the drill-down for get_portfolio_breakdown). Premium-gated. Requires IWMM_API_KEY.",
89
+ inputSchema: z.object({
90
+ by: z
91
+ .enum(["set", "rarity", "type", "color", "cost-basis"])
92
+ .describe("Dimension the slice belongs to. Must match the get_portfolio_breakdown call."),
93
+ key: z
94
+ .string()
95
+ .describe("Slice key from the breakdown: a set code, rarity, type, cost-basis bucket, or color code."),
96
+ colors: z
97
+ .string()
98
+ .optional()
99
+ .describe("Only for by=color: the same superset filter (W,U,B,R,G,C) passed to get_portfolio_breakdown, so the drill-down matches the aggregate row. Ignored for other dimensions."),
100
+ }),
101
+ handler: async (input) => {
102
+ const colors = input.by === "color" ? input.colors : undefined;
103
+ const { data, error } = await apiClient.GET("/api/v1/portfolio/breakdown/cards", {
104
+ params: { query: { by: input.by, key: input.key, colors } },
76
105
  headers: AUTH_HEADERS,
77
106
  });
78
107
  return unwrap(data, error);
@@ -1 +1 @@
1
- {"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../../src/tools/portfolio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../../src/tools/portfolio.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { z } from "zod";
2
+ import { apiClient, AUTH_HEADERS, unwrap } from "../api-client.js";
3
+ /**
4
+ * Sealed-product inventory (booster boxes, bundles, precons). Mirrors card
5
+ * inventory but keyed by sealed product UUID. Writes are Premium-gated. The
6
+ * API's POST and PATCH both upsert the absolute quantity, so a single
7
+ * set_sealed_inventory tool covers add and update.
8
+ */
9
+ const sealedProductUuid = z
10
+ .string()
11
+ .uuid()
12
+ .describe("Sealed product UUID. Get it from get_sealed_products or get_sealed_product.");
13
+ export const listSealedInventoryTool = {
14
+ name: "list_sealed_inventory",
15
+ description: "List the authenticated user's sealed-product inventory (booster boxes, bundles, precons), paginated, with quantities and prices. For loose cards use list_inventory. Requires IWMM_API_KEY.",
16
+ inputSchema: z.object({
17
+ page: z.number().int().min(1).optional(),
18
+ limit: z.number().int().min(1).max(100).optional(),
19
+ }),
20
+ handler: async (input) => {
21
+ const { data, error } = await apiClient.GET("/api/v1/inventory/sealed", {
22
+ params: { query: input },
23
+ headers: AUTH_HEADERS,
24
+ });
25
+ return unwrap(data, error);
26
+ },
27
+ };
28
+ export const setSealedInventoryTool = {
29
+ name: "set_sealed_inventory",
30
+ description: "Add or update a sealed product in the authenticated user's inventory by setting its absolute quantity (upserts the row for that product). This is a real write and is Premium-gated. Use remove_sealed_inventory to delete a row. Requires IWMM_API_KEY.",
31
+ inputSchema: z.object({
32
+ sealedProductUuid,
33
+ quantity: z.number().int().min(1).describe("Absolute quantity to set for this product."),
34
+ }),
35
+ handler: async (input) => {
36
+ const { data, error } = await apiClient.POST("/api/v1/inventory/sealed", {
37
+ body: input,
38
+ headers: AUTH_HEADERS,
39
+ });
40
+ return unwrap(data, error);
41
+ },
42
+ };
43
+ export const removeSealedInventoryTool = {
44
+ name: "remove_sealed_inventory",
45
+ description: "Remove a sealed product from the authenticated user's inventory entirely. Premium-gated. Requires IWMM_API_KEY.",
46
+ inputSchema: z.object({ sealedProductUuid }),
47
+ handler: async (input) => {
48
+ const { data, error } = await apiClient.DELETE("/api/v1/inventory/sealed", {
49
+ body: input,
50
+ headers: AUTH_HEADERS,
51
+ });
52
+ return unwrap(data, error);
53
+ },
54
+ };
55
+ //# sourceMappingURL=sealed-inventory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sealed-inventory.js","sourceRoot":"","sources":["../../src/tools/sealed-inventory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnE;;;;;GAKG;AAEH,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,IAAI,EAAE;KACN,QAAQ,CAAC,6EAA6E,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EACT,6LAA6L;IAC/L,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KACnD,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,KAA8B,EAAE,EAAE;QAChD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,0BAA0B,EAAE;YACtE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAc,EAAE;YACjC,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACT,0PAA0P;IAC5P,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,iBAAiB;QACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;KACzF,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,KAAsD,EAAE,EAAE;QACxE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE;YACvE,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,iHAAiH;IACnH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5C,OAAO,EAAE,KAAK,EAAE,KAAoC,EAAE,EAAE;QACtD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,0BAA0B,EAAE;YACzE,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
@@ -55,4 +55,32 @@ export const getSealedProductsTool = {
55
55
  return unwrap(data, error);
56
56
  },
57
57
  };
58
+ export const getSetPriceHistoryTool = {
59
+ name: "get_set_price_history",
60
+ description: "Get the price history for a whole set by set code - the set's aggregate value over time. Optionally limit the window with days. For a single card's history use get_card_price_history.",
61
+ inputSchema: z.object({
62
+ code: z.string().describe("Set code (e.g. 'mh3')."),
63
+ days: z.number().int().min(1).optional().describe("Number of days of history to return."),
64
+ }),
65
+ handler: async ({ code, days }) => {
66
+ const query = days != null ? { days: String(days) } : undefined;
67
+ const { data, error } = await apiClient.GET("/api/v1/sets/{code}/price-history", {
68
+ params: { path: { code }, query },
69
+ });
70
+ return unwrap(data, error);
71
+ },
72
+ };
73
+ export const getSealedProductTool = {
74
+ name: "get_sealed_product",
75
+ description: "Get detail for a single sealed product by its UUID, including current pricing and a TCGPlayer purchase URL. List a set's sealed products with get_sealed_products.",
76
+ inputSchema: z.object({
77
+ uuid: z.string().uuid().describe("Sealed product UUID, e.g. from get_sealed_products."),
78
+ }),
79
+ handler: async ({ uuid }) => {
80
+ const { data, error } = await apiClient.GET("/api/v1/sealed-products/{uuid}", {
81
+ params: { path: { uuid } },
82
+ });
83
+ return unwrap(data, error);
84
+ },
85
+ };
58
86
  //# sourceMappingURL=sets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sets.js","sourceRoot":"","sources":["../../src/tools/sets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sets.js","sourceRoot":"","sources":["../../src/tools/sets.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "iwantmymtg-mcp",
3
3
  "mcpName": "io.github.matthewdtowles/iwantmymtg-mcp",
4
- "version": "0.4.0",
4
+ "version": "0.6.0",
5
5
  "description": "MCP server for I Want My MTG - query cards/sets and manage your collection from Claude Desktop, Claude Code, Cursor, and other MCP clients.",
6
6
  "type": "module",
7
7
  "bin": {