@parabolicfamily/mcp 0.2.0 → 0.2.2
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 +73 -36
- package/abi/ParabolicSessionModule.json +362 -0
- package/dist/abi.d.ts +0 -2
- package/dist/abi.js +0 -2
- package/dist/abi.js.map +1 -1
- package/dist/coins.d.ts +2 -1
- package/dist/coins.js +2 -1
- package/dist/coins.js.map +1 -1
- package/dist/docs.js +4 -3
- package/dist/docs.js.map +1 -1
- package/dist/format.d.ts +2 -1
- package/dist/format.js +3 -2
- package/dist/format.js.map +1 -1
- package/dist/parabolic.d.ts +50 -1
- package/dist/parabolic.js +72 -11
- package/dist/parabolic.js.map +1 -1
- package/dist/restapi.d.ts +66 -1
- package/dist/restapi.js +83 -3
- package/dist/restapi.js.map +1 -1
- package/dist/routed.d.ts +51 -3
- package/dist/routed.js +82 -18
- package/dist/routed.js.map +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.js +25 -3
- package/dist/server.js.map +1 -1
- package/dist/venue-history.d.ts +19 -0
- package/dist/venue-history.js +63 -0
- package/dist/venue-history.js.map +1 -0
- package/dist/venues.d.ts +49 -0
- package/dist/venues.js +28 -0
- package/dist/venues.js.map +1 -1
- package/package.json +2 -2
- package/src/abi.ts +0 -3
- package/src/coins.ts +4 -2
- package/src/docs.ts +4 -3
- package/src/format.ts +3 -2
- package/src/parabolic.ts +71 -12
- package/src/restapi.ts +76 -5
- package/src/routed.ts +76 -17
- package/src/server.ts +30 -3
- package/src/venue-history.ts +69 -0
- package/src/venues.ts +43 -0
package/dist/server.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare const SERVER_INFO: {
|
|
|
9
9
|
readonly name: "parabolic";
|
|
10
10
|
readonly version: string;
|
|
11
11
|
};
|
|
12
|
-
export declare const TOOL_NAMES: readonly ["parabolic.list_coins", "parabolic.get_coin", "parabolic.quote_buy", "parabolic.quote_sell", "parabolic.build_buy_tx", "parabolic.build_sell_tx", "parabolic.build_launch_tx", "parabolic.agent_status", "parabolic.build_register_agent_tx", "parabolic.protocol_stats", "parabolic.check_ticker", "parabolic.referral_status", "parabolic.list_venue_coins", "parabolic.quote_routed_buy", "parabolic.quote_routed_sell", "parabolic.build_routed_buy_tx", "parabolic.build_routed_sell_tx", "parabolic.docs"];
|
|
12
|
+
export declare const TOOL_NAMES: readonly ["parabolic.list_coins", "parabolic.get_coin", "parabolic.quote_buy", "parabolic.quote_sell", "parabolic.build_buy_tx", "parabolic.build_sell_tx", "parabolic.build_launch_tx", "parabolic.agent_status", "parabolic.build_register_agent_tx", "parabolic.protocol_stats", "parabolic.check_ticker", "parabolic.referral_status", "parabolic.list_venue_coins", "parabolic.venue_history", "parabolic.quote_routed_buy", "parabolic.quote_routed_sell", "parabolic.build_routed_buy_tx", "parabolic.build_routed_sell_tx", "parabolic.docs"];
|
|
13
13
|
export type ServerOptions = {
|
|
14
14
|
/** Overrides applied on top of the environment-derived config. */
|
|
15
15
|
config?: Partial<Config>;
|
package/dist/server.js
CHANGED
|
@@ -7,6 +7,7 @@ import { jsonText, toPlain } from "./format.js";
|
|
|
7
7
|
import { Parabolic } from "./parabolic.js";
|
|
8
8
|
import { PAIR_FILTERS } from "./restapi.js";
|
|
9
9
|
import { VENUE_KEYS } from "./venues.js";
|
|
10
|
+
import { venueHistory, VENUE_HISTORY_PARTS } from "./venue-history.js";
|
|
10
11
|
import { readFileSync } from "node:fs";
|
|
11
12
|
import { safeMessage } from "./format.js";
|
|
12
13
|
export { Parabolic } from "./parabolic.js";
|
|
@@ -28,6 +29,7 @@ export const TOOL_NAMES = [
|
|
|
28
29
|
"parabolic.check_ticker",
|
|
29
30
|
"parabolic.referral_status",
|
|
30
31
|
"parabolic.list_venue_coins",
|
|
32
|
+
"parabolic.venue_history",
|
|
31
33
|
"parabolic.quote_routed_buy",
|
|
32
34
|
"parabolic.quote_routed_sell",
|
|
33
35
|
"parabolic.build_routed_buy_tx",
|
|
@@ -92,6 +94,12 @@ export function createServer(opts = {}) {
|
|
|
92
94
|
// Tool arguments are validated strictly: an argument the tool does not know (a misspelling, or
|
|
93
95
|
// `referral` at the top level instead of inside `memo`) is an error, not something silently dropped
|
|
94
96
|
// and quietly changing what the tool does.
|
|
97
|
+
/**
|
|
98
|
+
* The creator-tax ceiling both factories answer today (`maxCreatorTaxBps()` 500 on 5042 and 4663, read 6 Oct 2026;
|
|
99
|
+
* CON-23). The schema refuses above it so an agent learns the bound before it builds a launch that reverts; the
|
|
100
|
+
* launch builder still reads the factory's own figure and refuses above that, which is what holds if an owner lowers it.
|
|
101
|
+
*/
|
|
102
|
+
const MAX_CREATOR_TAX_BPS = 500;
|
|
95
103
|
const strictArgs = (shape) => z.object(shape).strict();
|
|
96
104
|
const readOnly = { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true };
|
|
97
105
|
server.registerTool("parabolic.list_coins", {
|
|
@@ -101,6 +109,7 @@ export function createServer(opts = {}) {
|
|
|
101
109
|
status: z.enum(["climbing", "graduated"]).optional().describe("climbing = still on the bonding curve; graduated = in its Uniswap v4 pool"),
|
|
102
110
|
sort: z.enum(SORT_KEYS).optional().describe("trending (24h volume, then last trade), new (launch time), near_graduation (curve progress, climbing first), market_cap"),
|
|
103
111
|
limit: z.number().int().min(1).max(100).optional().describe("Max coins to return (default 20)"),
|
|
112
|
+
after: z.string().max(80).optional().describe("Page by cursor: the `next` of an earlier answer, or an empty string to start at the newest coin; the answer carries `next`, null on the last page"),
|
|
104
113
|
chain: chainArg,
|
|
105
114
|
pair: z.enum(PAIR_FILTERS).optional().describe("USDC or EURC = the coin's quote asset; Agents = coins whose creator holds an ERC-8004 identity, read from Arc's IdentityRegistry at call time whatever the listing source. A chain with no registry answers pairFilterApplied: false and says so in `source`"),
|
|
106
115
|
}),
|
|
@@ -108,8 +117,8 @@ export function createServer(opts = {}) {
|
|
|
108
117
|
}, (args) => run(() => { api.assertChain(args.chain); return api.listCoins(args); }));
|
|
109
118
|
server.registerTool("parabolic.get_coin", {
|
|
110
119
|
title: "Get a Parabolic coin",
|
|
111
|
-
description: "Everything about one coin, read from the factory, curve and token (plus the subgraph when configured): name, ticker, creator, curve, status/phase, raised/threshold/progress, price, market cap, holders, pool id, fee terms and split, snipe-tax window and the current snipe-tax bps.",
|
|
112
|
-
inputSchema: strictArgs({ address, chain: chainArg }),
|
|
120
|
+
description: "Everything about one coin, read from the factory, curve and token (plus the subgraph when configured): name, ticker, creator, curve, status/phase, raised/threshold/progress, price, market cap, holders, pool id, fee terms and split, snipe-tax window and the current snipe-tax bps. A coin made on ANOTHER launchpad is asked by the site's reference, `rhc:pons:0x…` (or `pons:0x…` on this server's chain): it is read through the Parabolic site's API, which asks that launchpad's own records, and answers with `venue`, `ref` and whether it can be routed here.",
|
|
121
|
+
inputSchema: strictArgs({ address: z.string().describe("Token reference: `0x…` for a coin on Arc (the curve address is accepted too), `<chain>:0x…` for a Parabolic coin on another chain (`rhc:0x…`), or `<chain>:<venue>:0x…` for a coin made on another launchpad (`rhc:pons:0x…`). An unqualified address always means Arc."), chain: chainArg }),
|
|
113
122
|
annotations: readOnly,
|
|
114
123
|
}, (args) => run(() => { api.assertChain(args.chain); return api.getCoin(args.address); }));
|
|
115
124
|
server.registerTool("parabolic.quote_buy", {
|
|
@@ -169,7 +178,7 @@ export function createServer(opts = {}) {
|
|
|
169
178
|
socials: z.object({ twitter: z.string().max(256).optional(), telegram: z.string().max(256).optional(), discord: z.string().max(256).optional(), website: z.string().max(256).optional(), farcaster: z.string().max(256).optional() }).optional(),
|
|
170
179
|
pair: z.enum(["USDC", "EURC"]).optional().describe("Which quote asset to launch against: \"USDC\" means the chain's gas token (native-quoted, which is USDC on Arc and is NOT a dollar on a chain paying gas in ETH), \"EURC\" the configured ERC-20. The answer's `quoteAsset` names what was actually resolved, read off the asset itself."),
|
|
171
180
|
devBuy: whole.optional().describe("Creator's own first buy, whole quote units; returned as a second, snipe-tax-exempt transaction"),
|
|
172
|
-
creatorTaxBps: z.number().int().min(0).max(
|
|
181
|
+
creatorTaxBps: z.number().int().min(0).max(MAX_CREATOR_TAX_BPS).optional().describe(`Creator tax in basis points, 0 to ${MAX_CREATOR_TAX_BPS} (5%): both factories' maxCreatorTaxBps() read ${MAX_CREATOR_TAX_BPS}, and a higher figure reverts on chain`),
|
|
173
182
|
creator: z.string().describe("Wallet that signs the launch; becomes deployer and creatorFeeRecipient"),
|
|
174
183
|
buybackEnabled: z.boolean().optional().describe("Default true"),
|
|
175
184
|
memo: z.object({ referral: z.string().optional().describe("Referrer's 16-hex referral code or wallet address"), note: z.string().max(280).optional().describe("Note kept on the coin; defaults to \"mcp\", which lists the coin on parabolic.family/agents") }).nullable().optional().describe("The memo-wrapped variant's referral and note (returned as `memo` beside `tx`); null leaves it out"),
|
|
@@ -236,6 +245,19 @@ export function createServer(opts = {}) {
|
|
|
236
245
|
}),
|
|
237
246
|
annotations: readOnly,
|
|
238
247
|
}, (args) => run(() => { api.assertChain(args.chain); return api.routed.listVenueCoins(args); }));
|
|
248
|
+
server.registerTool("parabolic.venue_history", {
|
|
249
|
+
title: "Another launchpad's coin: history, holders, positions",
|
|
250
|
+
description: "A coin made on another launchpad as the Parabolic site reads it from the chain's logs: `part: \"chart\"` its candles from every fill read and its newest fills (with the wallet where a log names one), `\"holders\"` its holders folded from its transfers since launch (the largest confirmed at the head) with the concentration figures safe mode checks, `\"claimable\"` its fee recipient's balance on that launchpad's own escrow (claimed there, never here), and `\"position\"` a wallet's positions across the launchpads the site indexes itself. Every answer says how far back it reaches (`coverage`); a span short of the launch is never the whole. Read from the site (PARABOLIC_API_URL), never from a chain by this server.",
|
|
251
|
+
inputSchema: strictArgs({
|
|
252
|
+
part: z.enum(VENUE_HISTORY_PARTS),
|
|
253
|
+
coin: z.string().optional().describe("The site's reference of the coin, `rhc:pons:0x…` (or `pons:0x…` on this server's chain). Not used with part \"position\"."),
|
|
254
|
+
wallet: z.string().optional().describe("The wallet, for part \"position\" only"),
|
|
255
|
+
tf: z.number().int().optional().describe("Candle size in seconds for part \"chart\": 15, 60, 300, 900 or 3600 (default 3600)"),
|
|
256
|
+
limit: z.number().int().min(1).max(1000).optional().describe("Fills (chart, at most 500) or holders (at most 1,000) to return; default 50"),
|
|
257
|
+
chain: chainArg,
|
|
258
|
+
}),
|
|
259
|
+
annotations: readOnly,
|
|
260
|
+
}, (args) => run(() => { api.assertChain(args.chain); return venueHistory(config.apiUrl, config.chainId, args, opts.fetch); }));
|
|
239
261
|
server.registerTool("parabolic.quote_routed_buy", {
|
|
240
262
|
title: "Quote a routed buy",
|
|
241
263
|
description: `Tokens received for \`quoteIn\` whole units of the coin's quote asset, bought on another launchpad's curve (or its graduated v4 pool) through ParabolicAggregatorRouter, read now: the router's own quote view on a curve, the chain's V4Quoter on a pool. ${routedFee} ${routedRefusals}`,
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Fetch } from "./restapi.js";
|
|
2
|
+
/**
|
|
3
|
+
* `parabolic.venue_history` (docs/52 §5 "API and MCP", P-F): another launchpad's coin as the Parabolic site reads it
|
|
4
|
+
* from the chain's logs, through `GET /api/v1/coins?view=venue-history|venue-holders|venue-claimable` and a wallet's
|
|
5
|
+
* positions through `view=venue-position`. Read-only: nothing here builds or sends a transaction, and nothing here is
|
|
6
|
+
* read from a chain by this server, so every figure is the site's, in the coin's own quote, with how far back it reaches.
|
|
7
|
+
*
|
|
8
|
+
* The site answers 404 for all four while its history of other launchpads' coins is closed (`VENUE_HISTORY_OPEN`), and
|
|
9
|
+
* this says so rather than an empty answer.
|
|
10
|
+
*/
|
|
11
|
+
export type VenueHistoryPart = "chart" | "holders" | "position" | "claimable";
|
|
12
|
+
export declare const VENUE_HISTORY_PARTS: readonly VenueHistoryPart[];
|
|
13
|
+
export declare function venueHistory(apiUrl: string | undefined, chainId: number, args: {
|
|
14
|
+
coin?: string;
|
|
15
|
+
part: VenueHistoryPart;
|
|
16
|
+
tf?: number;
|
|
17
|
+
limit?: number;
|
|
18
|
+
wallet?: string;
|
|
19
|
+
}, fetchImpl?: Fetch): Promise<Record<string, unknown>>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { getAddress, isAddress } from "viem";
|
|
2
|
+
import { parseVenueRefInput } from "./venues.js";
|
|
3
|
+
export const VENUE_HISTORY_PARTS = ["chart", "holders", "position", "claimable"];
|
|
4
|
+
const INTERVALS = [15, 60, 300, 900, 3600];
|
|
5
|
+
export async function venueHistory(apiUrl, chainId, args, fetchImpl = globalThis.fetch) {
|
|
6
|
+
if (!apiUrl)
|
|
7
|
+
throw new Error("PARABOLIC_API_URL is empty, so there is no Parabolic site to ask. A venue coin's history is read from the site's /api/v1/coins views.");
|
|
8
|
+
const base = apiUrl.replace(/\/+$/, "");
|
|
9
|
+
const qs = new URLSearchParams({ chain: String(chainId) });
|
|
10
|
+
if (args.part === "position") {
|
|
11
|
+
if (typeof args.wallet !== "string" || !isAddress(args.wallet, { strict: false }))
|
|
12
|
+
throw new Error(`wallet must be a 0x wallet address, got ${JSON.stringify(args.wallet)}`);
|
|
13
|
+
qs.set("view", "venue-position");
|
|
14
|
+
qs.set("wallet", getAddress(args.wallet));
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
const ref = parseVenueRefInput(String(args.coin ?? ""));
|
|
18
|
+
if (!ref)
|
|
19
|
+
throw new Error("coin must be the site's reference of a coin made on another launchpad: `rhc:pons:0x…` (or `pons:0x…` on this server's chain).");
|
|
20
|
+
qs.set("view", args.part === "chart" ? "venue-history" : args.part === "holders" ? "venue-holders" : "venue-claimable");
|
|
21
|
+
qs.set("venue", ref.venue);
|
|
22
|
+
qs.set("coin", ref.address);
|
|
23
|
+
if (args.part === "chart") {
|
|
24
|
+
const tf = args.tf ?? 3600;
|
|
25
|
+
if (!INTERVALS.includes(tf))
|
|
26
|
+
throw new Error("tf must be one of 15, 60, 300, 900 or 3600 seconds.");
|
|
27
|
+
qs.set("tf", String(tf));
|
|
28
|
+
qs.set("limit", String(Math.min(500, Math.max(1, args.limit ?? 50))));
|
|
29
|
+
}
|
|
30
|
+
if (args.part === "holders")
|
|
31
|
+
qs.set("limit", String(Math.min(1000, Math.max(1, args.limit ?? 50))));
|
|
32
|
+
}
|
|
33
|
+
const url = `${base}/coins?${qs}`;
|
|
34
|
+
const res = await fetchImpl(url, { headers: { accept: "application/json" }, signal: AbortSignal.timeout(10_000) });
|
|
35
|
+
const body = (await res.json().catch(() => ({})));
|
|
36
|
+
if (res.status === 404)
|
|
37
|
+
throw new Error(`The site answered 404 for GET ${url}: ${String(body.error ?? "no such coin, or the history of other launchpads' coins is not open there")}.`);
|
|
38
|
+
if (!res.ok)
|
|
39
|
+
throw new Error(`GET ${url} answered ${res.status}${body.error ? `: ${String(body.error)}` : ""}`);
|
|
40
|
+
const source = `Parabolic site: GET ${url}`;
|
|
41
|
+
const coverage = body.coverage;
|
|
42
|
+
const reach = coverage ? (coverage.complete ? "Every fill and transfer since the coin's launch was read." : `Read back to block ${coverage.from ?? "?"} so far, not yet to the launch (block ${coverage.launch}); the site reads further on each ask.`) : undefined;
|
|
43
|
+
if (args.part === "chart") {
|
|
44
|
+
const candles = body.candles ?? [];
|
|
45
|
+
return {
|
|
46
|
+
coin: body.coin, venue: body.venue, chain: body.chain, unit: body.unit, tf: body.tf, fills: body.fills, complete: body.complete, coverage,
|
|
47
|
+
candles: candles.slice(-200).map((c) => ({ t: c[0], open: c[1], high: c[2], low: c[3], close: c[4], volume: c[5], trades: c[6] })),
|
|
48
|
+
trades: body.trades, source,
|
|
49
|
+
notes: [reach, "Prices and volumes are in the coin's own quote (`unit`), from each trade's own amounts; nothing here prices a trade. Venue figures never count toward Parabolic's totals."].filter(Boolean),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
if (args.part === "holders") {
|
|
53
|
+
return {
|
|
54
|
+
coin: body.coin, venue: body.venue, chain: body.chain, count: body.count, complete: body.complete, supply: body.supply, confirmedAt: body.confirmedAt, facts: body.facts, holders: body.holders, coverage, source,
|
|
55
|
+
notes: [reach, "Balances are each address's transfers folded since launch; the largest are confirmed with balanceOf at the chain's head (`confirmed`). `role` names the coin's own contracts (its curve, its pool), never counted as wallets."].filter(Boolean),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
if (args.part === "claimable") {
|
|
59
|
+
return { ...body, source, notes: ["The fee recipient's whole balance on the launchpad's own escrow (every coin of theirs there), read-only: it is claimed on the launchpad, never through Parabolic."] };
|
|
60
|
+
}
|
|
61
|
+
return { ...body, source, notes: ["Positions in the launchpads the site indexes itself: balances across their listed coins, trades routed through Parabolic's router, and fills from a coin's history where it reaches the launch. A coin outside the listed set and never routed is not found here."] };
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=venue-history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"venue-history.js","sourceRoot":"","sources":["../src/venue-history.ts"],"names":[],"mappings":"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"}
|
package/dist/venues.d.ts
CHANGED
|
@@ -47,3 +47,52 @@ export declare const venueOn: (venue: VenueKey, chainId: number) => VenueChain |
|
|
|
47
47
|
export declare const VENUE_ENV_VARS: readonly string[];
|
|
48
48
|
/** The venue subgraph endpoints set in `env`, keyed by venue, for the chain this server serves. */
|
|
49
49
|
export declare function venueSubgraphsFrom(env: Record<string, string | undefined>, chainId: number): Partial<Record<VenueKey, string>>;
|
|
50
|
+
/**
|
|
51
|
+
* A coin made on another launchpad, as the site writes its reference: `<chain>:<venue>:0x…` (`rhc:pons:0x…`,
|
|
52
|
+
* `arc:solonpad:0x…`), or `<venue>:0x…` on this server's chain. Undefined for anything else, so a plain address or a
|
|
53
|
+
* Parabolic ref (`rhc:0x…`) keeps the path it has always taken. The venue is any lowercase word the site might know
|
|
54
|
+
* (it knows more launchpads than this package routes); the site answers a 400 for one it does not read there.
|
|
55
|
+
*/
|
|
56
|
+
export type VenueRefInput = {
|
|
57
|
+
chainPart?: string;
|
|
58
|
+
venue: string;
|
|
59
|
+
address: Address;
|
|
60
|
+
};
|
|
61
|
+
export declare function parseVenueRefInput(input: string): VenueRefInput | undefined;
|
|
62
|
+
/** The coin as the site's public API answers it (web/lib/api/coins.ts `serializeCoin`), the fields this package reads. */
|
|
63
|
+
export type SiteVenueCoin = {
|
|
64
|
+
chain?: string;
|
|
65
|
+
venue?: string;
|
|
66
|
+
address: string;
|
|
67
|
+
curve?: string | null;
|
|
68
|
+
name: string;
|
|
69
|
+
ticker: string;
|
|
70
|
+
creator: string | null;
|
|
71
|
+
logo?: string | null;
|
|
72
|
+
description?: string | null;
|
|
73
|
+
pair: string;
|
|
74
|
+
pairToken?: string | null;
|
|
75
|
+
quoteDecimals?: number | null;
|
|
76
|
+
quoteDollar?: boolean | null;
|
|
77
|
+
status: "climbing" | "graduated";
|
|
78
|
+
price: number;
|
|
79
|
+
marketCap: number;
|
|
80
|
+
raised: number;
|
|
81
|
+
threshold: number;
|
|
82
|
+
progressPct: number;
|
|
83
|
+
holders?: number | null;
|
|
84
|
+
volume24h?: number | null;
|
|
85
|
+
change24h?: number | null;
|
|
86
|
+
tradeCount?: number | null;
|
|
87
|
+
createdAt?: number | null;
|
|
88
|
+
lastTradeAt?: number | null;
|
|
89
|
+
graduatedAt?: number | null;
|
|
90
|
+
poolId?: string | null;
|
|
91
|
+
url?: string;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* One venue coin from the site (GET <api>/coins/{address}?chain=<key>&venue=<id>), which reads the launchpad's index or
|
|
95
|
+
* subgraph and, for a coin neither holds, the launchpad's own factory at the head. Undefined on a 404 (no such coin on
|
|
96
|
+
* that launchpad); any other failure throws a sentence naming the site's answer, never the URL's query.
|
|
97
|
+
*/
|
|
98
|
+
export declare function fetchSiteVenueCoin(apiUrl: string, chainKey: string, venue: string, address: Address, fetchImpl?: typeof fetch): Promise<SiteVenueCoin | undefined>;
|
package/dist/venues.js
CHANGED
|
@@ -41,4 +41,32 @@ export function venueSubgraphsFrom(env, chainId) {
|
|
|
41
41
|
}
|
|
42
42
|
return out;
|
|
43
43
|
}
|
|
44
|
+
export function parseVenueRefInput(input) {
|
|
45
|
+
const parts = String(input ?? "").trim().split(":");
|
|
46
|
+
if (parts.length < 2 || parts.length > 3)
|
|
47
|
+
return undefined;
|
|
48
|
+
const address = parts[parts.length - 1];
|
|
49
|
+
const venue = parts[parts.length - 2].toLowerCase();
|
|
50
|
+
if (!/^0x[0-9a-fA-F]{40}$/.test(address) || !/^[a-z]{2,24}$/.test(venue) || venue === "parabolic")
|
|
51
|
+
return undefined;
|
|
52
|
+
// `rhc:0x…` is a chain prefix, not a venue: a two-part ref whose first part names a chain is Parabolic's.
|
|
53
|
+
if (parts.length === 2 && ["arc", "rhc", "base", "eth", "bnb", "sol", "arct", "anvil"].includes(venue))
|
|
54
|
+
return undefined;
|
|
55
|
+
return { ...(parts.length === 3 ? { chainPart: parts[0].toLowerCase() } : {}), venue, address: address };
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* One venue coin from the site (GET <api>/coins/{address}?chain=<key>&venue=<id>), which reads the launchpad's index or
|
|
59
|
+
* subgraph and, for a coin neither holds, the launchpad's own factory at the head. Undefined on a 404 (no such coin on
|
|
60
|
+
* that launchpad); any other failure throws a sentence naming the site's answer, never the URL's query.
|
|
61
|
+
*/
|
|
62
|
+
export async function fetchSiteVenueCoin(apiUrl, chainKey, venue, address, fetchImpl = fetch) {
|
|
63
|
+
const base = apiUrl.replace(/\/+$/, "");
|
|
64
|
+
const res = await fetchImpl(`${base}/coins/${address}?chain=${encodeURIComponent(chainKey)}&venue=${encodeURIComponent(venue)}`, { headers: { accept: "application/json" }, signal: AbortSignal.timeout(10_000) });
|
|
65
|
+
if (res.status === 404)
|
|
66
|
+
return undefined;
|
|
67
|
+
const body = (await res.json().catch(() => ({})));
|
|
68
|
+
if (!res.ok || !body.coin)
|
|
69
|
+
throw new Error(`The Parabolic site could not read that coin (HTTP ${res.status}${body.error ? `: ${body.error}` : ""}).`);
|
|
70
|
+
return body.coin;
|
|
71
|
+
}
|
|
44
72
|
//# sourceMappingURL=venues.js.map
|
package/dist/venues.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"venues.js","sourceRoot":"","sources":["../src/venues.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"venues.js","sourceRoot":"","sources":["../src/venues.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@parabolicfamily/mcp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "MCP server for Parabolic, a bonding-curve token launchpad: discover coins, quote curve trades and build unsigned transactions. Never holds keys.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"prepack": "npm run build"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
33
|
+
"@modelcontextprotocol/sdk": "^1.32.1",
|
|
34
34
|
"viem": "^2.56.3",
|
|
35
35
|
"zod": "^4.5.4"
|
|
36
36
|
},
|
package/src/abi.ts
CHANGED
|
@@ -38,6 +38,3 @@ export const tokenAbi: Abi = loadAbi("ParabolicLauncherToken");
|
|
|
38
38
|
export const memoRouterAbi: Abi = loadAbi("ParabolicMemoRouter");
|
|
39
39
|
/** docs/33 §A: routed trades on another launchpad's coin (src/routed.ts). */
|
|
40
40
|
export const aggregatorRouterAbi: Abi = loadAbi("ParabolicAggregatorRouter");
|
|
41
|
-
|
|
42
|
-
/** Names of all functions in an ABI (used to document what the factory can and cannot enumerate). */
|
|
43
|
-
export const functionNames = (abi: Abi): string[] => abi.flatMap((e) => (e.type === "function" ? [e.name] : []));
|
package/src/coins.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { NATIVE_QUOTE } from "./config.js";
|
|
|
4
4
|
import { toNumber } from "./curve.js";
|
|
5
5
|
import { quoteBlock, quoteUnitByAddress, quoteUnitOf, type QuoteBlock } from "./quote-unit.js";
|
|
6
6
|
import type { GqlCoin } from "./subgraph.js";
|
|
7
|
+
import { shortAddr } from "./format.js";
|
|
7
8
|
|
|
8
9
|
export type StatusKey = "climbing" | "graduated";
|
|
9
10
|
export const SORT_KEYS = ["trending", "new", "near_graduation", "market_cap"] as const;
|
|
@@ -14,7 +15,8 @@ export type CoinSummary = {
|
|
|
14
15
|
curve: Address;
|
|
15
16
|
name: string;
|
|
16
17
|
ticker: string;
|
|
17
|
-
|
|
18
|
+
/** The launching wallet; null for another launchpad's coin whose launch named none (the site publishes null). */
|
|
19
|
+
creator: Address | null;
|
|
18
20
|
/**
|
|
19
21
|
* What the coin's money is called — the asset's own symbol, whatever it is.
|
|
20
22
|
*
|
|
@@ -129,7 +131,7 @@ export function summaryFromGql(g: GqlCoin, now = Math.floor(Date.now() / 1000),
|
|
|
129
131
|
and until 20 September 2026 it was fed into `quoteUnitOf`, a SYMBOL lookup, which no shortened address can
|
|
130
132
|
ever match: USDG, a dollar, was published to every model as `dollar: false`. */
|
|
131
133
|
const byAddress = native ? undefined : quoteUnitByAddress(g.pairToken, chainId);
|
|
132
|
-
const quoteSymbol = native ? gas?.symbol ?? "" : byAddress?.symbol ??
|
|
134
|
+
const quoteSymbol = native ? gas?.symbol ?? "" : byAddress?.symbol ?? shortAddr(g.pairToken);
|
|
133
135
|
return {
|
|
134
136
|
address: getAddress(g.id),
|
|
135
137
|
curve: getAddress(g.curve),
|
package/src/docs.ts
CHANGED
|
@@ -89,7 +89,7 @@ export function docsText(config: Config): string {
|
|
|
89
89
|
// Read from the registry and the deployment table rather than written again (23 Sep 2026, F36):
|
|
90
90
|
// this line said mainnet's id was "unofficial until Circle publishes it" for a week after the
|
|
91
91
|
// public launch, on the one surface whose whole job is to be a model's system prompt.
|
|
92
|
-
`- Mainnet: chain id 5042, RPC ${DEPLOYMENTS[5042].rpcUrl}, explorer ${chainFor(5042)?.explorer}, live since 16 Sep 2026 (nine contracts, source
|
|
92
|
+
`- Mainnet: chain id 5042, RPC ${DEPLOYMENTS[5042].rpcUrl}, explorer ${chainFor(5042)?.explorer}, live since 16 Sep 2026 (nine contracts, each source-matched on Sourcify). Testnet: chain id 5042002, RPC ${DEPLOYMENTS[5042002].rpcUrl}, explorer ${chainFor(5042002)?.explorer}.`,
|
|
93
93
|
`- USDC is the native gas asset (18-decimal native accounting); its 6-decimal ERC-20 view is ${USDC_VIEW}. Base fee target ≈ $0.01, floor 20 Gwei, ceiling 20,000 Gwei (EWMA-smoothed).`,
|
|
94
94
|
"- Malachite BFT consensus, deterministic finality < 1 s, proof of authority with 12 institutional validators. Osaka EVM on Reth. PREVRANDAO = 0 (no on-chain randomness). Mempool not observable.",
|
|
95
95
|
`- System contracts on testnet: Memo (${ARC_MEMO_DEFAULT}; EOA-only, no value forwarding), Multicall3From, Permit2 (canonical), CREATE2, CCTP v2 (domain 26), Gateway, EURC, USYC, StableFX FxEscrow.`,
|
|
@@ -112,7 +112,7 @@ export function docsText(config: Config): string {
|
|
|
112
112
|
"THIS SERVER",
|
|
113
113
|
`- Chain: ${chainName(config.chainId)} (${config.chainId}), RPC ${endpointHost(config.rpcUrl)}.`,
|
|
114
114
|
`- Factory: ${set(config.factory)} · Memo router: ${set(config.memoRouter)} · Subgraph: ${config.subgraphUrl ? endpointHost(config.subgraphUrl) : "(not configured)"} · EURC: ${set(config.eurc)} · Hook: ${config.hook ?? "(read from factory)"} · Launch config id: ${config.launchConfigId}.`,
|
|
115
|
-
"- Tools: parabolic.list_coins, parabolic.get_coin, parabolic.quote_buy, parabolic.quote_sell, parabolic.build_buy_tx, parabolic.build_sell_tx, parabolic.build_launch_tx, parabolic.protocol_stats, parabolic.agent_status, parabolic.build_register_agent_tx, parabolic.check_ticker, parabolic.referral_status, parabolic.list_venue_coins, parabolic.quote_routed_buy, parabolic.quote_routed_sell, parabolic.build_routed_buy_tx, parabolic.build_routed_sell_tx, parabolic.docs. Resources: parabolic://docs/parameters, parabolic://coins/{address}.",
|
|
115
|
+
"- Tools: parabolic.list_coins, parabolic.get_coin, parabolic.quote_buy, parabolic.quote_sell, parabolic.build_buy_tx, parabolic.build_sell_tx, parabolic.build_launch_tx, parabolic.protocol_stats, parabolic.agent_status, parabolic.build_register_agent_tx, parabolic.check_ticker, parabolic.referral_status, parabolic.list_venue_coins, parabolic.venue_history, parabolic.quote_routed_buy, parabolic.quote_routed_sell, parabolic.build_routed_buy_tx, parabolic.build_routed_sell_tx, parabolic.docs. Resources: parabolic://docs/parameters, parabolic://coins/{address}.",
|
|
116
116
|
"- check_ticker asks the Parabolic site (PARABOLIC_API_URL's site, route /api/v1/studio/ticker) whether a coin already carries a symbol on any chain the site serves and whether <ticker>.parabolic.family is free. Advice, not a gate: nothing on chain enforces a unique symbol. The hostname is the one exclusive thing and belongs to the oldest coin with the ticker.",
|
|
117
117
|
"- referral_status reads one wallet's referral payouts from the Parabolic site (route /api/v1/referrals/{account}): credited, published in the latest weekly root, claimed and claimable per asset, never summed, and the claim(asset, account, cumulative, proof) arguments. The referral distributor pays the account and nobody else. Read-only.",
|
|
118
118
|
"- It never holds keys, signs, sends or broadcasts. build_* tools return unsigned { to, data, value, chainId } for the caller's wallet. Quotes are read from chain at call time and can move before a transaction lands.",
|
|
@@ -140,8 +140,9 @@ function routedSection(config: Config): string[] {
|
|
|
140
140
|
return [
|
|
141
141
|
"OTHER LAUNCHPADS' COINS (routed through Parabolic)",
|
|
142
142
|
"- list_venue_coins lists coins made on another launchpad from that launchpad's subgraph; quote_routed_buy / quote_routed_sell and build_routed_buy_tx / build_routed_sell_tx trade them through ParabolicAggregatorRouter.",
|
|
143
|
+
"- venue_history reads one such coin as the Parabolic site reads it from the chain's logs: its candles and fills, its holders since launch, its fee recipient's escrow balance on that launchpad, or a wallet's positions across the launchpads the site indexes; every answer says how far back it reaches.",
|
|
143
144
|
"- Such a coin lives on the other launchpad's contracts, not Parabolic's: its curve or pool, its own fee and creator tax, and its snipe tax (keyed on the RECIPIENT on pons) are that launchpad's. Parabolic's own coins never go through the router.",
|
|
144
|
-
"- The routed fee: the router takes Parabolic's fee on top of the launchpad's own, from the input of a buy and from the venue's payout on a sell, and pushes it to the treasury in the same call. It is the router's `defaultFeeBps`, read at every call: 60 bps (0.6%) at deploy, the Free tier's; Pro (30) and
|
|
145
|
+
"- The routed fee: the router takes Parabolic's fee on top of the launchpad's own, from the input of a buy and from the venue's payout on a sell, and pushes it to the treasury in the same call. It is the router's `defaultFeeBps`, read at every call: 60 bps (0.6%) at deploy, the Free tier's; Pro (30) and Ultra (10) are vouchers the Parabolic site signs for one wallet, and this server sends none. No owner call can raise it above 100 bps.",
|
|
145
146
|
"- A build sends minOut from a fresh quote less slippage, maxSnipeTaxBps 0 unless raised to the tax the launchpad charges now, recipient = from, and a deadline five minutes past the chain's head block. An ERC-20 input (a USDG-quoted buy, every sell) comes with an approval of the router for exactly the amount, because the site's one-shot Permit2 transfer is a signature this server cannot make.",
|
|
146
147
|
`- Router on this chain: ${router ? `${router} (${config.aggregatorSource === "env" ? "PARABOLIC_AGGREGATOR_ROUTER, not in the deployment record: a rehearsal" : "from the deployment record"})` : recorded ? recorded.address : "none. This chain's deployment record carries no `aggregator` key yet, so every routed tool refuses rather than build against a guessed address"}.`,
|
|
147
148
|
`- Launchpads on this chain: ${here.length ? here.join("; ") : "none this server knows"}.`,
|
package/src/format.ts
CHANGED
|
@@ -50,12 +50,13 @@ export const endpointHost = (url: string): string => {
|
|
|
50
50
|
* and body, so a user who set a keyed endpoint would otherwise have that key copied into any failed
|
|
51
51
|
* call. Our own thrown messages carry no URL and pass through untouched; anything else keeps its first
|
|
52
52
|
* line, which is where the actual cause is ("HTTP request failed. Status: 401"), with URLs masked.
|
|
53
|
-
* The
|
|
53
|
+
* The whole error also goes to stderr, which is where a server log would come from, with every URL cut to its
|
|
54
|
+
* host first: a keyed endpoint carries its key in the path, and an operator's log is still a log (MCP-1).
|
|
54
55
|
*/
|
|
55
56
|
export function safeMessage(e: unknown): string {
|
|
56
57
|
const raw = e instanceof Error ? e.message : String(e);
|
|
57
58
|
if (!/https?:\/\//.test(raw)) return raw;
|
|
58
|
-
console.error("[parabolic-mcp]", raw);
|
|
59
|
+
console.error("[parabolic-mcp]", raw.replace(/https?:\/\/[^\s"']+/g, (u) => `<endpoint ${endpointHost(u)}>`));
|
|
59
60
|
const lines = raw.split("\n").map((l) => l.trim()).filter(Boolean);
|
|
60
61
|
// viem puts the headline first and the actual cause on a `Details:` line further down, past the
|
|
61
62
|
// URL and the request body. Taking the first two lines kept the headline and the URL and dropped
|