Files
mcp-server/src/index.ts
T
2026-06-18 16:49:16 +02:00

46 lines
1.7 KiB
JavaScript

#!/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 { registerLegalTools } from "./tools/legal.js";
import { registerBlogTools } from "./tools/blog.js";
import { registerApiKeyTools } from "./tools/api-keys.js";
import { registerSessionTools } from "./tools/sessions.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.1.0",
});
registerNewsTools(server, client);
registerCommentTools(server, client);
registerSourceTools(server, client);
registerUserTools(server, client);
registerModerationTools(server, client);
registerTicketTools(server, client);
registerLegalTools(server, client);
registerBlogTools(server, client);
registerApiKeyTools(server, client);
registerSessionTools(server, client);
const transport = new StdioServerTransport();
await server.connect(transport);