{"_id":"@chanmeng666/google-news-server","name":"@chanmeng666/google-news-server","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@chanmeng666/google-news-server","version":"1.0.0","description":"MCP server for Google News search via SerpAPI","type":"module","bin":{"google-news-server":"dist/index.js"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', '755')\"","prepare":"npm run build","watch":"tsc --watch","start":"node dist/index.js","dev":"ts-node-dev --respawn src/index.ts","lint":"eslint src/**/*.ts","test":"jest"},"dependencies":{"@modelcontextprotocol/sdk":"^0.6.1","axios":"^1.7.9"},"devDependencies":{"@types/axios":"^0.14.0","@types/node":"^20.17.10","typescript":"^5.3.3","ts-node-dev":"^2.0.0","eslint":"^8.56.0","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0","jest":"^29.7.0","@types/jest":"^29.5.12","ts-jest":"^29.1.2"},"_id":"@chanmeng666/google-news-server@1.0.0","gitHead":"59a49c44723c2d8b63ca1022a3aacb31eebce383","_nodeVersion":"20.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-FR9rxONbpZsI4CBGKE3iHHP4611EpvQh2zfopiqCy39/zc2280HWKKywHUX2dnngxRFyY8+IqBE1Pw9dKZsrbQ==","shasum":"f7dabc3670c8dde1762f37d8a7b89d9e043b1169","tarball":"https://registry.npmjs.org/@chanmeng666/google-news-server/-/google-news-server-1.0.0.tgz","fileCount":5,"unpackedSize":17116,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDpFWARmpImq8XfjJ2D+Wyanf3wcgNaQR0Ir2VuZMPAtAIgDPVeibQuKg+LP+02Z9RRdpGEUGBWhdxF2Cmk8s4jwlg="}]},"_npmUser":{"name":"chanmeng666","email":"tomoko230311@outlook.com"},"directories":{},"maintainers":[{"name":"chanmeng666","email":"tomoko230311@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/google-news-server_1.0.0_1735705428274_0.1939327224607308"},"_hasShrinkwrap":false}},"time":{"created":"2025-01-01T04:23:48.180Z","1.0.0":"2025-01-01T04:23:48.464Z","modified":"2025-01-01T04:23:48.737Z"},"maintainers":[{"name":"chanmeng666","email":"tomoko230311@outlook.com"}],"description":"MCP server for Google News search via SerpAPI","readme":"<div align=\"center\">\r\n <h1><img src=\"public/server-google-news.svg\" width=\"80px\"><br/>Google News MCP Server</h1>\r\n <img src=\"https://img.shields.io/badge/TypeScript-007ACC?style=flat&logo=typescript&logoColor=white\"/>\r\n <img src=\"https://img.shields.io/badge/Node.js-43853D?style=flat&logo=node.js&logoColor=white\"/>\r\n <img src=\"https://img.shields.io/badge/MCP-Server-blue?style=flat\"/>\r\n <img src=\"https://img.shields.io/badge/License-MIT-brightgreen?style=flat\"/>\r\n</div>\r\n<br/>\r\n\r\nA Model Context Protocol (MCP) server implementation that provides Google News search capabilities via SerpAPI integration. Automatically categorizes news results and supports multiple languages and regions.\r\n\r\n<a href=\"https://glama.ai/mcp/servers/dbx6imq4ef\"><img width=\"380\" height=\"200\" src=\"https://glama.ai/mcp/servers/dbx6imq4ef/badge\" alt=\"Google News Server MCP server\" /></a>\r\n\r\nEnglish | [简体中文](./README_CN.md)\r\n\r\nhttps://github.com/user-attachments/assets/1cc71c27-f840-4c94-9ab5-460d84ba4779\r\n\r\n\r\n![屏幕截图 2024-12-30 021446](https://github.com/user-attachments/assets/34985fac-a529-4aac-a77d-b0b93f70d0f7)\r\n\r\n![屏幕截图 2024-12-30 021524](https://github.com/user-attachments/assets/6d1d3069-db04-421e-83b9-6ecdbce4847e)\r\n\r\n![屏幕截图 2024-12-30 021914](https://github.com/user-attachments/assets/16889a09-c05d-47dc-b3fe-5ea3771e059d)\r\n\r\n![屏幕截图 2024-12-30 021941](https://github.com/user-attachments/assets/da20e7a6-f2e8-4aec-bab9-f19322d0f798)\r\n\r\n\r\n# ✨ Features\r\n\r\n### 🔍 Flexible Search Options\r\nComprehensive search capabilities including query-based search, topic search, publication filtering and story coverage.\r\n\r\n### 🌐 Global Coverage\r\nSupports multiple languages and regions through configurable language and country codes.\r\n\r\n### 📊 Smart Categorization \r\nAutomatically categorizes news results into topics like AI & Technology, Business, Science & Research, and Healthcare.\r\n\r\n### 🔀 Multiple Result Types\r\nHandles various news result types including headlines, stories, related topics and menu links.\r\n\r\n### 🛠️ Robust Error Handling\r\nComprehensive error handling for API failures and invalid inputs, with helpful error messages.\r\n\r\n### 🌍 Language Support\r\nAutomatic fallback to English for unsupported language codes with appropriate user notifications.\r\n\r\n# 🔑 SERP API Setup Guide\r\n\r\nBefore getting started, you'll need to obtain a SERP API key. Here's how:\r\n\r\n1. Visit [SERP API website](https://serpapi.com/) and create an account\r\n\r\n2. After registration, go to your Dashboard:\r\n   - Locate the \"API Key\" section\r\n   - Copy your API key\r\n   - New users get 100 free API calls\r\n\r\n3. API Usage Details:\r\n   - Free tier: 100 searches per month\r\n   - Paid plans start at $50/month for 5000 searches\r\n   - Billing based on successful API calls\r\n   - Multiple payment methods: Credit Card, PayPal, etc.\r\n\r\n4. Usage Limits:\r\n   - Request Rate: 2 requests/second\r\n   - IP Restrictions: None\r\n   - Concurrent Requests: 5\r\n   - Response Cache Time: 1 hour\r\n\r\n# 👩‍🔧 Solution for MCP Servers Connection Issues with NVM/NPM\r\n\r\nClick to view my configuration solution 👉 https://github.com/modelcontextprotocol/servers/issues/76\r\n\r\n# 🚀 Quick Start\r\n\r\n1. Install dependencies:\r\n```bash\r\nnpm install\r\n```\r\n\r\n2. Configure environment:\r\nModify your `claude_desktop_config.json` with the following content (adjust paths according to your system):\r\n```json\r\n    \"google-news\": {\r\n      \"command\": \"D:\\\\Program\\\\nvm\\\\node.exe\",\r\n      \"args\": [\r\n        \"D:\\\\github_repository\\\\path_to\\\\dist\\\\index.js\"\r\n      ],\r\n      \"env\": {\r\n        \"SERP_API_KEY\": \"your-api-key\"\r\n      }\r\n    }\r\n```\r\n\r\n3. Build the server:\r\n```bash\r\nnpm run build\r\n```\r\n\r\n4. Start the server:\r\n```bash\r\nnpm start\r\n```\r\n\r\n## Troubleshooting\r\n\r\n1. Invalid API Key\r\n- Verify API key configuration in `claude_desktop_config.json`\r\n- Confirm API key is active in SERP API dashboard\r\n\r\n2. Request Failures\r\n- Check network connectivity\r\n- Verify API call quota hasn't been exceeded\r\n- Validate request parameter format\r\n\r\n# 💻 Tech Stack\r\n![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)\r\n![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge&logo=node.js&logoColor=white)\r\n![MCP](https://img.shields.io/badge/MCP-SDK-blue?style=for-the-badge)\r\n\r\n# 📖 API Documentation\r\n\r\nThe server implements the Model Context Protocol and exposes a Google News search tool with the following parameters:\r\n\r\n- `q`: Search query string\r\n- `gl`: Country code (e.g., 'us', 'uk')\r\n- `hl`: Language code (e.g., 'en', 'es')\r\n- `topic_token`: Token for specific news topics\r\n- `publication_token`: Token for specific publishers\r\n- `story_token`: Token for full coverage of a story\r\n- `section_token`: Token for specific sections\r\n\r\n# 🔧 Development\r\n\r\n```bash\r\n# Run in development mode with hot reload\r\nnpm run dev\r\n\r\n# Run linting\r\nnpm run lint\r\n\r\n# Run tests\r\nnpm run test\r\n```\r\n\r\n# 📝 License\r\n\r\nThis project is [MIT licensed](./LICENSE).\r\n\r\n# 🙋‍♀ Author\r\n\r\nCreated and maintained by [Chan Meng](https://chanmeng.live/).\r\n[![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=normal&logo=github&logoColor=white)](https://github.com/ChanMeng666)\r\n[![LinkedIn](https://img.shields.io/badge/linkedin-%230077B5.svg?style=normal&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/chanmeng666/)\r\n","readmeFilename":"README.md"}