@michaleffffff/mcp-trading-server 2.2.1 → 2.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.
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Global stdout redirection for MCP JSON-RPC compatibility.
3
+ * This file MUST be imported before any other module that might perform logging
4
+ * or import the @myx-trade/sdk.
5
+ */
6
+ const originalStdoutWrite = process.stdout.write.bind(process.stdout);
7
+ process.stdout.write = (chunk, encoding, callback) => {
8
+ const output = chunk.toString();
9
+ // JSON-RPC messages always start with { "jsonrpc": "2.0"
10
+ if (output.trim().startsWith('{') && output.includes('"jsonrpc"')) {
11
+ return originalStdoutWrite(chunk, encoding, callback);
12
+ }
13
+ // Everything else goes to stderr
14
+ return process.stderr.write(chunk, encoding, callback);
15
+ };
16
+ // Also explicitly redirect console.log to console.error
17
+ console.log = console.error;
18
+ console.info = console.error;
19
+ console.debug = console.error;
20
+ console.warn = console.error;
21
+ export {};
package/dist/server.js CHANGED
@@ -1,23 +1,16 @@
1
1
  #!/usr/bin/env node
2
- /**
3
- * Global stdout redirection for MCP JSON-RPC compatibility.
4
- * Intercepts all process.stdout.write calls and redirects non-JSON strings to stderr.
5
- */
6
- const originalStdoutWrite = process.stdout.write.bind(process.stdout);
7
- process.stdout.write = (chunk, encoding, callback) => {
8
- const output = chunk.toString();
9
- // JSON-RPC messages always start with { "jsonrpc": "2.0"
10
- if (output.trim().startsWith('{') && output.includes('"jsonrpc"')) {
11
- return originalStdoutWrite(chunk, encoding, callback);
12
- }
13
- // Everything else goes to stderr
14
- return process.stderr.write(chunk, encoding, callback);
15
- };
16
- // Also explicitly redirect console.log to console.error
17
- console.log = console.error;
18
- console.info = console.error;
19
- console.debug = console.error;
20
- console.warn = console.error;
2
+ import "./redirection.js";
3
+ import "dotenv/config";
4
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
5
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
6
+ import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
7
+ import { z } from "zod";
8
+ // Tools & Modules
9
+ import * as baseTools from "./tools/index.js";
10
+ import * as baseResources from "./resources/index.js";
11
+ import * as basePrompts from "./prompts/index.js";
12
+ import { logger } from "./utils/logger.js";
13
+ import { MCPError, ErrorCode } from "./utils/errors.js";
21
14
  // --- Process Logic Protection ---
22
15
  // Catch unhandled promise rejections
23
16
  process.on('unhandledRejection', (reason, promise) => {
@@ -36,17 +29,6 @@ const shutdown = () => {
36
29
  };
37
30
  process.on('SIGINT', shutdown);
38
31
  process.on('SIGTERM', shutdown);
39
- import "dotenv/config";
40
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
41
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
42
- import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
43
- import { z } from "zod";
44
- // Tools & Modules
45
- import * as baseTools from "./tools/index.js";
46
- import * as baseResources from "./resources/index.js";
47
- import * as basePrompts from "./prompts/index.js";
48
- import { logger } from "./utils/logger.js";
49
- import { MCPError, ErrorCode } from "./utils/errors.js";
50
32
  // ─── 注册表 ───
51
33
  const allTools = Object.values(baseTools);
52
34
  const allResources = Object.values(baseResources);
@@ -85,7 +67,7 @@ function zodSchemaToJsonSchema(zodSchema) {
85
67
  };
86
68
  }
87
69
  // ─── MCP Server ───
88
- const server = new Server({ name: "myx-mcp-trading-server", version: "2.2.1" }, { capabilities: { tools: {}, resources: {}, prompts: {} } });
70
+ const server = new Server({ name: "myx-mcp-trading-server", version: "2.2.2" }, { capabilities: { tools: {}, resources: {}, prompts: {} } });
89
71
  // List tools
90
72
  server.setRequestHandler(ListToolsRequestSchema, async () => {
91
73
  return {
@@ -185,7 +167,7 @@ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
185
167
  async function main() {
186
168
  const transport = new StdioServerTransport();
187
169
  await server.connect(transport);
188
- logger.info("🚀 MYX Trading MCP Server v2.1 running (stdio, pure on-chain, prod ready)");
170
+ logger.info("🚀 MYX Trading MCP Server v2.2.2 running (stdio, pure on-chain, prod ready)");
189
171
  }
190
172
  main().catch((err) => {
191
173
  logger.error("Fatal Server Startup Error", err);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@michaleffffff/mcp-trading-server",
3
- "version": "2.2.1",
3
+ "version": "2.2.2",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "myx-mcp": "dist/server.js"