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:
@@ -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);
|
||||
Reference in New Issue
Block a user