@0xinsider/mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +133 -0
  2. package/dist/cli-lib.d.ts +12 -0
  3. package/dist/cli-lib.d.ts.map +1 -0
  4. package/dist/cli-lib.js +207 -0
  5. package/dist/cli-lib.js.map +1 -0
  6. package/dist/cli.d.ts +3 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +12 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/client.d.ts +31 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +70 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/constants.d.ts +12 -0
  15. package/dist/constants.d.ts.map +1 -0
  16. package/dist/constants.js +12 -0
  17. package/dist/constants.js.map +1 -0
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +12 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/prompts/index.d.ts +3 -0
  23. package/dist/prompts/index.d.ts.map +1 -0
  24. package/dist/prompts/index.js +84 -0
  25. package/dist/prompts/index.js.map +1 -0
  26. package/dist/resources/index.d.ts +4 -0
  27. package/dist/resources/index.d.ts.map +1 -0
  28. package/dist/resources/index.js +131 -0
  29. package/dist/resources/index.js.map +1 -0
  30. package/dist/server.d.ts +4 -0
  31. package/dist/server.d.ts.map +1 -0
  32. package/dist/server.js +52 -0
  33. package/dist/server.js.map +1 -0
  34. package/dist/tools/get-insider-radar.d.ts +4 -0
  35. package/dist/tools/get-insider-radar.d.ts.map +1 -0
  36. package/dist/tools/get-insider-radar.js +62 -0
  37. package/dist/tools/get-insider-radar.js.map +1 -0
  38. package/dist/tools/get-leaderboard.d.ts +4 -0
  39. package/dist/tools/get-leaderboard.d.ts.map +1 -0
  40. package/dist/tools/get-leaderboard.js +56 -0
  41. package/dist/tools/get-leaderboard.js.map +1 -0
  42. package/dist/tools/get-market-intel.d.ts +4 -0
  43. package/dist/tools/get-market-intel.d.ts.map +1 -0
  44. package/dist/tools/get-market-intel.js +42 -0
  45. package/dist/tools/get-market-intel.js.map +1 -0
  46. package/dist/tools/get-trader.d.ts +4 -0
  47. package/dist/tools/get-trader.d.ts.map +1 -0
  48. package/dist/tools/get-trader.js +52 -0
  49. package/dist/tools/get-trader.js.map +1 -0
  50. package/dist/tools/get-whale-trades.d.ts +4 -0
  51. package/dist/tools/get-whale-trades.d.ts.map +1 -0
  52. package/dist/tools/get-whale-trades.js +60 -0
  53. package/dist/tools/get-whale-trades.js.map +1 -0
  54. package/dist/tools/search-markets.d.ts +4 -0
  55. package/dist/tools/search-markets.d.ts.map +1 -0
  56. package/dist/tools/search-markets.js +51 -0
  57. package/dist/tools/search-markets.js.map +1 -0
  58. package/package.json +57 -0
