{"_id":"@antmanler/websearch-mcp","_rev":"4-b250eb3ac5b9a0cb14cb888ba4b2569c","name":"@antmanler/websearch-mcp","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@antmanler/websearch-mcp","version":"0.1.0","license":"MIT","_id":"@antmanler/websearch-mcp@0.1.0","maintainers":[{"name":"antmanler","email":"antmanler@gmail.com"}],"bin":{"websearch-mcp":"bin/websearch-mcp"},"dist":{"shasum":"ee18b3f06ce62e2fa2ca58a09e32e142d97fb5ba","tarball":"https://registry.npmjs.org/@antmanler/websearch-mcp/-/websearch-mcp-0.1.0.tgz","fileCount":6,"integrity":"sha512-reAtj5X5HSWbu5q4TtFRLKROneQz28BhJEIvLa8XorXLiC/5uugnLo/nG5uWcKd7+O58iL8Fjbcmd44u/JhEtA==","signatures":[{"sig":"MEUCIQCuwXNWNN2WMVMq1alfyJa/cbJYORKDWu8aRfiSMNC8JAIgAR3hDJGcOHOs6gdluEeiJckYCUM/rjfuyJO2bogr4QY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46544497},"main":"index.js","gitHead":"e292af953093993326a06b1d1c7bf7a320ed745f","scripts":{"pack":"npm run build:linux && npm run build:macos && npm pack","test":"/usr/local/go/bin/go test ./...","build":"./build.sh --linux-amd64","client":"./run-client.sh","npx-test":"./npx-test.sh","build:linux":"./build.sh --linux-amd64","build:macos":"./build.sh --macos","postinstall":"node install.js","build:package":"./build.sh --linux-amd64 --package && ./build.sh --macos --package"},"_npmUser":{"name":"antmanler","email":"antmanler@gmail.com"},"_npmVersion":"10.9.2","description":"Go-based MCP web search server","directories":{},"_nodeVersion":"22.15.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/websearch-mcp_0.1.0_1767506566163_0.5890989292863928","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@antmanler/websearch-mcp","version":"0.2.0","license":"MIT","_id":"@antmanler/websearch-mcp@0.2.0","maintainers":[{"name":"antmanler","email":"antmanler@gmail.com"}],"bin":{"websearch-mcp":"bin/websearch-mcp"},"dist":{"shasum":"28afc88073a9e14a1a8788926735210a02f78dd4","tarball":"https://registry.npmjs.org/@antmanler/websearch-mcp/-/websearch-mcp-0.2.0.tgz","fileCount":6,"integrity":"sha512-ydULxaoPGx5m2kRcbKyyM1PWX3Qw6d7GV5bugN1FvxGLRl6gEmBrdF0hBcJBLPy952Gm7jAsx5LWol/ZV4JRhQ==","signatures":[{"sig":"MEQCIQCVoOLokmHGTP81UZyRRrjojKyFYDC477ykb+jjWGZbSwIfJgVB/A54I9MdoTS8du1zxCppg959H2lz3RjJfgShag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46545513},"main":"index.js","gitHead":"0644ba19a819c46756395c391ba91972009ade05","scripts":{"pack":"npm run clean && npm run build:linux && npm run build:macos && npm pack","test":"/usr/local/go/bin/go test ./...","build":"./build.sh --linux-amd64","clean":"rm -rf ./bin ./dist ./*.tgz","client":"./run-client.sh","publish":"npm run pack && npm publish --access public --registry=https://registry.npmjs.org/","npx-test":"./npx-test.sh","build:linux":"./build.sh --linux-amd64","build:macos":"./build.sh --macos","postinstall":"node install.js","build:package":"./build.sh --linux-amd64 --package && ./build.sh --macos --package"},"_npmUser":{"name":"antmanler","email":"antmanler@gmail.com"},"_npmVersion":"10.9.2","description":"Go-based MCP web search server","directories":{},"_nodeVersion":"22.15.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/websearch-mcp_0.2.0_1767510310066_0.4538520316576593","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@antmanler/websearch-mcp","version":"0.2.1","license":"MIT","_id":"@antmanler/websearch-mcp@0.2.1","maintainers":[{"name":"antmanler","email":"antmanler@gmail.com"}],"bin":{"websearch-mcp":"bin/websearch-mcp"},"dist":{"shasum":"4e9d37f65a55c6d460f5646c44e31a953f7fbc8b","tarball":"https://registry.npmjs.org/@antmanler/websearch-mcp/-/websearch-mcp-0.2.1.tgz","fileCount":7,"integrity":"sha512-gdpADuMKaohttv5fuBmF3xvHIQioNowDCbmafan/s212VPKfuyHZM+FXzEShBEsZiija9KYcWPiUjBFjPDhY1Q==","signatures":[{"sig":"MEYCIQCC59W1eBdHnqMHJx+JBSfznefDBGkFBcQarZOixInd8AIhAPDhx/WA7uuN3EYGBsdWsNwgKyIHiZ2M4JBpdtUCxZum","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61328313},"main":"index.js","gitHead":"be48615e14263e117f6b5d0a66f674d9800caf95","scripts":{"pack":"npm run clean && npm run build:linux && npm run build:linux-arm64 && npm run build:macos && npm pack","test":"/usr/local/go/bin/go test ./...","build":"./build.sh --linux-amd64","clean":"rm -rf ./bin ./dist ./*.tgz","client":"./run-client.sh","publish":"npm run pack && npm publish --access public --registry=https://registry.npmjs.org/","npx-test":"./npx-test.sh","build:linux":"./build.sh --linux-amd64","build:macos":"./build.sh --macos","postinstall":"node install.js","build:package":"./build.sh --linux-amd64 --package && ./build.sh --linux-arm64 --package && ./build.sh --macos --package","build:linux-arm64":"./build.sh --linux-arm64"},"_npmUser":{"name":"antmanler","email":"antmanler@gmail.com"},"_npmVersion":"10.9.2","description":"Go-based MCP web search server","directories":{},"_nodeVersion":"22.15.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/websearch-mcp_0.2.1_1767872927116_0.7839471321158691","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@antmanler/websearch-mcp","version":"0.2.2","description":"Go-based MCP web search server","license":"MIT","main":"index.js","bin":{"websearch-mcp":"bin/websearch-mcp"},"scripts":{"build":"./build.sh --linux-amd64","build:linux":"./build.sh --linux-amd64","build:linux-arm64":"./build.sh --linux-arm64","build:macos":"./build.sh --macos","build:package":"./build.sh --linux-amd64 --package && ./build.sh --linux-arm64 --package && ./build.sh --macos --package","clean":"rm -rf ./bin ./dist ./*.tgz","test":"/usr/local/go/bin/go test ./...","client":"./run-client.sh","npx-test":"./npx-test.sh","postinstall":"node install.js","pack":"npm run clean && npm run build:linux && npm run build:linux-arm64 && npm run build:macos && npm pack","publish":"npm run pack && npm publish --access public --registry=https://registry.npmjs.org/"},"dependencies":{},"_id":"@antmanler/websearch-mcp@0.2.2","gitHead":"0b5b37dab8c18bd5cb430cb22bc290c8b459b44f","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-IQHLiuNMjrtV/drjIWuZ5SQbAa9egtOmJVTm2Dz9muRghF5+CnzlU21rwzq9f3Iy8e6dsG0W1vtE7VuYs3v7cw==","shasum":"e262ecd27deb6f05c274b79dba2d8bd978f74a0d","tarball":"https://registry.npmjs.org/@antmanler/websearch-mcp/-/websearch-mcp-0.2.2.tgz","fileCount":7,"unpackedSize":61347478,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDDdqVNDp05xaw+cIQ1g4VoQi4JQ8A8fmW29qDx35+UwwIgRFh9DIwPvHX8kNzaNSZUFPIZQKOVS1H9LsmN4XUxG1o="}]},"_npmUser":{"name":"antmanler","email":"antmanler@gmail.com"},"directories":{},"maintainers":[{"name":"antmanler","email":"antmanler@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/websearch-mcp_0.2.2_1767940792683_0.954218878518001"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-04T06:02:46.082Z","modified":"2026-01-09T06:39:53.717Z","0.1.0":"2026-01-04T06:02:46.888Z","0.2.0":"2026-01-04T07:05:10.826Z","0.2.1":"2026-01-08T11:48:48.042Z","0.2.2":"2026-01-09T06:39:53.536Z"},"license":"MIT","description":"Go-based MCP web search server","maintainers":[{"name":"antmanler","email":"antmanler@gmail.com"}],"readme":"# Websearch MCP (Go)\n\n## Design\n\nGoal: rewrite `tools/websearch.py` as a standalone MCP server in Go, using\n`modelcontextprotocol/go-sdk` for the MCP transport and `openai/openai-go` for\nLLM calls. The server should expose a single tool, `web_search`, that performs\nquery rewriting, web search aggregation, and summarization similar to the\nPython implementation.\n\nKey behaviors to preserve:\n- Config-driven defaults and engine enable/disable flags.\n- Query rewrite via OpenAI-compatible model.\n- Multi-engine web search: Tavily, Zhipu, Volcengine.\n- Content sampling, Chinese/English heuristics, and filtering.\n- LLM-based summarization with citations and language selection.\n- Save raw search results to disk (configurable path).\n\n## Plan\n\n1. Create Go module under `scripts/websearch-go` with clear package layout:\n   - `cmd/websearch-mcp/main.go` for server entrypoint.\n   - `internal/config` for YAML config loading/merging.\n   - `internal/search` for engine implementations and selection logic.\n   - `internal/llm` for OpenAI-compatible rewrite + summary calls.\n   - `internal/tool` for MCP tool wiring and request/response types.\n2. Implement config parity with `tools/.websearch.yaml`, including defaults and\n   environment variable handling for API keys and base URLs.\n3. Implement engine clients:\n   - Tavily via HTTPS (results formatting and Chinese filtering).\n   - Zhipu and Volcengine via HTTPS (payloads and response parsing).\n4. Implement search orchestration:\n   - Rewrite queries, run engine calls with timeouts and concurrency limits.\n   - Aggregate and sample snippets.\n   - Save raw results to disk.\n   - Summarize with OpenAI-compatible API.\n5. Wire up MCP server and tool schema; ensure JSON-compatible outputs.\n6. Verify build with `go test` (if any) and `go build`.\n\n## Notes\n\n- Keep docstrings concise and one-line for MCP tools.\n- Use ASCII-only in source unless required.\n\n## Client Test\n\nBuild and run the MCP client against the server binary:\n\n```bash\nnpm run build\nnpm run client -- -query \"your question here\"\n```\n\nOptional flags:\n- `-server-cmd` to point at a different server binary path.\n\nThe client loads `.env` from the nearest parent directory (repo root) to pick up API keys.\n\n## npm Distribution\n\nThis project bundles platform binaries in the npm package and installs the right one at postinstall time. It supports:\n- Linux amd64\n- Linux arm64\n- macOS arm64\n\nBuild local binaries and bundle into `bin/<platform>/websearch-mcp`:\n\n```bash\nnpm run build:linux\nnpm run build:linux-arm64\nnpm run build:macos\n```\n\nIf you still want release tarballs, use:\n\n```\nnpm run build:package\n```\n\nThe npm install flow runs `install.js` to select the correct binary.\n\nTo test the packed tarball locally with `npx`:\n\n```bash\nnpm run npx-test -- --help\n```\n\n`npx-test` uses the packed tarball and runs the binary with a short timeout.\n\n## Publish\n\nPublish to the official npm registry:\n\n```bash\nnpm publish --access public --registry=https://registry.npmjs.org/\n```\n","readmeFilename":"README.md"}