@insightsentry/mcp 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,15 +1,32 @@
1
1
  # @insightsentry/mcp
2
2
 
3
- MCP (Model Context Protocol) server for the [InsightSentry](https://insightsentry.com) financial data API.
3
+ MCP server and CLI for the [InsightSentry](https://insightsentry.com) financial data API.
4
4
 
5
- Gives AI assistants direct access to real-time and historical market data for equities, futures, options, crypto, forex, and more — plus comprehensive documentation resources for building applications with the InsightSentry API and WebSocket feeds.
5
+ Gives AI assistants direct access to real-time and historical market data for equities, futures, options, crypto, forex, and more — plus comprehensive documentation resources for building applications with the InsightSentry API and WebSocket feeds. Also usable as a standalone CLI for scripting and terminal workflows.
6
6
 
7
- ## Setup
7
+ ## Install
8
8
 
9
- ### Prerequisites
9
+ ```bash
10
+ npm install -g @insightsentry/mcp
11
+ ```
12
+
13
+ This gives you two commands:
14
+
15
+ | Command | Purpose |
16
+ |---------|---------|
17
+ | `insight` | CLI for terminal / scripting |
18
+ | `insight-mcp` | MCP server for AI assistants |
10
19
 
11
20
  Get your API key from the [InsightSentry Dashboard](https://insightsentry.com/dashboard).
12
21
 
22
+ ```bash
23
+ export INSIGHTSENTRY_API_KEY="your-api-key"
24
+ ```
25
+
26
+ ## MCP Server Setup
27
+
28
+ No global install needed — use npx in your MCP config.
29
+
13
30
  ### Claude Desktop
14
31
 
15
32
  Add to your `claude_desktop_config.json`:
@@ -19,7 +36,7 @@ Add to your `claude_desktop_config.json`:
19
36
  "mcpServers": {
20
37
  "insightsentry": {
21
38
  "command": "npx",
22
- "args": ["@insightsentry/mcp"],
39
+ "args": ["-y", "@insightsentry/mcp"],
23
40
  "env": {
24
41
  "INSIGHTSENTRY_API_KEY": "your-api-key"
25
42
  }
@@ -37,7 +54,7 @@ Add to `.mcp.json` in your project root:
37
54
  "mcpServers": {
38
55
  "insightsentry": {
39
56
  "command": "npx",
40
- "args": ["@insightsentry/mcp"],
57
+ "args": ["-y", "@insightsentry/mcp"],
41
58
  "env": {
42
59
  "INSIGHTSENTRY_API_KEY": "your-api-key"
43
60
  }
@@ -46,6 +63,48 @@ Add to `.mcp.json` in your project root:
46
63
  }
47
64
  ```
48
65
 
66
+ ### Other MCP Clients
67
+
68
+ Any MCP client that supports stdio transport can use the server:
69
+
70
+ ```bash
71
+ insight-mcp
72
+ ```
73
+
74
+ ## CLI Usage
75
+
76
+ ```bash
77
+ insight --help # List all tools
78
+ insight <tool> --help # Tool-specific parameters
79
+ insight <tool> [--param value] # Call a tool
80
+ ```
81
+
82
+ ### Examples
83
+
84
+ ```bash
85
+ # Search for a symbol
86
+ insight search_symbols --query "tesla"
87
+
88
+ # Get real-time quotes
89
+ insight get_quotes --codes "NASDAQ:AAPL,NASDAQ:MSFT"
90
+
91
+ # Daily OHLCV with JSONata filter
92
+ insight get_symbol_series --symbol "NASDAQ:AAPL" --bar_type day --dp 30 \
93
+ --filter "{ \"last_close\": series[-1].close, \"avg_vol\": \$average(series.volume) }"
94
+
95
+ # Screen for high-cap stocks
96
+ insight screen_stocks --fields "close,volume,market_cap" \
97
+ --exchanges "NYSE,NASDAQ" --sortBy market_cap --sortOrder desc
98
+
99
+ # Upcoming earnings
100
+ insight get_earnings --c US
101
+
102
+ # Options chain
103
+ insight list_options --code "NASDAQ:AAPL" --type call --range 10
104
+ ```
105
+
106
+ All tools support `--filter <jsonata>` to transform/reduce the JSON response before output. See [JSONata docs](https://jsonata.org) for expression syntax.
107
+
49
108
  ## Available Tools (28)
50
109
 
51
110
  ### Market Data
@@ -129,7 +188,13 @@ The MCP server also provides documentation resources that AI assistants can read
129
188
  npm install
130
189
  npm run generate # Generate tool definitions from OpenAPI spec
131
190
  npm run build # Generate + compile TypeScript
132
- npm run dev # Run with tsx (no build needed)
191
+ npm run dev # Run MCP server with tsx (no build needed)
192
+ ```
193
+
194
+ ### Testing
195
+
196
+ ```bash
197
+ npx tsx --test test/cli.test.ts # CLI unit tests
133
198
  ```
134
199
 
135
200
  ## License
package/bin/insight.js ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import { main } from "../dist/cli.js";
3
+ main();
package/dist/cli.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ import { z } from "zod";
2
+ import { type ToolDefinition } from "./tool-definitions.js";
3
+ interface ParsedArgs {
4
+ toolName: string | null;
5
+ args: Record<string, string>;
6
+ help: boolean;
7
+ }
8
+ export declare function parseArgs(argv: string[]): ParsedArgs;
9
+ export declare function coerceArgs(args: Record<string, string>, schema: Record<string, z.ZodTypeAny>): Record<string, any>;
10
+ export declare function buildHelp(): string;
11
+ export declare function buildToolHelp(tool: ToolDefinition): string;
12
+ type RequestFn = (method: string, pathTemplate: string, params: Record<string, any>) => Promise<any>;
13
+ interface CliIO {
14
+ write: (s: string) => void;
15
+ exit: (code: number) => void;
16
+ request?: RequestFn;
17
+ }
18
+ export declare function runCli(argv: string[], io: CliIO): Promise<void>;
19
+ export declare function main(): void;
20
+ export {};
21
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE7E,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAoCpD;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,GACnC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA8BrB;AAwBD,wBAAgB,SAAS,IAAI,MAAM,CAqBlC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAoB1D;AAWD,KAAK,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAErG,UAAU,KAAK;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDrE;AAED,wBAAgB,IAAI,SAKnB"}
package/dist/cli.js ADDED
@@ -0,0 +1,190 @@
1
+ import jsonata from "jsonata";
2
+ import { ApiClient } from "./api-client.js";
3
+ import { toolDefinitions } from "./tool-definitions.js";
4
+ export function parseArgs(argv) {
5
+ const args = {};
6
+ let toolName = null;
7
+ let help = false;
8
+ let i = 0;
9
+ // First non-flag arg is the tool name
10
+ if (i < argv.length && !argv[i].startsWith("-")) {
11
+ toolName = argv[i];
12
+ i++;
13
+ }
14
+ while (i < argv.length) {
15
+ const arg = argv[i];
16
+ if (arg === "--help" || arg === "-h") {
17
+ help = true;
18
+ i++;
19
+ continue;
20
+ }
21
+ if (arg.startsWith("--")) {
22
+ const key = arg.slice(2);
23
+ const next = argv[i + 1];
24
+ if (next === undefined || next.startsWith("--")) {
25
+ args[key] = "true";
26
+ i++;
27
+ }
28
+ else {
29
+ args[key] = next;
30
+ i += 2;
31
+ }
32
+ }
33
+ else {
34
+ i++;
35
+ }
36
+ }
37
+ return { toolName, args, help };
38
+ }
39
+ export function coerceArgs(args, schema) {
40
+ const result = {};
41
+ for (const [key, value] of Object.entries(args)) {
42
+ const zodType = schema[key];
43
+ if (!zodType) {
44
+ result[key] = value;
45
+ continue;
46
+ }
47
+ const typeName = getZodTypeName(zodType);
48
+ if (typeName === "number") {
49
+ result[key] = Number(value);
50
+ }
51
+ else if (typeName === "boolean") {
52
+ result[key] = value === "true";
53
+ }
54
+ else if (typeName === "array") {
55
+ if (value.startsWith("[")) {
56
+ try {
57
+ result[key] = JSON.parse(value);
58
+ continue;
59
+ }
60
+ catch { /* fall through to comma split */ }
61
+ }
62
+ result[key] = value.split(",").map((s) => s.trim());
63
+ }
64
+ else {
65
+ result[key] = value;
66
+ }
67
+ }
68
+ return result;
69
+ }
70
+ /** Unwrap optional/default wrappers and return the base Zod def (works across Zod v3 and v4) */
71
+ function resolveZodDef(t) {
72
+ const def = t._zod?.def ?? t._def ?? {};
73
+ const type = def.type ?? def.typeName ?? "";
74
+ if ((type === "optional" || type === "default") && def.innerType) {
75
+ return resolveZodDef(def.innerType);
76
+ }
77
+ return { type, def };
78
+ }
79
+ function getZodTypeName(t) {
80
+ return resolveZodDef(t).type;
81
+ }
82
+ function getZodEnumValues(t) {
83
+ const { type, def } = resolveZodDef(t);
84
+ if (type === "enum" && def.entries) {
85
+ return Object.values(def.entries);
86
+ }
87
+ return [];
88
+ }
89
+ export function buildHelp() {
90
+ const lines = [
91
+ "insight — CLI for the InsightSentry financial data API",
92
+ "",
93
+ "Usage: insight <tool> [--param value ...]",
94
+ "",
95
+ "Tools:",
96
+ ];
97
+ for (const tool of toolDefinitions) {
98
+ const desc = tool.description.split(".")[0]; // first sentence
99
+ lines.push(` ${tool.name.padEnd(32)} ${desc}`);
100
+ }
101
+ lines.push("");
102
+ lines.push("All tools support --filter <jsonata> to transform the response.");
103
+ lines.push("Use: insight <tool> --help for tool-specific parameters.");
104
+ lines.push("");
105
+ lines.push("Environment: INSIGHTSENTRY_API_KEY (required)");
106
+ return lines.join("\n");
107
+ }
108
+ export function buildToolHelp(tool) {
109
+ const lines = [
110
+ `insight ${tool.name}`,
111
+ "",
112
+ tool.description.split("→")[0].trim(),
113
+ "",
114
+ "Parameters:",
115
+ ];
116
+ for (const [key, zodType] of Object.entries(tool.schema)) {
117
+ const optional = zodType.isOptional() ? " [optional]" : "";
118
+ const desc = zodType.description ?? "";
119
+ const typeName = formatTypeName(zodType);
120
+ lines.push(` --${key.padEnd(24)} ${typeName}${optional} ${desc}`);
121
+ }
122
+ // filter is always available
123
+ lines.push(` --${"filter".padEnd(24)} string [optional] JSONata expression to transform the response`);
124
+ return lines.join("\n");
125
+ }
126
+ function formatTypeName(t) {
127
+ const name = getZodTypeName(t);
128
+ if (name === "enum") {
129
+ const values = getZodEnumValues(t);
130
+ return values.length ? `enum(${values.join("|")})` : "enum";
131
+ }
132
+ return name || "string";
133
+ }
134
+ export async function runCli(argv, io) {
135
+ const { toolName, args, help } = parseArgs(argv);
136
+ if (!toolName) {
137
+ io.write(buildHelp());
138
+ io.exit(0);
139
+ return;
140
+ }
141
+ // Find tool
142
+ const tool = toolDefinitions.find((t) => t.name === toolName);
143
+ if (!tool) {
144
+ io.write(`Error: Unknown tool "${toolName}". Run insight --help for available tools.\n`);
145
+ io.exit(1);
146
+ return;
147
+ }
148
+ // Tool help
149
+ if (help) {
150
+ io.write(buildToolHelp(tool));
151
+ io.exit(0);
152
+ return;
153
+ }
154
+ // Resolve request function
155
+ let request;
156
+ if (io.request) {
157
+ request = io.request;
158
+ }
159
+ else {
160
+ const apiKey = process.env.INSIGHTSENTRY_API_KEY?.trim();
161
+ if (!apiKey) {
162
+ io.write("Error: INSIGHTSENTRY_API_KEY environment variable is not set.\nGet your API key from https://insightsentry.com/dashboard\n");
163
+ io.exit(1);
164
+ return;
165
+ }
166
+ const client = new ApiClient(apiKey);
167
+ request = (method, path, params) => client.request(method, path, params);
168
+ }
169
+ const { filter: filterExpr, ...apiArgs } = coerceArgs(args, tool.schema);
170
+ try {
171
+ let result = await request(tool.method, tool.pathTemplate, apiArgs);
172
+ if (filterExpr && typeof filterExpr === "string") {
173
+ const expr = jsonata(filterExpr);
174
+ result = await expr.evaluate(result);
175
+ }
176
+ const output = typeof result === "string" ? result : JSON.stringify(result, null, 2);
177
+ io.write(output);
178
+ }
179
+ catch (error) {
180
+ io.write(`Error: ${error.message}\n`);
181
+ io.exit(1);
182
+ }
183
+ }
184
+ export function main() {
185
+ runCli(process.argv.slice(2), {
186
+ write: (s) => process.stdout.write(s + "\n"),
187
+ exit: (code) => process.exit(code),
188
+ });
189
+ }
190
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  // AUTO-GENERATED by scripts/generate.ts — do not edit manually
2
- // Source: typescript/website/public/openapi.json
2
+ // Source: https://insightsentry.com/openapi.json
3
3
  import { z } from "zod";
4
4
  export const toolDefinitions = [
5
5
  {
package/package.json CHANGED
@@ -1,11 +1,13 @@
1
1
  {
2
2
  "name": "@insightsentry/mcp",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
4
4
  "description": "MCP server for InsightSentry financial data API - provides AI-accessible tools for market data, screening, options, and comprehensive API documentation resources",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
8
- "insightsentry-mcp": "./bin/insightsentry-mcp.js"
8
+ "mcp": "./bin/insight-mcp.js",
9
+ "insight-mcp": "./bin/insight-mcp.js",
10
+ "insight": "./bin/insight.js"
9
11
  },
10
12
  "files": [
11
13
  "dist",
@@ -21,6 +23,7 @@
21
23
  },
22
24
  "keywords": [
23
25
  "mcp",
26
+ "insight",
24
27
  "insightsentry",
25
28
  "financial-data",
26
29
  "stock-market",
@@ -36,11 +39,11 @@
36
39
  "zod": "^4.3.6"
37
40
  },
38
41
  "devDependencies": {
39
- "@types/node": "^22.19.15",
42
+ "@types/node": "^22.19.17",
40
43
  "tsx": "^4.19.4",
41
44
  "typescript": "^5.8.3"
42
45
  },
43
46
  "engines": {
44
47
  "node": ">=18"
45
48
  }
46
- }
49
+ }
File without changes