@pmxt/mcp 2.35.8 → 2.35.10

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.
@@ -470,7 +470,7 @@ export const TOOLS = [
470
470
  },
471
471
  {
472
472
  "name": "fetchArbitrage",
473
- "description": "Scan for arbitrage opportunities across venues. Finds identity matches where the same market is priced differently on different venues, returning opportunities sorted by spread size.",
473
+ "description": "Find Arbitrage Opportunities",
474
474
  "inputSchema": {
475
475
  "type": "object",
476
476
  "properties": {
@@ -823,7 +823,7 @@ export const TOOLS = [
823
823
  },
824
824
  {
825
825
  "name": "fetchEventMatches",
826
- "description": "Find the same or related event on other venues. Given an event on one venue, discover semantically equivalent events across every other venue PMXT ingests including market-level match details for each child market.",
826
+ "description": "Find the same or related event on other venues. Two modes: **Lookup mode** (eventId/slug provided): Given an event on one venue, discover semantically equivalent events across every other venue PMXT ingests. **Browse mode** (no identifier): Returns all matched event pairs from the catalog. Supports query and category params for filtering.",
827
827
  "inputSchema": {
828
828
  "type": "object",
829
829
  "properties": {
@@ -845,6 +845,14 @@ export const TOOLS = [
845
845
  ],
846
846
  "description": "The prediction market exchange to target."
847
847
  },
848
+ "query": {
849
+ "type": "string",
850
+ "description": "Keyword search across matched event titles."
851
+ },
852
+ "category": {
853
+ "type": "string",
854
+ "description": "Filter matches by category."
855
+ },
848
856
  "event": {
849
857
  "allOf": [
850
858
  {
@@ -854,7 +862,8 @@ export const TOOLS = [
854
862
  "description": "Pass a UnifiedEvent directly instead of eventId/slug."
855
863
  },
856
864
  "eventId": {
857
- "type": "string"
865
+ "type": "string",
866
+ "description": "Lookup a specific event by ID. Omit for browse mode."
858
867
  },
859
868
  "slug": {
860
869
  "type": "string"
@@ -895,7 +904,7 @@ export const TOOLS = [
895
904
  {
896
905
  "name": "params",
897
906
  "kind": "object",
898
- "optional": false,
907
+ "optional": true,
899
908
  "flatten": true
900
909
  }
901
910
  ]
@@ -1070,7 +1079,7 @@ export const TOOLS = [
1070
1079
  },
1071
1080
  {
1072
1081
  "name": "fetchHedges",
1073
- "description": "Find hedging opportunities across venues. Discovers subset/superset market relationships where one market's outcome implies another, enabling cross-venue hedging strategies with live prices.",
1082
+ "description": "Find Hedging Opportunities",
1074
1083
  "inputSchema": {
1075
1084
  "type": "object",
1076
1085
  "properties": {
@@ -1092,6 +1101,14 @@ export const TOOLS = [
1092
1101
  ],
1093
1102
  "description": "The prediction market exchange to target."
1094
1103
  },
1104
+ "query": {
1105
+ "type": "string",
1106
+ "description": "Keyword search across matched market titles."
1107
+ },
1108
+ "category": {
1109
+ "type": "string",
1110
+ "description": "Filter matches by category."
1111
+ },
1095
1112
  "market": {
1096
1113
  "allOf": [
1097
1114
  {
@@ -1101,7 +1118,8 @@ export const TOOLS = [
1101
1118
  "description": "Pass a UnifiedMarket directly instead of marketId/slug/url."
1102
1119
  },
1103
1120
  "marketId": {
1104
- "type": "string"
1121
+ "type": "string",
1122
+ "description": "Lookup a specific market by ID. Omit for browse mode."
1105
1123
  },
1106
1124
  "slug": {
1107
1125
  "type": "string"
@@ -1128,6 +1146,19 @@ export const TOOLS = [
1128
1146
  "includePrices": {
1129
1147
  "type": "boolean"
1130
1148
  },
1149
+ "minDifference": {
1150
+ "type": "number",
1151
+ "description": "Minimum price difference between venues. Browse mode only."
1152
+ },
1153
+ "sort": {
1154
+ "type": "string",
1155
+ "enum": [
1156
+ "confidence",
1157
+ "volume",
1158
+ "priceDifference"
1159
+ ],
1160
+ "description": "Sort order. Browse mode only."
1161
+ },
1131
1162
  "verbose": {
1132
1163
  "type": "boolean",
1133
1164
  "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
@@ -1262,7 +1293,7 @@ export const TOOLS = [
1262
1293
  },
1263
1294
  {
1264
1295
  "name": "fetchMarketMatches",
1265
- "description": "Find the same or related market on other venues. Given a market on one venue, discover semantically equivalent markets across every other venue PMXT ingests each with a relation type (identity, subset, superset, overlap, disjoint), confidence score, and reasoning.",
1296
+ "description": "Find the same or related market on other venues. Two modes: **Lookup mode** (marketId/slug/url provided): Given a market on one venue, discover semantically equivalent markets across every other venue PMXT ingests. **Browse mode** (no identifier): Returns all matched market pairs from the catalog. Supports query, category, minDifference, and sort params for filtering.",
1266
1297
  "inputSchema": {
1267
1298
  "type": "object",
1268
1299
  "properties": {
@@ -1284,6 +1315,14 @@ export const TOOLS = [
1284
1315
  ],
1285
1316
  "description": "The prediction market exchange to target."
1286
1317
  },
1318
+ "query": {
1319
+ "type": "string",
1320
+ "description": "Keyword search across matched market titles."
1321
+ },
1322
+ "category": {
1323
+ "type": "string",
1324
+ "description": "Filter matches by category."
1325
+ },
1287
1326
  "market": {
1288
1327
  "allOf": [
1289
1328
  {
@@ -1293,7 +1332,8 @@ export const TOOLS = [
1293
1332
  "description": "Pass a UnifiedMarket directly instead of marketId/slug/url."
1294
1333
  },
1295
1334
  "marketId": {
1296
- "type": "string"
1335
+ "type": "string",
1336
+ "description": "Lookup a specific market by ID. Omit for browse mode."
1297
1337
  },
1298
1338
  "slug": {
1299
1339
  "type": "string"
@@ -1320,6 +1360,19 @@ export const TOOLS = [
1320
1360
  "includePrices": {
1321
1361
  "type": "boolean"
1322
1362
  },
1363
+ "minDifference": {
1364
+ "type": "number",
1365
+ "description": "Minimum price difference between venues. Browse mode only."
1366
+ },
1367
+ "sort": {
1368
+ "type": "string",
1369
+ "enum": [
1370
+ "confidence",
1371
+ "volume",
1372
+ "priceDifference"
1373
+ ],
1374
+ "description": "Sort order. Browse mode only."
1375
+ },
1323
1376
  "verbose": {
1324
1377
  "type": "boolean",
1325
1378
  "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
@@ -1337,7 +1390,7 @@ export const TOOLS = [
1337
1390
  {
1338
1391
  "name": "params",
1339
1392
  "kind": "object",
1340
- "optional": false,
1393
+ "optional": true,
1341
1394
  "flatten": true
1342
1395
  }
1343
1396
  ]
@@ -1507,6 +1560,144 @@ export const TOOLS = [
1507
1560
  }
1508
1561
  ]
1509
1562
  },
1563
+ {
1564
+ "name": "fetchMatchedMarkets",
1565
+ "description": "Matched Markets",
1566
+ "inputSchema": {
1567
+ "type": "object",
1568
+ "properties": {
1569
+ "exchange": {
1570
+ "type": "string",
1571
+ "enum": [
1572
+ "polymarket",
1573
+ "kalshi",
1574
+ "kalshi-demo",
1575
+ "limitless",
1576
+ "probable",
1577
+ "baozi",
1578
+ "myriad",
1579
+ "opinion",
1580
+ "metaculus",
1581
+ "smarkets",
1582
+ "polymarket_us",
1583
+ "router"
1584
+ ],
1585
+ "description": "The prediction market exchange to target."
1586
+ },
1587
+ "minDifference": {
1588
+ "type": "number"
1589
+ },
1590
+ "category": {
1591
+ "type": "string"
1592
+ },
1593
+ "limit": {
1594
+ "type": "number"
1595
+ },
1596
+ "relations": {
1597
+ "type": "array",
1598
+ "items": {
1599
+ "type": "string",
1600
+ "enum": [
1601
+ "identity",
1602
+ "subset",
1603
+ "superset",
1604
+ "overlap",
1605
+ "disjoint"
1606
+ ]
1607
+ },
1608
+ "description": "Comma-separated relation types to include (default: 'identity')."
1609
+ },
1610
+ "verbose": {
1611
+ "type": "boolean",
1612
+ "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
1613
+ }
1614
+ },
1615
+ "required": [
1616
+ "exchange"
1617
+ ]
1618
+ },
1619
+ "annotations": {
1620
+ "readOnlyHint": true
1621
+ },
1622
+ "method": "fetchMatchedMarkets",
1623
+ "args": [
1624
+ {
1625
+ "name": "params",
1626
+ "kind": "object",
1627
+ "optional": true,
1628
+ "flatten": true
1629
+ }
1630
+ ]
1631
+ },
1632
+ {
1633
+ "name": "fetchMatchedPrices",
1634
+ "description": "Compare Matched Market Prices",
1635
+ "inputSchema": {
1636
+ "type": "object",
1637
+ "properties": {
1638
+ "exchange": {
1639
+ "type": "string",
1640
+ "enum": [
1641
+ "polymarket",
1642
+ "kalshi",
1643
+ "kalshi-demo",
1644
+ "limitless",
1645
+ "probable",
1646
+ "baozi",
1647
+ "myriad",
1648
+ "opinion",
1649
+ "metaculus",
1650
+ "smarkets",
1651
+ "polymarket_us",
1652
+ "router"
1653
+ ],
1654
+ "description": "The prediction market exchange to target."
1655
+ },
1656
+ "minDifference": {
1657
+ "type": "number"
1658
+ },
1659
+ "category": {
1660
+ "type": "string"
1661
+ },
1662
+ "limit": {
1663
+ "type": "number"
1664
+ },
1665
+ "relations": {
1666
+ "type": "array",
1667
+ "items": {
1668
+ "type": "string",
1669
+ "enum": [
1670
+ "identity",
1671
+ "subset",
1672
+ "superset",
1673
+ "overlap",
1674
+ "disjoint"
1675
+ ]
1676
+ },
1677
+ "description": "Comma-separated relation types to include (default: 'identity')."
1678
+ },
1679
+ "verbose": {
1680
+ "type": "boolean",
1681
+ "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
1682
+ }
1683
+ },
1684
+ "required": [
1685
+ "exchange"
1686
+ ]
1687
+ },
1688
+ "annotations": {
1689
+ "readOnlyHint": true
1690
+ },
1691
+ "method": "fetchMatchedPrices",
1692
+ "args": [
1693
+ {
1694
+ "name": "params",
1695
+ "kind": "object",
1696
+ "optional": true,
1697
+ "flatten": true
1698
+ }
1699
+ ]
1700
+ },
1510
1701
  {
1511
1702
  "name": "fetchMyTrades",
1512
1703
  "description": "Fetch My Trades",
@@ -1967,6 +2158,110 @@ export const TOOLS = [
1967
2158
  }
1968
2159
  ]
1969
2160
  },
2161
+ {
2162
+ "name": "fetchRelatedMarkets",
2163
+ "description": "Find related markets across venues. Discovers subset/superset market relationships where one market's outcome implies another, with live prices.",
2164
+ "inputSchema": {
2165
+ "type": "object",
2166
+ "properties": {
2167
+ "exchange": {
2168
+ "type": "string",
2169
+ "enum": [
2170
+ "polymarket",
2171
+ "kalshi",
2172
+ "kalshi-demo",
2173
+ "limitless",
2174
+ "probable",
2175
+ "baozi",
2176
+ "myriad",
2177
+ "opinion",
2178
+ "metaculus",
2179
+ "smarkets",
2180
+ "polymarket_us",
2181
+ "router"
2182
+ ],
2183
+ "description": "The prediction market exchange to target."
2184
+ },
2185
+ "query": {
2186
+ "type": "string",
2187
+ "description": "Keyword search across matched market titles."
2188
+ },
2189
+ "category": {
2190
+ "type": "string",
2191
+ "description": "Filter matches by category."
2192
+ },
2193
+ "market": {
2194
+ "allOf": [
2195
+ {
2196
+ "$ref": "#/components/schemas/UnifiedMarket"
2197
+ }
2198
+ ],
2199
+ "description": "Pass a UnifiedMarket directly instead of marketId/slug/url."
2200
+ },
2201
+ "marketId": {
2202
+ "type": "string",
2203
+ "description": "Lookup a specific market by ID. Omit for browse mode."
2204
+ },
2205
+ "slug": {
2206
+ "type": "string"
2207
+ },
2208
+ "url": {
2209
+ "type": "string"
2210
+ },
2211
+ "relation": {
2212
+ "type": "string",
2213
+ "enum": [
2214
+ "identity",
2215
+ "subset",
2216
+ "superset",
2217
+ "overlap",
2218
+ "disjoint"
2219
+ ]
2220
+ },
2221
+ "minConfidence": {
2222
+ "type": "number"
2223
+ },
2224
+ "limit": {
2225
+ "type": "number"
2226
+ },
2227
+ "includePrices": {
2228
+ "type": "boolean"
2229
+ },
2230
+ "minDifference": {
2231
+ "type": "number",
2232
+ "description": "Minimum price difference between venues. Browse mode only."
2233
+ },
2234
+ "sort": {
2235
+ "type": "string",
2236
+ "enum": [
2237
+ "confidence",
2238
+ "volume",
2239
+ "priceDifference"
2240
+ ],
2241
+ "description": "Sort order. Browse mode only."
2242
+ },
2243
+ "verbose": {
2244
+ "type": "boolean",
2245
+ "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
2246
+ }
2247
+ },
2248
+ "required": [
2249
+ "exchange"
2250
+ ]
2251
+ },
2252
+ "annotations": {
2253
+ "readOnlyHint": true
2254
+ },
2255
+ "method": "fetchRelatedMarkets",
2256
+ "args": [
2257
+ {
2258
+ "name": "params",
2259
+ "kind": "object",
2260
+ "optional": false,
2261
+ "flatten": true
2262
+ }
2263
+ ]
2264
+ },
1970
2265
  {
1971
2266
  "name": "fetchTrades",
1972
2267
  "description": "Fetch raw trade history for a specific outcome.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pmxt/mcp",
3
- "version": "2.35.8",
3
+ "version": "2.35.10",
4
4
  "description": "MCP server for PMXT - the unified prediction market API",
5
5
  "type": "module",
6
6
  "bin": {