{ "name": "agent-search-mcp", "mcpName": "io.github.lennney/agent-search-mcp", "version": "3.2.1", "description": "Free-first Chinese and English web search MCP using zero-key sources and inspectable evidence.", "type": "module", "main": "./dist/index.js", "bin": { "agent-search-mcp": "dist/index.js", "fasm": "dist/cli.js" }, "files": [ "dist/**", "skills/**", "README.md", "LICENSE", "CHANGELOG.md" ], "engines": { "node": ">=18.17" }, "repository": { "type": "git", "url": "git+https://github.com/lennney/agent-search-mcp.git" }, "homepage": "https://github.com/lennney/agent-search-mcp", "bugs": { "url": "https://github.com/lennney/agent-search-mcp/issues" }, "license": "Apache-2.0", "distributionMetadata": { "githubTopics": [ "mcp", "mcp-server", "model-context-protocol", "web-search", "metasearch", "search-aggregator", "zero-api-key", "privacy-first", "zero-config", "web-scraping", "chinese-search", "self-hosted", "typescript", "ai-agent", "claude", "cursor", "codex", "streamable-http", "token-efficient", "evidence-first" ] }, "keywords": [ "mcp", "mcp-server", "model-context-protocol", "web-search", "search", "ai-agent", "agent-search", "free-search", "no-api-key", "zero-api-key", "token-efficient", "bilingual-search", "evidence-first", "inspectable-evidence", "compact-evidence", "search-router", "multi-source", "multi-engine", "metasearch", "search-aggregator", "privacy-first", "zero-config", "web-scraping", "chinese-search", "self-hosted", "claude", "cursor", "codex" ], "scripts": { "build": "node scripts/build.mjs --clean && tsc && node scripts/build.mjs", "test": "vitest run", "test:watch": "vitest", "test:e2e:live": "node scripts/run-live-e2e.mjs", "benchmark": "node benchmarks/run.mjs --fixture benchmarks/fixtures/format-regression.json", "benchmark:capture": "npm run build && node benchmarks/run.mjs --capture benchmarks/fixtures/live-latest.json", "benchmark:verify": "npm run build && node benchmarks/run.mjs --fixture benchmarks/fixtures/format-regression.json --check", "benchmark:exact-cache": "npm run build && node benchmarks/exact-cache.mjs --check", "benchmark:intent-routing": "npm run build && node benchmarks/intent-routing.mjs --check", "capabilities:generate": "npm run build && node scripts/generate-capability-matrix.mjs", "capabilities:check": "npm run build && node scripts/generate-capability-matrix.mjs --check", "benchmark:quality": "node benchmarks/quality.mjs --fixture benchmarks/fixtures/quality-bootstrap.json", "benchmark:quality:verify": "node benchmarks/quality.mjs --fixture benchmarks/fixtures/quality-bootstrap.json --check", "benchmark:pool": "node benchmarks/pool.mjs", "benchmark:import-external": "node benchmarks/import-external-capture.mjs", "benchmark:ai-review": "node benchmarks/ai-review.mjs", "benchmark:competitive:validate": "node benchmarks/validate-competitive-query-set.mjs", "benchmark:competitive:dry-run": "node benchmarks/competitive-capture.mjs --dry-run", "demo:evidence": "npm run build && node benchmarks/evidence-demo.mjs", "benchmark:calibrate-relevance": "node benchmarks/calibrate-relevance.mjs", "benchmark:qualify-runner": "npm run build && node benchmarks/qualify-runner.mjs", "benchmark:reviewer-pilot:capture": "npm run build && node benchmarks/run.mjs --capture benchmarks/fixtures/live-reviewer-pilot.json --query-set benchmarks/queries/reviewer-pilot.json --engines wikipedia", "benchmark:reviewer-pilot:prepare": "node benchmarks/quality.mjs --prepare-capture benchmarks/fixtures/live-reviewer-pilot.json --output benchmarks/fixtures/live-reviewer-pilot-labels.pending.json && node benchmarks/quality.mjs --prepare-reviewer-packet benchmarks/fixtures/live-reviewer-pilot-labels.pending.json --reviewer-slot reviewer-a --output benchmarks/reviews/live-reviewer-pilot.reviewer-a.pending.json && node benchmarks/quality.mjs --prepare-reviewer-packet benchmarks/fixtures/live-reviewer-pilot-labels.pending.json --reviewer-slot reviewer-b --output benchmarks/reviews/live-reviewer-pilot.reviewer-b.pending.json", "benchmark:reviewer-pilot:verify": "node benchmarks/verify-reviewer-pilot.mjs", "experimental:2026:build": "npm run build && npm --prefix experiments/mcp-2026 run build", "experimental:2026:test": "npm run build && npm --prefix experiments/mcp-2026 test", "experimental:2026:http": "npm run experimental:2026:build && npm --prefix experiments/mcp-2026 run start:http", "experimental:2026:stdio": "npm run experimental:2026:build && npm --prefix experiments/mcp-2026 run start:stdio", "lint": "eslint src/ --max-warnings 0", "lint:fix": "eslint src/ --fix", "watch": "tsc --watch", "dev": "tsc && node dist/index.js", "dev:http": "tsc && MODE=http PORT=3000 node dist/index.js", "dev:both": "tsc && MODE=both PORT=3000 node dist/index.js", "cli": "tsc && node dist/cli.js", "start": "node dist/index.js", "start:http": "MODE=http PORT=3000 node dist/index.js", "prepublishOnly": "npm run release:check-worktree && npm run distribution:check && npm run build && npm run package:check", "release:check-worktree": "node scripts/release-policy.mjs --worktree-only", "package:check": "node scripts/release-policy.mjs --package-only", "distribution:check": "node scripts/distribution-metadata.mjs", "distribution:check:live": "node scripts/distribution-metadata.mjs --live-github", "distribution:sync:github": "node scripts/distribution-metadata.mjs --sync-github", "bench": "node benchmarks/run.cjs" }, "dependencies": { "@modelcontextprotocol/sdk": "^1.29.0", "cheerio": "1.0.0", "pino": "^9.14.0", "undici": "^6.28.0", "yaml": "^2.7.1", "zod": "^4.4.3" }, "devDependencies": { "@eslint/js": "^10.0.1", "@types/node": "^26.1.1", "eslint": "^10.7.0", "gpt-tokenizer": "3.4.0", "typescript": "^6.0.3", "typescript-eslint": "^8.65.0", "vitest": "^3.1.3" } }