package/README.md ADDED
@@ -0,0 +1,133 @@
1
+ # @0xinsider/mcp
2
+
3
+ MCP server for [0xinsider](https://0xinsider.com) — prediction market intelligence for AI agents.
4
+
5
+ Gives your AI agent access to trader grades, whale trades, smart money signals, market intelligence, and insider detection across prediction markets.
6
+
7
+ ## Quick Start
8
+
9
+ ### Claude Code
10
+
11
+ ```bash
12
+ npx -y @0xinsider/mcp init
13
+ ```
14
+
15
+ Or manually add to `~/.claude/settings.json`:
16
+
17
+ ```json
18
+ {
19
+ "mcpServers": {
20
+ "0xinsider": {
21
+ "command": "npx",
22
+ "args": ["-y", "@0xinsider/mcp"],
23
+ "env": {
24
+ "OXINSIDER_API_KEY": "oxi_sk_live_..."
25
+ }
26
+ }
27
+ }
28
+ }
29
+ ```
30
+
31
+ ### Cursor
32
+
33
+ Add to `~/.cursor/mcp.json`:
34
+
35
+ ```json
36
+ {
37
+ "mcpServers": {
38
+ "0xinsider": {
39
+ "command": "npx",
40
+ "args": ["-y", "@0xinsider/mcp"],
41
+ "env": {
42
+ "OXINSIDER_API_KEY": "oxi_sk_live_..."
43
+ }
44
+ }
45
+ }
46
+ }
47
+ ```
48
+
49
+ ### Codex
50
+
51
+ `npx -y @0xinsider/mcp init` can also configure Codex automatically.
52
+
53
+ Or add this to `~/.codex/config.toml`:
54
+
55
+ ```toml
56
+ [mcp_servers."0xinsider"]
57
+ command = "npx"
58
+ args = ["-y", "@0xinsider/mcp"]
59
+
60
+ [mcp_servers."0xinsider".env]
61
+ OXINSIDER_API_KEY = "oxi_sk_live_..."
62
+ ```
63
+
64
+ ### Other MCP Clients
65
+
66
+ Any client that supports stdio transport:
67
+
68
+ ```bash
69
+ OXINSIDER_API_KEY=oxi_sk_live_... npx -y @0xinsider/mcp
70
+ ```
71
+
72
+ Need the command list? Run:
73
+
74
+ ```bash
75
+ npx -y @0xinsider/mcp --help
76
+ ```
77
+
78
+ ## API Key
79
+
80
+ Get your API key at [0xinsider.com/developers](https://0xinsider.com/developers). Requires an Insider subscription.
81
+
82
+ ## Tools
83
+
84
+ | Tool | Description |
85
+ |------|-------------|
86
+ | `get_trader` | Look up a trader by wallet address — grade, P&L, win rate, strategy, quant metrics |
87
+ | `get_whale_trades` | Recent large trades with signal scoring, filterable by size/category/grade |
88
+ | `get_leaderboard` | Top-ranked traders (S/A/B grades) with optional category/strategy filters |
89
+ | `search_markets` | Search prediction markets by keyword |
90
+ | `get_market_intel` | Smart money flow analysis for a specific market |
91
+ | `get_insider_radar` | Suspicious trading pattern detection |
92
+
93
+ ## Resources
94
+
95
+ | Resource | URI | Description |
96
+ |----------|-----|-------------|
97
+ | API Docs | `oxinsider://docs/api` | Complete API reference |
98
+ | Agent Instructions | `oxinsider://docs/agents` | Decision tree for AI agents |
99
+ | Leaderboard | `oxinsider://data/leaderboard` | Current top 20 traders |
100
+ | Whale Trades | `oxinsider://data/whale-trades` | Latest 20 whale trades |
101
+
102
+ ## Prompts
103
+
104
+ | Prompt | Description |
105
+ |--------|-------------|
106
+ | `analyze_trader` | Deep analysis of a trader's performance and risk profile |
107
+ | `market_report` | Smart money flow report for a market topic |
108
+ | `trading_signals` | Scan for high-conviction trading signals |
109
+
110
+ ## Example Usage
111
+
112
+ Once configured, ask your AI agent:
113
+
114
+ - "Who are the top prediction market traders right now?"
115
+ - "What are whales buying in crypto markets?"
116
+ - "Analyze trader 0x1234... — is their strategy worth following?"
117
+ - "Are there any suspicious trading patterns on the Trump election market?"
118
+ - "Generate a smart money report for AI markets"
119
+
120
+ ## Environment Variables
121
+
122
+ | Variable | Required | Description |
123
+ |----------|----------|-------------|
124
+ | `OXINSIDER_API_KEY` | Yes | Your API key (`oxi_sk_live_...`) |
125
+ | `OXINSIDER_API_URL` | No | Override API base URL (default: `https://api.0xinsider.com`) |
126
+
127
+ ## Rate Limits
128
+
129
+ 100 requests per minute per user. The server returns actionable error messages when limits are hit.
130
+
131
+ ## License
132
+
133
+ MIT
@@ -0,0 +1,12 @@
1
+ export type CliCommand = "serve" | "init" | "help";
2
+ type McpConfig = {
3
+ command: string;
4
+ args: string[];
5
+ env: Record<string, string>;
6
+ };
7
+ export declare function buildMcpConfig(apiKey: string): McpConfig;
8
+ export declare function formatCodexToml(apiKey: string): string;
9
+ export declare function resolveCliCommand(args: readonly string[]): CliCommand;
10
+ export declare function runCli(args: readonly string[]): Promise<void>;
11
+ export {};
12
+ //# sourceMappingURL=cli-lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-lib.d.ts","sourceRoot":"","sources":["../src/cli-lib.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAUnD,KAAK,SAAS,GAAG;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAQxD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQtD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAarE;AA4LD,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBnE"}
@@ -0,0 +1,207 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
+ import { createInterface } from "node:readline";
5
+ import { API_KEY_ENV_VAR, DEVELOPERS_URL, MCP_NPX_ARGS, MCP_NPX_COMMAND, PACKAGE_NAME, SERVER_NAME, } from "./constants.js";
6
+ import { runServer } from "./server.js";
7
+ export function buildMcpConfig(apiKey) {
8
+ return {
9
+ command: MCP_NPX_COMMAND,
10
+ args: [...MCP_NPX_ARGS],
11
+ env: {
12
+ [API_KEY_ENV_VAR]: apiKey,
13
+ },
14
+ };
15
+ }
16
+ export function formatCodexToml(apiKey) {
17
+ return `[mcp_servers."${SERVER_NAME}"]
18
+ command = ${JSON.stringify(MCP_NPX_COMMAND)}
19
+ args = [${MCP_NPX_ARGS.map((arg) => JSON.stringify(arg)).join(", ")}]
20
+
21
+ [mcp_servers."${SERVER_NAME}".env]
22
+ ${API_KEY_ENV_VAR} = ${JSON.stringify(apiKey)}
23
+ `;
24
+ }
25
+ export function resolveCliCommand(args) {
26
+ const command = args[0];
27
+ if (!command || command === "serve") {
28
+ return "serve";
29
+ }
30
+ if (command === "init") {
31
+ return "init";
32
+ }
33
+ if (command === "help" || command === "--help" || command === "-h") {
34
+ return "help";
35
+ }
36
+ throw new Error(`Unknown command "${command}". Use "init", "serve", or "--help".`);
37
+ }
38
+ function printHelp() {
39
+ console.log(`${PACKAGE_NAME}
40
+
41
+ Usage:
42
+ npx -y ${PACKAGE_NAME} init
43
+ ${API_KEY_ENV_VAR}=oxi_sk_live_... npx -y ${PACKAGE_NAME}
44
+
45
+ Commands:
46
+ init Detect Claude Code, Cursor, or Codex and write MCP config
47
+ serve Start the stdio MCP server (default)
48
+ help Show this message
49
+ `);
50
+ }
51
+ function ask(question) {
52
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
53
+ return new Promise((resolve) => {
54
+ rl.question(question, (answer) => {
55
+ rl.close();
56
+ resolve(answer.trim());
57
+ });
58
+ });
59
+ }
60
+ function detectEnvironments() {
61
+ const home = process.env.HOME ?? process.env.USERPROFILE ?? "";
62
+ const environments = [];
63
+ const claudeDir = join(home, ".claude");
64
+ if (existsSync(claudeDir)) {
65
+ environments.push({ type: "claude-code", configPath: join(claudeDir, "settings.json") });
66
+ }
67
+ const cursorDir = join(home, ".cursor");
68
+ if (existsSync(cursorDir)) {
69
+ environments.push({ type: "cursor", configPath: join(cursorDir, "mcp.json") });
70
+ }
71
+ const codexDir = join(home, ".codex");
72
+ if (existsSync(codexDir)) {
73
+ environments.push({ type: "codex", configPath: join(codexDir, "config.toml") });
74
+ }
75
+ return environments;
76
+ }
77
+ function environmentLabel(type) {
78
+ if (type === "claude-code")
79
+ return "Claude Code";
80
+ if (type === "cursor")
81
+ return "Cursor";
82
+ return "Codex";
83
+ }
84
+ async function chooseEnvironment(environments) {
85
+ if (environments.length === 0)
86
+ return null;
87
+ if (environments.length === 1)
88
+ return environments[0];
89
+ console.log("Detected MCP clients:");
90
+ for (const [index, environment] of environments.entries()) {
91
+ console.log(`${index + 1}. ${environmentLabel(environment.type)} (${environment.configPath})`);
92
+ }
93
+ const answer = await ask("Choose a client to configure [1]: ");
94
+ if (!answer)
95
+ return environments[0];
96
+ const index = Number.parseInt(answer, 10);
97
+ if (Number.isNaN(index) || index < 1 || index > environments.length) {
98
+ throw new Error("Invalid client choice");
99
+ }
100
+ return environments[index - 1];
101
+ }
102
+ function isJsonRecord(value) {
103
+ return typeof value === "object" && value !== null && !Array.isArray(value);
104
+ }
105
+ function readJsonFile(path) {
106
+ if (!existsSync(path))
107
+ return {};
108
+ try {
109
+ const parsed = JSON.parse(readFileSync(path, "utf-8"));
110
+ if (!isJsonRecord(parsed)) {
111
+ console.error(`Warning: ${path} does not contain a JSON object, treating as empty`);
112
+ return {};
113
+ }
114
+ return parsed;
115
+ }
116
+ catch (error) {
117
+ console.error(`Warning: failed to parse ${path}:`, error);
118
+ return {};
119
+ }
120
+ }
121
+ function writeJsonFile(path, data) {
122
+ const dir = dirname(path);
123
+ if (!existsSync(dir)) {
124
+ mkdirSync(dir, { recursive: true });
125
+ }
126
+ writeFileSync(path, JSON.stringify(data, null, 2) + "\n");
127
+ }
128
+ function addJsonMcpServer(configPath, apiKey) {
129
+ const config = readJsonFile(configPath);
130
+ const existing = config.mcpServers;
131
+ const mcpServers = isJsonRecord(existing) ? existing : {};
132
+ mcpServers[SERVER_NAME] = buildMcpConfig(apiKey);
133
+ config.mcpServers = mcpServers;
134
+ writeJsonFile(configPath, config);
135
+ console.log(`\nAdded ${SERVER_NAME} MCP server to ${configPath}`);
136
+ }
137
+ function printManualInstructions(apiKey) {
138
+ console.log("\nClaude Code / Cursor JSON:\n");
139
+ console.log(JSON.stringify({ mcpServers: { [SERVER_NAME]: buildMcpConfig(apiKey) } }, null, 2));
140
+ console.log("\nCodex TOML (~/.codex/config.toml):\n");
141
+ console.log(formatCodexToml(apiKey));
142
+ }
143
+ function addCodexMcpServer(apiKey) {
144
+ spawnSync("codex", ["mcp", "remove", SERVER_NAME], {
145
+ stdio: "ignore",
146
+ });
147
+ const result = spawnSync("codex", [
148
+ "mcp",
149
+ "add",
150
+ SERVER_NAME,
151
+ "--env",
152
+ `${API_KEY_ENV_VAR}=${apiKey}`,
153
+ "--",
154
+ MCP_NPX_COMMAND,
155
+ ...MCP_NPX_ARGS,
156
+ ], {
157
+ stdio: "inherit",
158
+ });
159
+ if (result.error) {
160
+ throw result.error;
161
+ }
162
+ if (result.status !== 0) {
163
+ throw new Error(`codex mcp add failed with exit code ${result.status ?? "unknown"}`);
164
+ }
165
+ }
166
+ async function runSetup() {
167
+ console.log(`${SERVER_NAME} MCP Server Setup\n`);
168
+ const apiKey = await ask(`Enter your 0xinsider API key (oxi_sk_live_...): `);
169
+ if (!apiKey) {
170
+ throw new Error(`API key is required. Get one at ${DEVELOPERS_URL}`);
171
+ }
172
+ if (!apiKey.startsWith("oxi_sk_live_")) {
173
+ throw new Error("Invalid API key format. Keys start with oxi_sk_live_");
174
+ }
175
+ const env = await chooseEnvironment(detectEnvironments());
176
+ if (!env) {
177
+ console.log("\nCould not detect Claude Code, Cursor, or Codex. Here are manual instructions:");
178
+ printManualInstructions(apiKey);
179
+ return;
180
+ }
181
+ const confirm = await ask(`Detected ${environmentLabel(env.type)}. Add ${SERVER_NAME} MCP server? (Y/n): `);
182
+ if (confirm.toLowerCase() === "n") {
183
+ printManualInstructions(apiKey);
184
+ return;
185
+ }
186
+ if (env.type === "codex") {
187
+ addCodexMcpServer(apiKey);
188
+ console.log(`\nAdded ${SERVER_NAME} MCP server to ${env.configPath}`);
189
+ return;
190
+ }
191
+ addJsonMcpServer(env.configPath, apiKey);
192
+ }
193
+ export async function runCli(args) {
194
+ const command = resolveCliCommand(args);
195
+ if (command === "help") {
196
+ printHelp();
197
+ return;
198
+ }
199
+ if (command === "init") {
200
+ await runSetup();
201
+ console.log("\nDone! Restart your editor to start using 0xinsider tools.");
202
+ console.log('Try asking: "What are the top prediction market traders?"');
203
+ return;
204
+ }
205
+ await runServer();
206
+ }
207
+ //# sourceMappingURL=cli-lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-lib.js","sourceRoot":"","sources":["../src/cli-lib.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ import { runCli } from "./cli-lib.js";
3
+ runCli(process.argv.slice(2)).catch((error) => {
4
+ if (error instanceof Error) {
5
+ console.error(`Error: ${error.message}`);
6
+ }
7
+ else {
8
+ console.error("Error:", error);
9
+ }
10
+ process.exit(1);
11
+ });
12
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACrD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ interface ApiResponse {
2
+ object: string;
3
+ data: unknown;
4
+ meta: {
5
+ request_id: string;
6
+ cached: boolean;
7
+ cache_age_s?: number;
8
+ };
9
+ has_more?: boolean;
10
+ next_cursor?: string | null;
11
+ total?: number | null;
12
+ error?: {
13
+ code: string;
14
+ message: string;
15
+ doc_url?: string;
16
+ param?: string;
17
+ };
18
+ }
19
+ export declare class ApiClient {
20
+ private readonly apiKey;
21
+ private readonly baseUrl;
22
+ constructor(apiKey: string, baseUrl?: string);
23
+ request(path: string, params?: Record<string, string | number | undefined>, repeatedParams?: Record<string, string[]>): Promise<ApiResponse>;
24
+ }
25
+ export declare class ApiError extends Error {
26
+ readonly status: number;
27
+ readonly code: string;
28
+ constructor(status: number, code: string, message: string);
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEpE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAMD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAKtC,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EACpD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GACxC,OAAO,CAAC,WAAW,CAAC;CAqDxB;AAED,qBAAa,QAAS,SAAQ,KAAK;aAEf,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,MAAM;gBADZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM;CAKlB"}
package/dist/client.js ADDED
@@ -0,0 +1,70 @@
1
+ import { API_BASE_URL, VERSION } from "./constants.js";
2
+ function isApiResponse(value) {
3
+ return typeof value === "object" && value !== null && "object" in value;
4
+ }
5
+ export class ApiClient {
6
+ apiKey;
7
+ baseUrl;
8
+ constructor(apiKey, baseUrl) {
9
+ this.apiKey = apiKey;
10
+ this.baseUrl = baseUrl ?? API_BASE_URL;
11
+ }
12
+ async request(path, params, repeatedParams) {
13
+ const url = new URL(`${this.baseUrl}${path}`);
14
+ if (params) {
15
+ for (const [key, value] of Object.entries(params)) {
16
+ if (value !== undefined && value !== null) {
17
+ url.searchParams.set(key, String(value));
18
+ }
19
+ }
20
+ }
21
+ if (repeatedParams) {
22
+ for (const [key, values] of Object.entries(repeatedParams)) {
23
+ for (const value of values) {
24
+ url.searchParams.append(key, value);
25
+ }
26
+ }
27
+ }
28
+ const response = await fetch(url.toString(), {
29
+ method: "GET",
30
+ headers: {
31
+ Authorization: `Bearer ${this.apiKey}`,
32
+ Accept: "application/json",
33
+ "User-Agent": `@0xinsider/mcp/${VERSION}`,
34
+ },
35
+ });
36
+ const body = await response.json();
37
+ if (!isApiResponse(body)) {
38
+ throw new ApiError(response.status, "invalid_response", `Unexpected API response format from ${path}`);
39
+ }
40
+ if (!response.ok) {
41
+ const code = body.error?.code ?? "unknown_error";
42
+ const message = body.error?.message ?? `HTTP ${response.status}`;
43
+ const docUrl = body.error?.doc_url;
44
+ let errorText = `Error (${code}): ${message}`;
45
+ if (code === "rate_limited") {
46
+ const retryAfter = response.headers.get("retry-after");
47
+ errorText += retryAfter ? ` Retry after ${retryAfter}s.` : "";
48
+ }
49
+ if (code === "subscription_required") {
50
+ errorText += " Upgrade at https://0xinsider.com/pricing";
51
+ }
52
+ if (docUrl) {
53
+ errorText += ` Docs: ${docUrl}`;
54
+ }
55
+ throw new ApiError(response.status, code, errorText);
56
+ }
57
+ return body;
58
+ }
59
+ }
60
+ export class ApiError extends Error {
61
+ status;
62
+ code;
63
+ constructor(status, code, message) {
64
+ super(message);
65
+ this.status = status;
66
+ this.code = code;
67
+ this.name = "ApiError";
68
+ }
69
+ }
70
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAcvD,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC;AAC1E,CAAC;AAED,MAAM,OAAO,SAAS;IACH,MAAM,CAAS;IACf,OAAO,CAAS;IAEjC,YAAY,MAAc,EAAE,OAAgB;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,YAAY,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAAY,EACZ,MAAoD,EACpD,cAAyC;QAEzC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC1C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YAC3C,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;gBACtC,MAAM,EAAE,kBAAkB;gBAC1B,YAAY,EAAE,kBAAkB,OAAO,EAAE;aAC1C;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,uCAAuC,IAAI,EAAE,CAAC,CAAC;QACzG,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,eAAe,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YACjE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;YAEnC,IAAI,SAAS,GAAG,UAAU,IAAI,MAAM,OAAO,EAAE,CAAC;YAC9C,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACvD,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,gBAAgB,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,CAAC;YACD,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;gBACrC,SAAS,IAAI,2CAA2C,CAAC;YAC3D,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,SAAS,IAAI,UAAU,MAAM,EAAE,CAAC;YAClC,CAAC;YAED,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEf;IACA;IAFlB,YACkB,MAAc,EACd,IAAY,EAC5B,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAQ;QAI5B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ export declare const API_BASE_URL = "https://api.0xinsider.com";
2
+ export declare const SITE_URL = "https://0xinsider.com";
3
+ export declare const DEVELOPERS_URL = "https://0xinsider.com/developers";
4
+ export declare const PRICING_URL = "https://0xinsider.com/pricing";
5
+ export declare const VERSION = "1.0.0";
6
+ export declare const PACKAGE_NAME = "@0xinsider/mcp";
7
+ export declare const SERVER_NAME = "0xinsider";
8
+ export declare const API_KEY_ENV_VAR = "OXINSIDER_API_KEY";
9
+ export declare const API_URL_ENV_VAR = "OXINSIDER_API_URL";
10
+ export declare const MCP_NPX_COMMAND = "npx";
11
+ export declare const MCP_NPX_ARGS: readonly ["-y", "@0xinsider/mcp"];
12
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,8BAA8B,CAAC;AACxD,eAAO,MAAM,QAAQ,0BAA0B,CAAC;AAChD,eAAO,MAAM,cAAc,qCAA2B,CAAC;AACvD,eAAO,MAAM,WAAW,kCAAwB,CAAC;AACjD,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,YAAY,mBAAmB,CAAC;AAC7C,eAAO,MAAM,WAAW,cAAc,CAAC;AACvC,eAAO,MAAM,eAAe,sBAAsB,CAAC;AACnD,eAAO,MAAM,eAAe,sBAAsB,CAAC;AACnD,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,eAAO,MAAM,YAAY,mCAAgC,CAAC"}
@@ -0,0 +1,12 @@
1
+ export const API_BASE_URL = "https://api.0xinsider.com";
2
+ export const SITE_URL = "https://0xinsider.com";
3
+ export const DEVELOPERS_URL = `${SITE_URL}/developers`;
4
+ export const PRICING_URL = `${SITE_URL}/pricing`;
5
+ export const VERSION = "1.0.0";
6
+ export const PACKAGE_NAME = "@0xinsider/mcp";
7
+ export const SERVER_NAME = "0xinsider";
8
+ export const API_KEY_ENV_VAR = "OXINSIDER_API_KEY";
9
+ export const API_URL_ENV_VAR = "OXINSIDER_API_URL";
10
+ export const MCP_NPX_COMMAND = "npx";
11
+ export const MCP_NPX_ARGS = ["-y", PACKAGE_NAME];
12
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,2BAA2B,CAAC;AACxD,MAAM,CAAC,MAAM,QAAQ,GAAG,uBAAuB,CAAC;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,QAAQ,aAAa,CAAC;AACvD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,QAAQ,UAAU,CAAC;AACjD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAC/B,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AACvC,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,YAAY,CAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ import { runServer } from "./server.js";
3
+ runServer().catch((error) => {
4
+ if (error instanceof Error) {
5
+ console.error(`Fatal error: ${error.message}`);
6
+ }
7
+ else {
8
+ console.error("Fatal error:", error);
9
+ }
10
+ process.exit(1);
11
+ });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACnC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,gBAAgB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerPrompts(server: McpServer): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+FvD"}