diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 685204c..d54c2b8 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.8.4" + "version": "0.9.0" }, "plugins": [ { "name": "perplexity", "source": "./", "description": "Real-time web search, reasoning, and research through Perplexity's API", - "version": "0.8.4", + "version": "0.9.0", "author": { "name": "Perplexity AI", "email": "api@perplexity.ai" diff --git a/package-lock.json b/package-lock.json index 3c198dd..c5096c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@perplexity-ai/mcp-server", - "version": "0.8.4", + "version": "0.9.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@perplexity-ai/mcp-server", - "version": "0.8.4", + "version": "0.9.0", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "^1.21.1", diff --git a/package.json b/package.json index e0a69fd..c34f6d4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@perplexity-ai/mcp-server", - "version": "0.8.4", + "version": "0.9.0", "mcpName": "ai.perplexity/mcp-server", "description": "Real-time web search, reasoning, and research through Perplexity's API", "keywords": [ diff --git a/server.json b/server.json index 4764650..0ebc5cd 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.8.4", + "version": "0.9.0", "packages": [ { "registryType": "npm", "identifier": "@perplexity-ai/mcp-server", - "version": "0.8.4", + "version": "0.9.0", "transport": { "type": "stdio" } diff --git a/src/index.test.ts b/src/index.test.ts index 70499a7..21897b8 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -79,10 +79,11 @@ describe("Perplexity MCP Server", () => { "https://api.perplexity.ai/chat/completions", expect.objectContaining({ method: "POST", - headers: { + headers: expect.objectContaining({ "Content-Type": "application/json", Authorization: "Bearer test-api-key", - }, + "X-Source": "pplx-mcp-server", + }), body: JSON.stringify({ model: "sonar-pro", messages, @@ -200,10 +201,10 @@ describe("Perplexity MCP Server", () => { "https://api.perplexity.ai/search", expect.objectContaining({ method: "POST", - headers: { + headers: expect.objectContaining({ "Content-Type": "application/json", Authorization: "Bearer test-api-key", - }, + }), body: JSON.stringify({ query: "test query", max_results: 10, diff --git a/src/server.ts b/src/server.ts index c8954a7..d649ccb 100644 --- a/src/server.ts +++ b/src/server.ts @@ -13,6 +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"; export function getProxyUrl(): string | undefined { return process.env.PERPLEXITY_PROXY || @@ -81,6 +82,8 @@ async function makeApiRequest( const headers: Record = { "Content-Type": "application/json", "Authorization": `Bearer ${PERPLEXITY_API_KEY}`, + "User-Agent": `perplexity-mcp/${VERSION}`, + "X-Source": "pplx-mcp-server", }; if (serviceOrigin) { headers["X-Service"] = serviceOrigin; @@ -299,7 +302,7 @@ export function createPerplexityServer(serviceOrigin?: string) { const server = new McpServer( { name: "ai.perplexity/mcp-server", - version: "0.8.4", + version: VERSION, }, { instructions: