package.json•6.71 kB
{
"name": "open-search-mcp",
"version": "2.0.0",
"description": "A comprehensive Model Context Protocol server providing 33 specialized research and search tools for Claude Desktop. Includes academic search, developer tools, privacy-focused search, and financial data APIs.",
"type": "module",
"main": "./dist/index.js",
"module": "./src/index.ts",
"repository": {
"type": "git",
"url": "git+https://github.com/flyanima/open-search-mcp.git"
},
"bin": {
"open-search-mcp": "./dist/index.js"
},
"files": [
"dist",
"README.md",
"LICENSE"
],
"keywords": [
"mcp",
"search",
"model context protocol",
"web search",
"academic search",
"claude",
"claude-desktop",
"augment-codes",
"cursor",
"vscode",
"ai",
"research",
"free",
"open-source",
"exa-alternative",
"duckduckgo",
"arxiv",
"pubmed",
"wikipedia",
"github"
],
"author": "Open Search MCP Contributors",
"license": "MIT",
"scripts": {
"build": "tsc",
"build:watch": "tsc --watch",
"dev": "tsx src/start-server.ts",
"dev:mcp": "cross-env SERVER_MODE=mcp tsx src/index.ts",
"dev:api": "cross-env SERVER_MODE=api tsx src/start-server.ts",
"dev:dual": "cross-env SERVER_MODE=dual tsx src/start-server.ts",
"dev:v2": "tsx src/v2-server.ts",
"start": "node dist/start-server.js",
"start:mcp": "cross-env SERVER_MODE=mcp node dist/index.js",
"start:api": "cross-env SERVER_MODE=api node dist/start-server.js",
"start:dual": "cross-env SERVER_MODE=dual node dist/start-server.js",
"start:v2": "node dist/v2-server.js",
"test": "jest",
"test:watch": "jest --watch",
"test:coverage": "jest --coverage",
"lint": "eslint src/**/*.ts",
"lint:fix": "eslint src/**/*.ts --fix",
"format": "prettier --write src/**/*.ts",
"clean": "rimraf dist",
"prepare": "npm run build",
"inspector": "npx @modelcontextprotocol/inspector dist/index.js",
"inspector:v2": "npx @modelcontextprotocol/inspector dist/v2-server.js",
"docs:serve": "npx http-server docs -p 8080",
"validate:config": "node scripts/validate-config.js",
"health:check": "node scripts/health-check.js",
"v2:start": "bash scripts/start-v2.sh",
"v2:deploy-searx": "docker-compose -f deployment/searx-cluster.yml up -d",
"v2:stop-searx": "docker-compose -f deployment/searx-cluster.yml down",
"install:multi": "node scripts/multi-platform-installer.js",
"install:claude": "node scripts/multi-platform-installer.js --platform claude-desktop",
"install:cursor": "node scripts/multi-platform-installer.js --platform cursor",
"install:vscode": "node scripts/multi-platform-installer.js --platform vscode",
"install:windsurf": "node scripts/multi-platform-installer.js --platform windsurf",
"install:augment": "node scripts/multi-platform-installer.js --platform augment-code",
"config:generate": "node -e \"import('./src/tools/config-generator.js').then(m => m.ConfigGenerator.generateConfig(JSON.parse(process.argv[1])))\"",
"config:claude": "node -e \"import('./src/tools/config-generator.js').then(m => console.log(m.ConfigGenerator.generateConfig({platform: 'claude-desktop'})))\"",
"config:cursor": "node -e \"import('./src/tools/config-generator.js').then(m => console.log(m.ConfigGenerator.generateConfig({platform: 'cursor'})))\"",
"config:vscode": "node -e \"import('./src/tools/config-generator.js').then(m => console.log(m.ConfigGenerator.generateConfig({platform: 'vscode'})))\"",
"config:windsurf": "node -e \"import('./src/tools/config-generator.js').then(m => console.log(m.ConfigGenerator.generateConfig({platform: 'windsurf'})))\"",
"config:augment": "node -e \"import('./src/tools/config-generator.js').then(m => console.log(m.ConfigGenerator.generateConfig({platform: 'augment-code'})))\"",
"server:http": "cross-env MCP_TRANSPORT=http node dist/expanded-server.js",
"server:websocket": "cross-env MCP_TRANSPORT=websocket node dist/expanded-server.js",
"server:stdio": "node dist/expanded-server.js",
"platforms:detect": "node scripts/multi-platform-installer.js --detect-only",
"platforms:list": "node -e \"import('./src/tools/config-generator.js').then(m => console.log('Supported platforms:', m.ConfigGenerator.getSupportedPlatforms().join(', ')))\"",
"health:platforms": "node scripts/platform-health-check.js",
"security:scan": "node scripts/security-scan.js",
"security:scan:verbose": "node scripts/security-scan.js --verbose",
"security:audit": "npm audit && npm audit signatures",
"security:fix": "npm audit fix",
"security:check": "npm run security:audit && npm run security:scan",
"security:maintenance": "node scripts/security-maintenance.js",
"security:maintenance:dry-run": "node scripts/security-maintenance.js --dry-run",
"security:lint": "eslint --config .eslintrc.security.js src/**/*.ts",
"security:lint:fix": "eslint --config .eslintrc.security.js src/**/*.ts --fix",
"prepare": "husky install && npm run build"
},
"dependencies": {
"@anthropic-ai/sdk": "^0.56.0",
"@modelcontextprotocol/sdk": "^1.12.1",
"@mozilla/readability": "^0.6.0",
"@types/uuid": "^10.0.0",
"axios": "^1.7.8",
"cheerio": "^1.1.0",
"cors": "^2.8.5",
"dotenv": "^16.3.1",
"express": "^4.21.2",
"express-rate-limit": "^7.5.1",
"jsdom": "^23.2.0",
"node-cache": "^5.1.2",
"p-limit": "^5.0.0",
"p-retry": "^6.2.0",
"pdf-poppler": "^0.2.1",
"pdf2json": "^3.1.6",
"pdf2pic": "^3.2.0",
"pdfjs-dist": "^5.3.31",
"puppeteer": "^19.11.1",
"tesseract.js": "^6.0.1",
"turndown": "^7.1.2",
"uuid": "^11.1.0",
"winston": "^3.11.0",
"ws": "^8.18.0",
"xml2js": "^0.6.2",
"zod": "^3.22.4"
},
"devDependencies": {
"@types/cors": "^2.8.19",
"@types/express": "^4.17.23",
"@types/jest": "^29.5.8",
"@types/jsdom": "^21.1.7",
"@types/node": "^20.11.24",
"@types/pdf-parse": "^1.1.4",
"@types/ws": "^8.18.1",
"@types/xml2js": "^0.4.14",
"@typescript-eslint/eslint-plugin": "^6.12.0",
"@typescript-eslint/parser": "^6.12.0",
"eslint": "^8.54.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-prettier": "^5.0.1",
"eslint-plugin-security": "^1.7.1",
"eslint-plugin-no-secrets": "^0.8.9",
"husky": "^8.0.3",
"jest": "^29.7.0",
"prettier": "^3.1.0",
"rimraf": "^5.0.5",
"ts-jest": "^29.1.1",
"tsx": "^4.7.0",
"typescript": "^5.3.3"
},
"engines": {
"node": ">=18.0.0",
"npm": ">=9.0.0"
},
"peerDependencies": {
"@modelcontextprotocol/sdk": "^1.12.1"
}
}