Files
mcp-server/src/index.ts
T
Space-Banane bc42508849
CI / Build & Test (push) Successful in 17s
feat: add polls, deep-dive, ticket messages, and mod API key tools
- New polls.ts: 13 tools covering full poll lifecycle (create/list/get/
  update/delete/vote/like/dislike/review) and poll comments
- news.ts: get_deep_dive and regenerate_deep_dive for AI analysis
- tickets.ts: create_ticket_message with internal-note and attachment support
- moderation.ts: list/update/revoke mod-managed user API keys
- user.ts: list_my_polls and list_my_poll_votes
- Bump server version to 1.2.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 22:31:48 +02:00

48 lines
1.8 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 { 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);