#!/usr/bin/env node import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { BetterNewsClient } from "./client.js"; import { registerNewsTools } from "./tools/news.js"; import { registerCommentTools } from "./tools/comments.js"; import { registerSourceTools } from "./tools/sources.js"; import { registerUserTools } from "./tools/user.js"; import { registerModerationTools } from "./tools/moderation.js"; import { registerTicketTools } from "./tools/tickets.js"; import { registerBlogTools } from "./tools/blog.js"; import { registerApiKeyTools } from "./tools/api-keys.js"; import { registerSessionTools } from "./tools/sessions.js"; import { registerDiscussionTools } from "./tools/discussions.js"; import { registerPollTools } from "./tools/polls.js"; const apiKey = process.env.BETTERNEWS_API_KEY; if (!apiKey) { process.stderr.write( "Error: BETTERNEWS_API_KEY environment variable is required.\n" + "Create an API key at https://betternews.app/settings/api-keys and set it.\n", ); process.exit(1); } const baseUrl = process.env.BETTERNEWS_BASE_URL ?? "https://api.betternews.app"; const client = new BetterNewsClient(apiKey, baseUrl); const server = new McpServer({ name: "betternews", version: "1.2.0", }); registerNewsTools(server, client); registerCommentTools(server, client); registerSourceTools(server, client); registerUserTools(server, client); registerModerationTools(server, client); registerTicketTools(server, client); registerBlogTools(server, client); registerApiKeyTools(server, client); registerSessionTools(server, client); registerDiscussionTools(server, client); registerPollTools(server, client); const transport = new StdioServerTransport(); await server.connect(transport);