From 2e49e351c8e74c7dddc6b9732053b748bdd26e8a Mon Sep 17 00:00:00 2001 From: Kesku Date: Sat, 28 Mar 2026 16:50:08 +0000 Subject: [PATCH 1/2] add Claude Code plugin manifest and MCP config --- .claude-plugin/plugin.json | 21 +++++++++++++++++++++ .mcp.json | 13 +++++++++++++ package.json | 3 ++- 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 .claude-plugin/plugin.json create mode 100644 .mcp.json diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..f2ffdb0 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,21 @@ +{ + "name": "perplexity", + "description": "Official Perplexity AI plugin providing real-time web search, reasoning, and research capabilities", + "version": "0.9.0", + "author": { + "name": "Perplexity AI", + "email": "api@perplexity.ai" + }, + "homepage": "https://docs.perplexity.ai/guides/mcp-server", + "repository": "https://github.com/perplexityai/modelcontextprotocol", + "license": "MIT", + "keywords": [ + "mcp", + "search", + "web-search", + "perplexity", + "research", + "reasoning", + "ai" + ] +} diff --git a/.mcp.json b/.mcp.json new file mode 100644 index 0000000..279502c --- /dev/null +++ b/.mcp.json @@ -0,0 +1,13 @@ +{ + "mcpServers": { + "perplexity": { + "type": "stdio", + "command": "npx", + "args": ["-y", "@perplexity-ai/mcp-server"], + "env": { + "PERPLEXITY_API_KEY": "${PERPLEXITY_API_KEY}", + "PERPLEXITY_TIMEOUT_MS": "${PERPLEXITY_TIMEOUT_MS:-600000}" + } + } + } +} diff --git a/package.json b/package.json index c34f6d4..d814ab7 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,8 @@ "!dist/*.test.js", "!dist/vitest.config.js", "README.md", - ".claude-plugin" + ".claude-plugin", + ".mcp.json" ], "scripts": { "build": "tsc && shx chmod +x dist/*.js", From 60e04a186a7ee0fb8b51a9e19a3e1c20ccfc1a21 Mon Sep 17 00:00:00 2001 From: Kesku Date: Sat, 28 Mar 2026 16:55:36 +0000 Subject: [PATCH 2/2] bump version to 1.0.0 --- .claude-plugin/marketplace.json | 4 +- .claude-plugin/plugin.json | 2 +- package-lock.json | 65 ++++++++++----------------------- package.json | 5 ++- server.json | 4 +- src/server.ts | 2 +- 6 files changed, 29 insertions(+), 53 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index d54c2b8..b6233aa 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -6,14 +6,14 @@ }, "metadata": { "description": "Official Perplexity AI plugin providing real-time web search, reasoning, and research capabilities", - "version": "0.9.0" + "version": "1.0.0" }, "plugins": [ { "name": "perplexity", "source": "./", "description": "Real-time web search, reasoning, and research through Perplexity's API", - "version": "0.9.0", + "version": "1.0.0", "author": { "name": "Perplexity AI", "email": "api@perplexity.ai" diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index f2ffdb0..8495449 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "perplexity", "description": "Official Perplexity AI plugin providing real-time web search, reasoning, and research capabilities", - "version": "0.9.0", + "version": "1.0.0", "author": { "name": "Perplexity AI", "email": "api@perplexity.ai" diff --git a/package-lock.json b/package-lock.json index c5096c6..bba30f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@perplexity-ai/mcp-server", - "version": "0.9.0", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@perplexity-ai/mcp-server", - "version": "0.9.0", + "version": "1.0.0", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "^1.21.1", @@ -23,6 +23,7 @@ "@types/express": "^5.0.0", "@types/node": "^20", "@vitest/coverage-v8": "^4.0.5", + "picomatch": ">=4.0.4", "shx": "^0.4.0", "tsx": "^4.19.4", "typescript": "^5.9.3", @@ -2726,6 +2727,19 @@ "node": ">=8.6" } }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -2942,13 +2956,13 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -3627,19 +3641,6 @@ } } }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/tinyrainbow": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", @@ -3855,19 +3856,6 @@ } } }, - "node_modules/vite/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/vitest": { "version": "4.0.17", "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.17.tgz", @@ -3946,19 +3934,6 @@ } } }, - "node_modules/vitest/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index d814ab7..dc444a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@perplexity-ai/mcp-server", - "version": "0.9.0", + "version": "1.0.0", "mcpName": "ai.perplexity/mcp-server", "description": "Real-time web search, reasoning, and research through Perplexity's API", "keywords": [ @@ -64,7 +64,8 @@ "shx": "^0.4.0", "tsx": "^4.19.4", "typescript": "^5.9.3", - "vitest": "^4.0.5" + "vitest": "^4.0.5", + "picomatch": ">=4.0.4" }, "engines": { "node": ">=18" diff --git a/server.json b/server.json index 0ebc5cd..2f456ac 100644 --- a/server.json +++ b/server.json @@ -3,12 +3,12 @@ "name": "ai.perplexity/mcp-server", "title": "Perplexity API Platform", "description": "Real-time web search, reasoning, and research through Perplexity's API", - "version": "0.9.0", + "version": "1.0.0", "packages": [ { "registryType": "npm", "identifier": "@perplexity-ai/mcp-server", - "version": "0.9.0", + "version": "1.0.0", "transport": { "type": "stdio" } diff --git a/src/server.ts b/src/server.ts index d649ccb..362c21d 100644 --- a/src/server.ts +++ b/src/server.ts @@ -13,7 +13,7 @@ import { ChatCompletionResponseSchema, SearchResponseSchema } from "./validation const PERPLEXITY_API_KEY = process.env.PERPLEXITY_API_KEY; const PERPLEXITY_BASE_URL = process.env.PERPLEXITY_BASE_URL || "https://api.perplexity.ai"; -const VERSION = "0.9.0"; +const VERSION = "1.0.0"; export function getProxyUrl(): string | undefined { return process.env.PERPLEXITY_PROXY ||