{"_id":"@allonli/brave-news-mcp","_rev":"2-7a190023661f3cbb68ea566a70241249","name":"@allonli/brave-news-mcp","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.3":{"name":"@allonli/brave-news-mcp","version":"1.0.3","keywords":["mcp","brave","news","search","summarize"],"license":"ISC","_id":"@allonli/brave-news-mcp@1.0.3","maintainers":[{"name":"allonli","email":"allonli@163.com"}],"homepage":"https://github.com/allonli/brave-news-mcp#readme","bugs":{"url":"https://github.com/allonli/brave-news-mcp/issues"},"bin":{"brave-news-mcp":"src/cli.js"},"dist":{"shasum":"de3a4d27939d8e4ecd430e049092015f6a94dd78","tarball":"https://registry.npmjs.org/@allonli/brave-news-mcp/-/brave-news-mcp-1.0.3.tgz","fileCount":7,"integrity":"sha512-zDFu1hHLF+4zESp8MY6R67tf6RWEA5e/9hdr8WPQ9HoAmYanAtau/ipHBU4I+BuvLyo9kuT7bCTru+HDyNQKNQ==","signatures":[{"sig":"MEUCIFtCPnvmmvWI2Z8ZsIpi7p4sRkr8JfXctesKvCiAc4YWAiEAwgemsXWef48B3w7XZm79hGq+NO1FDxEqPk3+Ta+726k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7513},"main":"src/mcp.js","type":"module","engines":{"node":">=18"},"gitHead":"130ad84a29be89f07fab46ce518394621605b4ce","scripts":{"test":"echo 'no tests' && exit 0","start:mcp":"node src/mcp.js"},"_npmUser":{"name":"allonli","email":"allonli@163.com"},"repository":{"url":"git+https://github.com/allonli/brave-news-mcp.git","type":"git"},"_npmVersion":"10.9.4","description":"MCP server for Brave News search and summarization (stdio)","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","dotenv":"^17.2.3","@modelcontextprotocol/sdk":"^1.23.0"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/brave-news-mcp_1.0.3_1764310811063_0.21566067013605972","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@allonli/brave-news-mcp","version":"1.0.4","type":"module","main":"src/mcp.js","bin":{"brave-news-mcp":"src/cli.js"},"scripts":{"start:mcp":"node src/mcp.js","test":"echo 'no tests' && exit 0"},"description":"MCP server for Brave News search and summarization (stdio)","license":"ISC","repository":{"type":"git","url":"git+https://github.com/allonli/brave-news-mcp.git"},"keywords":["mcp","brave","news","search","summarize"],"engines":{"node":">=18"},"dependencies":{"@modelcontextprotocol/sdk":"^1.23.0","dotenv":"^17.2.3","zod":"^4.1.13"},"devDependencies":{},"_id":"@allonli/brave-news-mcp@1.0.4","gitHead":"811236a822cac98214d47a16c8ef408007d22fac","bugs":{"url":"https://github.com/allonli/brave-news-mcp/issues"},"homepage":"https://github.com/allonli/brave-news-mcp#readme","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-bQdaibcUhk/QXrlJAEJzsVakw82xnjAC37twDmscWdCht/kuOyovbtDs9F/gSHXZd54NuOA2G5gDE0d9QuHiLQ==","shasum":"f0670f09cd1a2dbcc60893c42683604faaa2e770","tarball":"https://registry.npmjs.org/@allonli/brave-news-mcp/-/brave-news-mcp-1.0.4.tgz","fileCount":7,"unpackedSize":7966,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDKb3vHTNQ0Mb38MoFmu0u8Xm/jEa980ZErV/zfAOgdgAiBMWTb1b4gAB5QOopMQ3f1BNC04341FUgTLDoelJAq/RA=="}]},"_npmUser":{"name":"allonli","email":"allonli@163.com"},"directories":{},"maintainers":[{"name":"allonli","email":"allonli@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/brave-news-mcp_1.0.4_1764320190430_0.9095241413302184"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-28T06:20:11.009Z","modified":"2025-11-28T08:56:30.782Z","1.0.3":"2025-11-28T06:20:11.256Z","1.0.4":"2025-11-28T08:56:30.603Z"},"bugs":{"url":"https://github.com/allonli/brave-news-mcp/issues"},"license":"ISC","homepage":"https://github.com/allonli/brave-news-mcp#readme","keywords":["mcp","brave","news","search","summarize"],"repository":{"type":"git","url":"git+https://github.com/allonli/brave-news-mcp.git"},"description":"MCP server for Brave News search and summarization (stdio)","maintainers":[{"name":"allonli","email":"allonli@163.com"}],"readme":"# Brave News MCP\n\n基于 Brave News API 的 MCP 服务器，支持 HTTP（Streamable HTTP）与 stdio 传输，提供工具 `brave_news_search` 用于按查询参数拉取并汇总新闻。\n\n## ModelScope MCP 配置（自动解析）\n```json\n{\n  \"mcpServers\": {\n    \"brave-news-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@allonli/brave-news-mcp@latest\"],\n      \"env\": {\n        \"BRAVE_NEWS_TOKEN\": \"your_token_here\"\n      }\n    }\n  }\n}\n```\n\n```yaml\nmcpServers:\n  brave-news-mcp:\n    command: npx\n    args:\n      - '@allonli/brave-news-mcp@latest'\n    env:\n      BRAVE_NEWS_TOKEN: your_token_here\n```\n\n**MCP 服务命令配置（用于平台自动解析）**\n- 顶层字段：`mcpServers`（对象）\n- 服务键：`brave-news-mcp`\n- 命令：`node`\n- 参数：`[\"src/mcp.js\"]`\n- 环境变量：`BRAVE_NEWS_TOKEN`\n- 工具列表：`[\"brave_news_search\"]`\n\nJSON：\n\n```json\n{\n  \"mcp\": {\n    \"name\": \"brave-news-mcp\",\n    \"transport\": \"http\",\n    \"endpoint\": \"/mcp\",\n    \"health\": \"/health\",\n    \"port\": 8000,\n    \"start\": \"node src/http-mcp.js\",\n    \"env\": [\"BRAVE_NEWS_TOKEN\"],\n    \"tools\": [\"brave_news_search\"]\n  }\n}\n```\n\nYAML：\n\n```yaml\nmcp:\n  name: brave-news-mcp\n  transport: http\n  endpoint: /mcp\n  health: /health\n  port: 8000\n  start: node src/http-mcp.js\n  env:\n    - BRAVE_NEWS_TOKEN\n  tools:\n    - brave_news_search\n```\n\n**运行与验证**\n- 本地运行 MCP（stdio）：`BRAVE_NEWS_TOKEN=... npm run start:mcp`\n- 测试：`BRAVE_NEWS_TOKEN=... npm test`\n\n**发布到 npm（自动化）**\n- 在 GitHub 仓库中添加仓库密钥 `NPM_TOKEN`（npm 网站生成的发布令牌）\n- 推送标签触发发布：\n  - `npm version patch` 或 `npm version minor`\n  - `git push --tags`\n- 或手动触发工作流（Actions → Publish to npm → Run workflow）\n- 发布后可通过 ModelScope 的托管检测：\n  - `command: npx`, `args: [\"brave-news-mcp@latest\"]`\n\n**在 Playground 传入令牌（无环境变量时）**\n- 工具 `brave_news_search` 支持可选参数 `token`。当服务端未设置环境变量 `BRAVE_NEWS_TOKEN` 时，可在调用参数中传入：\n  - 示例：\n    - `{\"q\":\"munich\",\"count\":10,\"search_lang\":\"en\",\"token\":\"YOUR_BRAVE_NEWS_TOKEN\"}`\n  - 该字段会作为 `X-Subscription-Token` 使用。\n\n**部署到 ModelScope**\n- 容器镜像（可选）：使用项目根目录 `Dockerfile`，入口 `node src/http-mcp.js`，端口 `8000`\n- 详细部署指引：见 `README-ModelScope.md`\n","readmeFilename":"README.md"}