@sharpe-terminal/mcp-server 1.2.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 +193 -0
- package/dist/api-client.d.ts +13 -0
- package/dist/api-client.d.ts.map +1 -0
- package/dist/api-client.js +105 -0
- package/dist/api-client.js.map +1 -0
- package/dist/composite-tools.d.ts +14 -0
- package/dist/composite-tools.d.ts.map +1 -0
- package/dist/composite-tools.js +520 -0
- package/dist/composite-tools.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +243 -0
- package/dist/index.js.map +1 -0
- package/dist/resources.d.ts +229 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +132 -0
- package/dist/resources.js.map +1 -0
- package/dist/tool-runtime.d.ts +37 -0
- package/dist/tool-runtime.d.ts.map +1 -0
- package/dist/tool-runtime.js +127 -0
- package/dist/tool-runtime.js.map +1 -0
- package/dist/tools.d.ts +503 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +861 -0
- package/dist/tools.js.map +1 -0
- package/package.json +43 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
|
+
import { createRequire } from "node:module";
|
|
5
|
+
import { z } from "zod/v3";
|
|
6
|
+
import { createApiCaller } from "./api-client.js";
|
|
7
|
+
import { TOOL_DEFS } from "./tools.js";
|
|
8
|
+
import { analyzeCoin, marketBriefing, findOpportunities, } from "./composite-tools.js";
|
|
9
|
+
import { FUTURES_CHARTS, EXCHANGES_DATA, NARRATIVE_SLUGS, ECOSYSTEM_SLUGS, } from "./resources.js";
|
|
10
|
+
import { API_TOOL_OUTPUT_SCHEMA, READ_ONLY_MARKET_DATA_TOOL_ANNOTATIONS, TEXT_TOOL_OUTPUT_SCHEMA, toTextToolResult, toToolErrorResult, toToolResult, truncateResponse, } from "./tool-runtime.js";
|
|
11
|
+
const require = createRequire(import.meta.url);
|
|
12
|
+
const packageJson = require("../package.json");
|
|
13
|
+
const SERVER_VERSION = packageJson.version;
|
|
14
|
+
const COIN_PARAM_SCHEMA = {
|
|
15
|
+
coin: z.string().describe("Coin ticker (e.g. BTC, ETH, SOL)"),
|
|
16
|
+
};
|
|
17
|
+
const callApi = createApiCaller({
|
|
18
|
+
apiKey: process.env.SHARPE_API_KEY,
|
|
19
|
+
apiBaseUrl: process.env.SHARPE_API_URL || "https://www.sharpe.ai",
|
|
20
|
+
fallbackBaseUrl: process.env.SHARPE_FREE_URL || "https://www.sharpe.ai",
|
|
21
|
+
userAgent: `sharpe-mcp-server/${SERVER_VERSION}`,
|
|
22
|
+
});
|
|
23
|
+
function titleFromToolName(name) {
|
|
24
|
+
return name
|
|
25
|
+
.split("_")
|
|
26
|
+
.filter((part) => part !== "get")
|
|
27
|
+
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
|
|
28
|
+
.join(" ");
|
|
29
|
+
}
|
|
30
|
+
async function main() {
|
|
31
|
+
const server = new McpServer({
|
|
32
|
+
name: "sharpe-mcp-server",
|
|
33
|
+
version: SERVER_VERSION,
|
|
34
|
+
});
|
|
35
|
+
// Register each endpoint-backed tool from the definitions.
|
|
36
|
+
for (const def of TOOL_DEFS) {
|
|
37
|
+
const { name, description, schema, apiPath, fallbackPath, postProcess } = def;
|
|
38
|
+
const hasParams = Object.keys(schema).length > 0;
|
|
39
|
+
if (hasParams) {
|
|
40
|
+
server.registerTool(name, {
|
|
41
|
+
title: titleFromToolName(name),
|
|
42
|
+
description,
|
|
43
|
+
inputSchema: schema,
|
|
44
|
+
outputSchema: API_TOOL_OUTPUT_SCHEMA,
|
|
45
|
+
annotations: READ_ONLY_MARKET_DATA_TOOL_ANNOTATIONS,
|
|
46
|
+
}, async (args) => {
|
|
47
|
+
try {
|
|
48
|
+
const typedArgs = args;
|
|
49
|
+
const raw = await callApi(apiPath, fallbackPath, typedArgs);
|
|
50
|
+
const filtered = postProcess ? postProcess(raw, typedArgs) : raw;
|
|
51
|
+
return toToolResult(truncateResponse(filtered));
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
return toToolErrorResult(err);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
server.registerTool(name, {
|
|
60
|
+
title: titleFromToolName(name),
|
|
61
|
+
description,
|
|
62
|
+
outputSchema: API_TOOL_OUTPUT_SCHEMA,
|
|
63
|
+
annotations: READ_ONLY_MARKET_DATA_TOOL_ANNOTATIONS,
|
|
64
|
+
}, async () => {
|
|
65
|
+
try {
|
|
66
|
+
const raw = await callApi(apiPath, fallbackPath, {});
|
|
67
|
+
const filtered = postProcess ? postProcess(raw, {}) : raw;
|
|
68
|
+
return toToolResult(truncateResponse(filtered));
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
return toToolErrorResult(err);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// ── Composite tools ──────────────────────────────────────────────────
|
|
77
|
+
server.registerTool("analyze_coin", {
|
|
78
|
+
title: "Analyze Coin",
|
|
79
|
+
description: "Comprehensive single-coin analysis combining funding rates, futures OI, and AI price prediction into one consolidated view.",
|
|
80
|
+
inputSchema: COIN_PARAM_SCHEMA,
|
|
81
|
+
outputSchema: TEXT_TOOL_OUTPUT_SCHEMA,
|
|
82
|
+
annotations: READ_ONLY_MARKET_DATA_TOOL_ANNOTATIONS,
|
|
83
|
+
}, async (args) => {
|
|
84
|
+
try {
|
|
85
|
+
const coin = typeof args.coin === "string" ? args.coin : "BTC";
|
|
86
|
+
const text = await analyzeCoin(callApi, coin);
|
|
87
|
+
return toTextToolResult(text, { coin: coin.toUpperCase() });
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
return toToolErrorResult(err);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
server.registerTool("market_briefing", {
|
|
94
|
+
title: "Market Briefing",
|
|
95
|
+
description: "Comprehensive market briefing combining market overview, top narratives, and funding rate summary.",
|
|
96
|
+
outputSchema: TEXT_TOOL_OUTPUT_SCHEMA,
|
|
97
|
+
annotations: READ_ONLY_MARKET_DATA_TOOL_ANNOTATIONS,
|
|
98
|
+
}, async () => {
|
|
99
|
+
try {
|
|
100
|
+
const text = await marketBriefing(callApi);
|
|
101
|
+
return toTextToolResult(text);
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
return toToolErrorResult(err);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
server.registerTool("find_opportunities", {
|
|
108
|
+
title: "Find Opportunities",
|
|
109
|
+
description: "Scan for the best funding rate arbitrage opportunities across all exchanges, combining spot-perp basis trades and cross-exchange funding arb.",
|
|
110
|
+
outputSchema: TEXT_TOOL_OUTPUT_SCHEMA,
|
|
111
|
+
annotations: READ_ONLY_MARKET_DATA_TOOL_ANNOTATIONS,
|
|
112
|
+
}, async () => {
|
|
113
|
+
try {
|
|
114
|
+
const text = await findOpportunities(callApi);
|
|
115
|
+
return toTextToolResult(text);
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
return toToolErrorResult(err);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
// ── Resources ─────────────────────────────────────────────────────────
|
|
122
|
+
server.registerResource("futures-charts", "sharpe://charts/futures", {
|
|
123
|
+
description: "List of all 19 valid futures chart IDs with descriptions. Use these IDs with get_futures_data.",
|
|
124
|
+
mimeType: "application/json",
|
|
125
|
+
}, async (uri) => ({
|
|
126
|
+
contents: [
|
|
127
|
+
{
|
|
128
|
+
uri: uri.href,
|
|
129
|
+
mimeType: "application/json",
|
|
130
|
+
text: JSON.stringify(FUTURES_CHARTS, null, 2),
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
}));
|
|
134
|
+
server.registerResource("exchanges", "sharpe://exchanges", {
|
|
135
|
+
description: "Supported exchanges per product (funding rates, futures).",
|
|
136
|
+
mimeType: "application/json",
|
|
137
|
+
}, async (uri) => ({
|
|
138
|
+
contents: [
|
|
139
|
+
{
|
|
140
|
+
uri: uri.href,
|
|
141
|
+
mimeType: "application/json",
|
|
142
|
+
text: JSON.stringify(EXCHANGES_DATA, null, 2),
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
}));
|
|
146
|
+
server.registerResource("narratives", "sharpe://narratives", {
|
|
147
|
+
description: "All 22 narrative slugs for use with get_narratives. Pass slug as the 'narrative' parameter.",
|
|
148
|
+
mimeType: "application/json",
|
|
149
|
+
}, async (uri) => ({
|
|
150
|
+
contents: [
|
|
151
|
+
{
|
|
152
|
+
uri: uri.href,
|
|
153
|
+
mimeType: "application/json",
|
|
154
|
+
text: JSON.stringify(NARRATIVE_SLUGS, null, 2),
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
}));
|
|
158
|
+
server.registerResource("ecosystems", "sharpe://ecosystems", {
|
|
159
|
+
description: "All 23 ecosystem slugs for use with get_ecosystems. Pass slug as the 'ecosystem' parameter.",
|
|
160
|
+
mimeType: "application/json",
|
|
161
|
+
}, async (uri) => ({
|
|
162
|
+
contents: [
|
|
163
|
+
{
|
|
164
|
+
uri: uri.href,
|
|
165
|
+
mimeType: "application/json",
|
|
166
|
+
text: JSON.stringify(ECOSYSTEM_SLUGS, null, 2),
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
}));
|
|
170
|
+
// ── Prompts ───────────────────────────────────────────────────────────
|
|
171
|
+
server.registerPrompt("market_analysis", {
|
|
172
|
+
title: "Market Analysis",
|
|
173
|
+
description: "A guided prompt template for performing a comprehensive crypto market analysis.",
|
|
174
|
+
}, async () => ({
|
|
175
|
+
messages: [
|
|
176
|
+
{
|
|
177
|
+
role: "user",
|
|
178
|
+
content: {
|
|
179
|
+
type: "text",
|
|
180
|
+
text: "Perform a comprehensive crypto market analysis using Sharpe data.\n\n" +
|
|
181
|
+
"Follow these steps:\n\n" +
|
|
182
|
+
"1. **Market Overview** — Call market_briefing to get the current state of the market.\n" +
|
|
183
|
+
" Summarize: total market cap trend, BTC dominance, Fear & Greed, and top movers.\n\n" +
|
|
184
|
+
"2. **Derivatives Health** — Call get_derivatives_overview.\n" +
|
|
185
|
+
" Analyze: total OI trend, funding rate skew, and leverage levels.\n\n" +
|
|
186
|
+
"3. **Sector Rotation** — Call get_narratives to see which sectors are leading/lagging.\n" +
|
|
187
|
+
" Identify: top 3 outperforming and bottom 3 underperforming narratives.\n\n" +
|
|
188
|
+
"4. **Ecosystem Flows** — Call get_ecosystems to compare chain activity.\n" +
|
|
189
|
+
" Highlight: which chains are gaining TVL and volume.\n\n" +
|
|
190
|
+
"5. **Opportunities** — Call find_opportunities for the best arb trades.\n" +
|
|
191
|
+
" List: top 3 highest-APR opportunities with risk notes.\n\n" +
|
|
192
|
+
"6. **Synthesis** — Combine all signals into a coherent market thesis.\n" +
|
|
193
|
+
" Deliver: 1-paragraph summary + bullish/bearish/neutral verdict + key risks.\n\n" +
|
|
194
|
+
"Format the output as a structured report with headers and bullet points.",
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
],
|
|
198
|
+
}));
|
|
199
|
+
server.registerPrompt("coin_deep_dive", {
|
|
200
|
+
title: "Coin Deep Dive",
|
|
201
|
+
description: "A guided prompt template for analyzing a specific coin in depth across all data dimensions.",
|
|
202
|
+
argsSchema: COIN_PARAM_SCHEMA,
|
|
203
|
+
}, async (args) => {
|
|
204
|
+
const coin = typeof args.coin === "string" ? args.coin : "BTC";
|
|
205
|
+
return {
|
|
206
|
+
messages: [
|
|
207
|
+
{
|
|
208
|
+
role: "user",
|
|
209
|
+
content: {
|
|
210
|
+
type: "text",
|
|
211
|
+
text: `Perform a deep-dive analysis on ${coin.toUpperCase()} using Sharpe data.\n\n` +
|
|
212
|
+
"Follow these steps:\n\n" +
|
|
213
|
+
`1. **Quick Analysis** — Call analyze_coin with coin='${coin.toUpperCase()}' for a consolidated view.\n\n` +
|
|
214
|
+
`2. **Futures Deep Dive** — Call get_futures_data for ${coin.toUpperCase()} with these charts:\n` +
|
|
215
|
+
" - oi-stacked (OI trend across exchanges)\n" +
|
|
216
|
+
" - long-short-ratio (positioning)\n" +
|
|
217
|
+
" - liquidations (if available)\n" +
|
|
218
|
+
" - annualized-basis (rolling 3M dated basis)\n" +
|
|
219
|
+
" Analyze: Is OI rising with price? Are traders net long or short? Is 3M basis elevated?\n\n" +
|
|
220
|
+
`3. **Funding History** — Call get_funding_rates with type='history', coin='${coin.toUpperCase()}', days=30.\n` +
|
|
221
|
+
" Analyze: Is funding persistently positive/negative? Any recent spikes?\n\n" +
|
|
222
|
+
`4. **Correlation** — Call get_correlation_matrix to see how ${coin.toUpperCase()} correlates with BTC, ETH, and TradFi.\n\n` +
|
|
223
|
+
"5. **Price Prediction** — Call get_price_prediction for the AI model's take.\n\n" +
|
|
224
|
+
"6. **Synthesis** — Combine all signals:\n" +
|
|
225
|
+
` - Overall bias for ${coin.toUpperCase()} (bullish/bearish/neutral)\n` +
|
|
226
|
+
" - Key levels to watch (support/resistance from price action)\n" +
|
|
227
|
+
" - Risk factors (high leverage, extreme funding, vol crush potential)\n" +
|
|
228
|
+
" - Recommended trades (if any arb opportunities exist)\n\n" +
|
|
229
|
+
"Format as a structured research note with headers, key metrics in bold, and a summary box.",
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
],
|
|
233
|
+
};
|
|
234
|
+
});
|
|
235
|
+
// Connect via stdio transport for CLI usage
|
|
236
|
+
const transport = new StdioServerTransport();
|
|
237
|
+
await server.connect(transport);
|
|
238
|
+
}
|
|
239
|
+
main().catch((err) => {
|
|
240
|
+
process.stderr.write(`Fatal error starting MCP server: ${err}\n`);
|
|
241
|
+
process.exit(1);
|
|
242
|
+
});
|
|
243
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static resource data for MCP resources.
|
|
3
|
+
* Mirrors the Python server's FUTURES_CHARTS, etc.
|
|
4
|
+
*/
|
|
5
|
+
export declare const FUTURES_CHARTS: readonly [{
|
|
6
|
+
readonly id: "perpetual-price";
|
|
7
|
+
readonly description: "Perpetual futures price (OHLCV) over time";
|
|
8
|
+
}, {
|
|
9
|
+
readonly id: "liquidations";
|
|
10
|
+
readonly description: "Long and short liquidation volumes over time";
|
|
11
|
+
}, {
|
|
12
|
+
readonly id: "oi-stacked";
|
|
13
|
+
readonly description: "Open interest stacked by exchange over time";
|
|
14
|
+
}, {
|
|
15
|
+
readonly id: "oi-change";
|
|
16
|
+
readonly description: "Open interest change (delta) over time";
|
|
17
|
+
}, {
|
|
18
|
+
readonly id: "oi-daily-change";
|
|
19
|
+
readonly description: "Daily open interest change bars";
|
|
20
|
+
}, {
|
|
21
|
+
readonly id: "oi-snapshot";
|
|
22
|
+
readonly description: "Current open interest snapshot by exchange (bar chart)";
|
|
23
|
+
}, {
|
|
24
|
+
readonly id: "oi-volume";
|
|
25
|
+
readonly description: "Open interest vs volume overlay";
|
|
26
|
+
}, {
|
|
27
|
+
readonly id: "volume-snapshot";
|
|
28
|
+
readonly description: "Current volume snapshot by exchange (bar chart)";
|
|
29
|
+
}, {
|
|
30
|
+
readonly id: "volume-history";
|
|
31
|
+
readonly description: "Historical dollar volume by exchange";
|
|
32
|
+
}, {
|
|
33
|
+
readonly id: "cvd";
|
|
34
|
+
readonly description: "Cumulative volume delta (buy vs sell pressure)";
|
|
35
|
+
}, {
|
|
36
|
+
readonly id: "long-short-ratio";
|
|
37
|
+
readonly description: "Long/short account ratio over time";
|
|
38
|
+
}, {
|
|
39
|
+
readonly id: "top-trader-ls";
|
|
40
|
+
readonly description: "Top trader long/short ratio (Binance and OKX)";
|
|
41
|
+
}, {
|
|
42
|
+
readonly id: "returns-session";
|
|
43
|
+
readonly description: "Price returns broken down by trading session (US/EU/APAC)";
|
|
44
|
+
}, {
|
|
45
|
+
readonly id: "returns-heatmap";
|
|
46
|
+
readonly description: "Returns heatmap by hour and day of week";
|
|
47
|
+
}, {
|
|
48
|
+
readonly id: "returns-hour";
|
|
49
|
+
readonly description: "Average hourly returns";
|
|
50
|
+
}, {
|
|
51
|
+
readonly id: "returns-day";
|
|
52
|
+
readonly description: "Average daily returns by day of week";
|
|
53
|
+
}, {
|
|
54
|
+
readonly id: "funding-rate";
|
|
55
|
+
readonly description: "Funding rate time-series across exchanges";
|
|
56
|
+
}, {
|
|
57
|
+
readonly id: "annualized-basis";
|
|
58
|
+
readonly description: "Rolling 3-month dated-futures annualized basis";
|
|
59
|
+
}, {
|
|
60
|
+
readonly id: "term-structure";
|
|
61
|
+
readonly description: "Futures term structure (price by expiry date)";
|
|
62
|
+
}];
|
|
63
|
+
export declare const EXCHANGES_DATA: {
|
|
64
|
+
readonly funding_rates: readonly ["Binance", "OKX", "Bybit", "Gate.io", "Bitget", "KuCoin", "MEXC", "HTX", "BingX", "Hyperliquid", "Deribit", "CoinEx", "BitMEX"];
|
|
65
|
+
readonly futures: {
|
|
66
|
+
readonly default: readonly ["Binance", "Bybit", "OKX", "Deribit", "Hyperliquid"];
|
|
67
|
+
readonly extra: readonly ["Bitget", "Gate.io", "KuCoin", "MEXC", "HTX"];
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
export declare const NARRATIVE_SLUGS: readonly [{
|
|
71
|
+
readonly slug: "layer-1";
|
|
72
|
+
readonly name: "Layer 1";
|
|
73
|
+
}, {
|
|
74
|
+
readonly slug: "layer-2";
|
|
75
|
+
readonly name: "Layer 2";
|
|
76
|
+
}, {
|
|
77
|
+
readonly slug: "defi";
|
|
78
|
+
readonly name: "DeFi";
|
|
79
|
+
}, {
|
|
80
|
+
readonly slug: "ai-agents";
|
|
81
|
+
readonly name: "AI Agents";
|
|
82
|
+
}, {
|
|
83
|
+
readonly slug: "defai";
|
|
84
|
+
readonly name: "DeFAI";
|
|
85
|
+
}, {
|
|
86
|
+
readonly slug: "depin";
|
|
87
|
+
readonly name: "DePIN";
|
|
88
|
+
}, {
|
|
89
|
+
readonly slug: "desci";
|
|
90
|
+
readonly name: "DeSci";
|
|
91
|
+
}, {
|
|
92
|
+
readonly slug: "gaming";
|
|
93
|
+
readonly name: "Gaming";
|
|
94
|
+
}, {
|
|
95
|
+
readonly slug: "dex-tokens";
|
|
96
|
+
readonly name: "DEX Tokens";
|
|
97
|
+
}, {
|
|
98
|
+
readonly slug: "cex-tokens";
|
|
99
|
+
readonly name: "CEX Tokens";
|
|
100
|
+
}, {
|
|
101
|
+
readonly slug: "lending";
|
|
102
|
+
readonly name: "Lending & Borrowing";
|
|
103
|
+
}, {
|
|
104
|
+
readonly slug: "memes";
|
|
105
|
+
readonly name: "Memes";
|
|
106
|
+
}, {
|
|
107
|
+
readonly slug: "nfts";
|
|
108
|
+
readonly name: "NFTs & Collectibles";
|
|
109
|
+
}, {
|
|
110
|
+
readonly slug: "oracles";
|
|
111
|
+
readonly name: "Oracles";
|
|
112
|
+
}, {
|
|
113
|
+
readonly slug: "privacy";
|
|
114
|
+
readonly name: "Privacy";
|
|
115
|
+
}, {
|
|
116
|
+
readonly slug: "rwa";
|
|
117
|
+
readonly name: "Real World Assets";
|
|
118
|
+
}, {
|
|
119
|
+
readonly slug: "stablecoins";
|
|
120
|
+
readonly name: "Stablecoins";
|
|
121
|
+
}, {
|
|
122
|
+
readonly slug: "restaking";
|
|
123
|
+
readonly name: "Restaking";
|
|
124
|
+
}, {
|
|
125
|
+
readonly slug: "liquid-staking";
|
|
126
|
+
readonly name: "Liquid Staking";
|
|
127
|
+
}, {
|
|
128
|
+
readonly slug: "modular";
|
|
129
|
+
readonly name: "Modular Blockchains";
|
|
130
|
+
}, {
|
|
131
|
+
readonly slug: "socialfi";
|
|
132
|
+
readonly name: "SocialFi";
|
|
133
|
+
}, {
|
|
134
|
+
readonly slug: "intent";
|
|
135
|
+
readonly name: "Intent-Based";
|
|
136
|
+
}];
|
|
137
|
+
export declare const ECOSYSTEM_SLUGS: readonly [{
|
|
138
|
+
readonly slug: "ethereum";
|
|
139
|
+
readonly name: "Ethereum";
|
|
140
|
+
readonly native_token: "ETH";
|
|
141
|
+
}, {
|
|
142
|
+
readonly slug: "solana";
|
|
143
|
+
readonly name: "Solana";
|
|
144
|
+
readonly native_token: "SOL";
|
|
145
|
+
}, {
|
|
146
|
+
readonly slug: "bnb-chain";
|
|
147
|
+
readonly name: "BNB Chain";
|
|
148
|
+
readonly native_token: "BNB";
|
|
149
|
+
}, {
|
|
150
|
+
readonly slug: "arbitrum";
|
|
151
|
+
readonly name: "Arbitrum";
|
|
152
|
+
readonly native_token: "ARB";
|
|
153
|
+
}, {
|
|
154
|
+
readonly slug: "base";
|
|
155
|
+
readonly name: "Base";
|
|
156
|
+
}, {
|
|
157
|
+
readonly slug: "bitcoin";
|
|
158
|
+
readonly name: "Bitcoin";
|
|
159
|
+
readonly native_token: "BTC";
|
|
160
|
+
}, {
|
|
161
|
+
readonly slug: "avalanche";
|
|
162
|
+
readonly name: "Avalanche";
|
|
163
|
+
readonly native_token: "AVAX";
|
|
164
|
+
}, {
|
|
165
|
+
readonly slug: "optimism";
|
|
166
|
+
readonly name: "Optimism";
|
|
167
|
+
readonly native_token: "OP";
|
|
168
|
+
}, {
|
|
169
|
+
readonly slug: "cosmos";
|
|
170
|
+
readonly name: "Cosmos";
|
|
171
|
+
readonly native_token: "ATOM";
|
|
172
|
+
}, {
|
|
173
|
+
readonly slug: "polkadot";
|
|
174
|
+
readonly name: "Polkadot";
|
|
175
|
+
readonly native_token: "DOT";
|
|
176
|
+
}, {
|
|
177
|
+
readonly slug: "sui";
|
|
178
|
+
readonly name: "Sui";
|
|
179
|
+
readonly native_token: "SUI";
|
|
180
|
+
}, {
|
|
181
|
+
readonly slug: "aptos";
|
|
182
|
+
readonly name: "Aptos";
|
|
183
|
+
readonly native_token: "APT";
|
|
184
|
+
}, {
|
|
185
|
+
readonly slug: "toncoin";
|
|
186
|
+
readonly name: "Toncoin";
|
|
187
|
+
readonly native_token: "TON";
|
|
188
|
+
}, {
|
|
189
|
+
readonly slug: "tron";
|
|
190
|
+
readonly name: "Tron";
|
|
191
|
+
readonly native_token: "TRX";
|
|
192
|
+
}, {
|
|
193
|
+
readonly slug: "cardano";
|
|
194
|
+
readonly name: "Cardano";
|
|
195
|
+
readonly native_token: "ADA";
|
|
196
|
+
}, {
|
|
197
|
+
readonly slug: "sonic";
|
|
198
|
+
readonly name: "Sonic";
|
|
199
|
+
readonly native_token: "S";
|
|
200
|
+
}, {
|
|
201
|
+
readonly slug: "hyperliquid";
|
|
202
|
+
readonly name: "Hyperliquid";
|
|
203
|
+
readonly native_token: "HYPE";
|
|
204
|
+
}, {
|
|
205
|
+
readonly slug: "berachain";
|
|
206
|
+
readonly name: "Berachain";
|
|
207
|
+
readonly native_token: "BERA";
|
|
208
|
+
}, {
|
|
209
|
+
readonly slug: "sei";
|
|
210
|
+
readonly name: "Sei";
|
|
211
|
+
readonly native_token: "SEI";
|
|
212
|
+
}, {
|
|
213
|
+
readonly slug: "zksync";
|
|
214
|
+
readonly name: "zkSync";
|
|
215
|
+
readonly native_token: "ZK";
|
|
216
|
+
}, {
|
|
217
|
+
readonly slug: "starknet";
|
|
218
|
+
readonly name: "Starknet";
|
|
219
|
+
readonly native_token: "STRK";
|
|
220
|
+
}, {
|
|
221
|
+
readonly slug: "scroll";
|
|
222
|
+
readonly name: "Scroll";
|
|
223
|
+
readonly native_token: "SCR";
|
|
224
|
+
}, {
|
|
225
|
+
readonly slug: "movement";
|
|
226
|
+
readonly name: "Movement";
|
|
227
|
+
readonly native_token: "MOVE";
|
|
228
|
+
}];
|
|
229
|
+
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDjB,CAAC;AAEX,eAAO,MAAM,cAAc;;;;;;CAoBjB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBlB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBlB,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static resource data for MCP resources.
|
|
3
|
+
* Mirrors the Python server's FUTURES_CHARTS, etc.
|
|
4
|
+
*/
|
|
5
|
+
export const FUTURES_CHARTS = [
|
|
6
|
+
{
|
|
7
|
+
id: "perpetual-price",
|
|
8
|
+
description: "Perpetual futures price (OHLCV) over time",
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
id: "liquidations",
|
|
12
|
+
description: "Long and short liquidation volumes over time",
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
id: "oi-stacked",
|
|
16
|
+
description: "Open interest stacked by exchange over time",
|
|
17
|
+
},
|
|
18
|
+
{ id: "oi-change", description: "Open interest change (delta) over time" },
|
|
19
|
+
{ id: "oi-daily-change", description: "Daily open interest change bars" },
|
|
20
|
+
{
|
|
21
|
+
id: "oi-snapshot",
|
|
22
|
+
description: "Current open interest snapshot by exchange (bar chart)",
|
|
23
|
+
},
|
|
24
|
+
{ id: "oi-volume", description: "Open interest vs volume overlay" },
|
|
25
|
+
{
|
|
26
|
+
id: "volume-snapshot",
|
|
27
|
+
description: "Current volume snapshot by exchange (bar chart)",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
id: "volume-history",
|
|
31
|
+
description: "Historical dollar volume by exchange",
|
|
32
|
+
},
|
|
33
|
+
{ id: "cvd", description: "Cumulative volume delta (buy vs sell pressure)" },
|
|
34
|
+
{ id: "long-short-ratio", description: "Long/short account ratio over time" },
|
|
35
|
+
{
|
|
36
|
+
id: "top-trader-ls",
|
|
37
|
+
description: "Top trader long/short ratio (Binance and OKX)",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
id: "returns-session",
|
|
41
|
+
description: "Price returns broken down by trading session (US/EU/APAC)",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: "returns-heatmap",
|
|
45
|
+
description: "Returns heatmap by hour and day of week",
|
|
46
|
+
},
|
|
47
|
+
{ id: "returns-hour", description: "Average hourly returns" },
|
|
48
|
+
{ id: "returns-day", description: "Average daily returns by day of week" },
|
|
49
|
+
{
|
|
50
|
+
id: "funding-rate",
|
|
51
|
+
description: "Funding rate time-series across exchanges",
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: "annualized-basis",
|
|
55
|
+
description: "Rolling 3-month dated-futures annualized basis",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: "term-structure",
|
|
59
|
+
description: "Futures term structure (price by expiry date)",
|
|
60
|
+
},
|
|
61
|
+
];
|
|
62
|
+
export const EXCHANGES_DATA = {
|
|
63
|
+
funding_rates: [
|
|
64
|
+
"Binance",
|
|
65
|
+
"OKX",
|
|
66
|
+
"Bybit",
|
|
67
|
+
"Gate.io",
|
|
68
|
+
"Bitget",
|
|
69
|
+
"KuCoin",
|
|
70
|
+
"MEXC",
|
|
71
|
+
"HTX",
|
|
72
|
+
"BingX",
|
|
73
|
+
"Hyperliquid",
|
|
74
|
+
"Deribit",
|
|
75
|
+
"CoinEx",
|
|
76
|
+
"BitMEX",
|
|
77
|
+
],
|
|
78
|
+
futures: {
|
|
79
|
+
default: ["Binance", "Bybit", "OKX", "Deribit", "Hyperliquid"],
|
|
80
|
+
extra: ["Bitget", "Gate.io", "KuCoin", "MEXC", "HTX"],
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
export const NARRATIVE_SLUGS = [
|
|
84
|
+
{ slug: "layer-1", name: "Layer 1" },
|
|
85
|
+
{ slug: "layer-2", name: "Layer 2" },
|
|
86
|
+
{ slug: "defi", name: "DeFi" },
|
|
87
|
+
{ slug: "ai-agents", name: "AI Agents" },
|
|
88
|
+
{ slug: "defai", name: "DeFAI" },
|
|
89
|
+
{ slug: "depin", name: "DePIN" },
|
|
90
|
+
{ slug: "desci", name: "DeSci" },
|
|
91
|
+
{ slug: "gaming", name: "Gaming" },
|
|
92
|
+
{ slug: "dex-tokens", name: "DEX Tokens" },
|
|
93
|
+
{ slug: "cex-tokens", name: "CEX Tokens" },
|
|
94
|
+
{ slug: "lending", name: "Lending & Borrowing" },
|
|
95
|
+
{ slug: "memes", name: "Memes" },
|
|
96
|
+
{ slug: "nfts", name: "NFTs & Collectibles" },
|
|
97
|
+
{ slug: "oracles", name: "Oracles" },
|
|
98
|
+
{ slug: "privacy", name: "Privacy" },
|
|
99
|
+
{ slug: "rwa", name: "Real World Assets" },
|
|
100
|
+
{ slug: "stablecoins", name: "Stablecoins" },
|
|
101
|
+
{ slug: "restaking", name: "Restaking" },
|
|
102
|
+
{ slug: "liquid-staking", name: "Liquid Staking" },
|
|
103
|
+
{ slug: "modular", name: "Modular Blockchains" },
|
|
104
|
+
{ slug: "socialfi", name: "SocialFi" },
|
|
105
|
+
{ slug: "intent", name: "Intent-Based" },
|
|
106
|
+
];
|
|
107
|
+
export const ECOSYSTEM_SLUGS = [
|
|
108
|
+
{ slug: "ethereum", name: "Ethereum", native_token: "ETH" },
|
|
109
|
+
{ slug: "solana", name: "Solana", native_token: "SOL" },
|
|
110
|
+
{ slug: "bnb-chain", name: "BNB Chain", native_token: "BNB" },
|
|
111
|
+
{ slug: "arbitrum", name: "Arbitrum", native_token: "ARB" },
|
|
112
|
+
{ slug: "base", name: "Base" },
|
|
113
|
+
{ slug: "bitcoin", name: "Bitcoin", native_token: "BTC" },
|
|
114
|
+
{ slug: "avalanche", name: "Avalanche", native_token: "AVAX" },
|
|
115
|
+
{ slug: "optimism", name: "Optimism", native_token: "OP" },
|
|
116
|
+
{ slug: "cosmos", name: "Cosmos", native_token: "ATOM" },
|
|
117
|
+
{ slug: "polkadot", name: "Polkadot", native_token: "DOT" },
|
|
118
|
+
{ slug: "sui", name: "Sui", native_token: "SUI" },
|
|
119
|
+
{ slug: "aptos", name: "Aptos", native_token: "APT" },
|
|
120
|
+
{ slug: "toncoin", name: "Toncoin", native_token: "TON" },
|
|
121
|
+
{ slug: "tron", name: "Tron", native_token: "TRX" },
|
|
122
|
+
{ slug: "cardano", name: "Cardano", native_token: "ADA" },
|
|
123
|
+
{ slug: "sonic", name: "Sonic", native_token: "S" },
|
|
124
|
+
{ slug: "hyperliquid", name: "Hyperliquid", native_token: "HYPE" },
|
|
125
|
+
{ slug: "berachain", name: "Berachain", native_token: "BERA" },
|
|
126
|
+
{ slug: "sei", name: "Sei", native_token: "SEI" },
|
|
127
|
+
{ slug: "zksync", name: "zkSync", native_token: "ZK" },
|
|
128
|
+
{ slug: "starknet", name: "Starknet", native_token: "STRK" },
|
|
129
|
+
{ slug: "scroll", name: "Scroll", native_token: "SCR" },
|
|
130
|
+
{ slug: "movement", name: "Movement", native_token: "MOVE" },
|
|
131
|
+
];
|
|
132
|
+
//# sourceMappingURL=resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ToolAnnotations } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import type { ZodRawShapeCompat } from "@modelcontextprotocol/sdk/server/zod-compat.js";
|
|
3
|
+
export declare const MAX_ITEMS = 200;
|
|
4
|
+
export declare const CHARACTER_LIMIT = 25000;
|
|
5
|
+
export declare const READ_ONLY_MARKET_DATA_TOOL_ANNOTATIONS: ToolAnnotations;
|
|
6
|
+
export declare const API_TOOL_OUTPUT_SCHEMA: ZodRawShapeCompat;
|
|
7
|
+
export declare const TEXT_TOOL_OUTPUT_SCHEMA: ZodRawShapeCompat;
|
|
8
|
+
export declare function truncateResponse(data: unknown): unknown;
|
|
9
|
+
export declare function toToolResult(result: unknown): {
|
|
10
|
+
structuredContent: {
|
|
11
|
+
result: unknown;
|
|
12
|
+
};
|
|
13
|
+
content: {
|
|
14
|
+
type: "text";
|
|
15
|
+
text: string;
|
|
16
|
+
}[];
|
|
17
|
+
};
|
|
18
|
+
export declare function toTextToolResult(report: string, extra?: Record<string, unknown>): {
|
|
19
|
+
structuredContent: {
|
|
20
|
+
report: string;
|
|
21
|
+
};
|
|
22
|
+
content: {
|
|
23
|
+
type: "text";
|
|
24
|
+
text: string;
|
|
25
|
+
}[];
|
|
26
|
+
};
|
|
27
|
+
export declare function toToolErrorResult(error: unknown): {
|
|
28
|
+
structuredContent: {
|
|
29
|
+
error: string;
|
|
30
|
+
};
|
|
31
|
+
content: {
|
|
32
|
+
type: "text";
|
|
33
|
+
text: string;
|
|
34
|
+
}[];
|
|
35
|
+
isError: true;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=tool-runtime.d.ts.map
|