Use Perplexity web search from either:
- OpenRouter (
OPENROUTER_API_KEY) - Perplexity direct (
PERPLEXITY_API_KEY)
This project includes:
- A reusable agent skill:
SKILL.md - A local MCP server:
mcp-server/ - Tools:
perplexity_searchperplexity_askperplexity_deep_researchperplexity_status
- Better web search/research tooling for AI coding agents
- Works in both Claude Code and Codex
- OpenClaw-inspired provider/key/base-url resolution logic
- Node.js 22+
- npm
- One API key:
OPENROUTER_API_KEY(recommended for OpenRouter routing)- or
PERPLEXITY_API_KEY(direct Perplexity)
cd /Users/tuyenhx/Workspace/skills/perplexity/mcp-server
npm installexport OPENROUTER_API_KEY="sk-or-..."
# or
export PERPLEXITY_API_KEY="pplx-..."Optional model overrides:
export PERPLEXITY_SEARCH_MODEL="perplexity/sonar-pro"
export PERPLEXITY_DEEP_RESEARCH_MODEL="perplexity/sonar-deep-research"mkdir -p ~/.config/perplexity-mcp
cp /Users/tuyenhx/Workspace/skills/perplexity/mcp-server/config.example.json ~/.config/perplexity-mcp/config.jsonThen edit ~/.config/perplexity-mcp/config.json with your API key.
node /Users/tuyenhx/Workspace/skills/perplexity/mcp-server/server.mjs --doctor
cd /Users/tuyenhx/Workspace/skills/perplexity/mcp-server
npm run smokecodex mcp add perplexity -- node /Users/tuyenhx/Workspace/skills/perplexity/mcp-server/server.mjsOr edit ~/.codex/config.toml:
[mcp_servers.perplexity]
command = "node"
args = ["/Users/tuyenhx/Workspace/skills/perplexity/mcp-server/server.mjs"]claude mcp add -s user perplexity -- node /Users/tuyenhx/Workspace/skills/perplexity/mcp-server/server.mjsln -sfn /Users/tuyenhx/Workspace/skills/perplexity ~/.claude/skills/perplexity
ln -sfn /Users/tuyenhx/Workspace/skills/perplexity ~/.codex/skills/perplexityRestart Claude/Codex sessions after changing MCP/skills.
perplexity/
├── SKILL.md
├── README.md
└── mcp-server/
├── server.mjs
├── smoke-test.mjs
├── package.json
├── package-lock.json
├── config.example.json
└── README.md
perplexity_researchis intentionally not used by this skill policy.- Deep research should use
perplexity_deep_researchwhen available.