mattrguerra/meridian-orders-mcpmainPrivate on GitHub, published here in full

index.ts

Language TypeScript1.3 KB31 lines

mcp-server/src/index.ts

  1. #!/usr/bin/env node
  2. import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
  3. import { createServer } from "./server.js";
  4. import { configFromEnv } from "./lib/config.js";
  5. import { InMemoryRateLimiter } from "./lib/rateLimit.js";
  6. /**
  7. * Node entry point: stdio transport, for local development.
  8. *
  9. * The company-wide, hosted deployment uses the Cloudflare Workers entry
  10. * (src/worker.ts) over remote HTTP. This file exists so the same tool set can
  11. * be exercised locally from a desktop MCP client without deploying.
  12. *
  13. * `process` is Node-only and is confined to this file; the shared core
  14. * (server.ts, lib/, tools/) reads no globals.
  15. */
  16. async function main(): Promise<void> {
  17. const config = configFromEnv(process.env);
  18. // Single-process limiter for stdio dev. The hosted Worker uses a shared
  19. // Durable-Object limiter instead (src/rateLimiterDO.ts).
  20. const server = createServer({ config, limiter: new InMemoryRateLimiter() });
  21. const transport = new StdioServerTransport();
  22. await server.connect(transport);
  23. // stdio transport: never write logs to stdout (reserved for protocol).
  24. console.error("meridian-orders-mcp running on stdio: read-only, live requests gated.");
  25. }
  26. main().catch((err) => {
  27. console.error("Fatal:", err);
  28. process.exit(1);
  29. });