feat: initialize BetterNews MCP server with core functionality

- Add .gitignore to exclude node_modules, dist, and .env files
- Create README.md with setup instructions and API key information
- Add package.json with dependencies, scripts, and project metadata
- Implement BetterNewsClient for API interactions
- Set up index.ts to initialize MCP server and register tools
- Create tools for managing news, comments, sources, users, moderation, and tickets
- Add TypeScript configuration for project compilation
This commit is contained in:
Space-Banane
2026-06-17 21:30:52 +02:00
commit 6c0a079808
13 changed files with 1005 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
#!/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";
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 client = new BetterNewsClient(apiKey);
const server = new McpServer({
name: "betternews",
version: "1.0.0",
});
registerNewsTools(server, client);
registerCommentTools(server, client);
registerSourceTools(server, client);
registerUserTools(server, client);
registerModerationTools(server, client);
registerTicketTools(server, client);
registerLegalTools(server, client);
const transport = new StdioServerTransport();
await server.connect(transport);