46 lines
1.7 KiB
JavaScript
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);
|