A third-party Perplexity MCP/REST API implementation that leverages Pro account Pool to provide unlimited quota for ask and deep search capabilities.
Drift inferred · capture-to-capture
tool count over time
08-11 20:38 now
7t
2t
transport stdio · streamable-http · http counts 7 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
get_skill_index
-
get_tasks_use
-
perplexity_ask_v2
-
perplexity_research_v2
-
perplexity_task_cancel
-
perplexity_task_status
-
perplexity_task_submit
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 3b01a57 · analyzer v33 · 11h ago
skills & prompt files 9
- skill escapeWu-perplexity-ai-3b01a57/.agents/skills/perplexity-search/SKILL.md
- skill escapeWu-perplexity-ai-3b01a57/.agents/skills/server-deploy/SKILL.md
- agent-rules escapeWu-perplexity-ai-3b01a57/.claude/commands/pp/query.md
- agent-rules escapeWu-perplexity-ai-3b01a57/.claude/commands/pp/reasoning.md
- agent-rules escapeWu-perplexity-ai-3b01a57/.claude/commands/pp/research.md
- skill escapeWu-perplexity-ai-3b01a57/.claude/skills/bump-version/SKILL.md
- skill escapeWu-perplexity-ai-3b01a57/.claude/skills/perplexity-search/SKILL.md
- agent-rules escapeWu-perplexity-ai-3b01a57/AGENTS.md
- agent-rules escapeWu-perplexity-ai-3b01a57/CLAUDE.md
danger signals1
- suspicious endpoint api.telegram.org escapeWu-perplexity-ai-3b01a57/perplexity/server/client_pool.py :1016
url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 106
filesystem 23
- fs (weak) escapeWu-perplexity-ai-3b01a57/.agents/skills/perplexity-search/scripts/cli.py :11
from pathlib import Path - fs escapeWu-perplexity-ai-3b01a57/perplexity/config.py :10
from pathlib import Path - fs escapeWu-perplexity-ai-3b01a57/perplexity/logger.py :11
from pathlib import Path - fs escapeWu-perplexity-ai-3b01a57/perplexity/model_catalog_sync.py :11
from pathlib import Path - fs escapeWu-perplexity-ai-3b01a57/perplexity/model_registry.py :13
from pathlib import Path - fs escapeWu-perplexity-ai-3b01a57/perplexity/server/admin.py :283
import pathlib - fs escapeWu-perplexity-ai-3b01a57/perplexity/server/client_pool.py :12
import pathlib - fs escapeWu-perplexity-ai-3b01a57/perplexity/server/config_store.py :5
from pathlib import Path - fs escapeWu-perplexity-ai-3b01a57/perplexity/server/file_sources.py :9
from pathlib import Path - fs escapeWu-perplexity-ai-3b01a57/perplexity/server/files_store.py :11
from pathlib import Path - fs escapeWu-perplexity-ai-3b01a57/perplexity/server/job_runtime.py :62
self.lock_file = path.open("a+") - fs escapeWu-perplexity-ai-3b01a57/perplexity/server/webui_sessions.py :13
from pathlib import Path
show 11 more
- fs (weak) escapeWu-perplexity-ai-3b01a57/tests/test_client_model_mappings.py :5
from pathlib import Path - fs (weak) escapeWu-perplexity-ai-3b01a57/tests/test_client_pool.py :148
@patch("pathlib.Path.exists", return_value=False) - fs (weak) escapeWu-perplexity-ai-3b01a57/tests/test_job_runtime.py :197
config = json.loads(open(pool._config_path).read()) - fs (weak) escapeWu-perplexity-ai-3b01a57/tests/test_mcp.py :15
from pathlib import Path - fs (weak) escapeWu-perplexity-ai-3b01a57/tests/test_model_catalog_sync.py :4
from pathlib import Path - fs (weak) escapeWu-perplexity-ai-3b01a57/tests/test_model_registry.py :5
from pathlib import Path - fs (weak) escapeWu-perplexity-ai-3b01a57/tests/test_oai.py :13
from pathlib import Path - fs (weak) escapeWu-perplexity-ai-3b01a57/tests/test_retry_logic.py :72
with open(config_file, "w") as f: - fs (weak) escapeWu-perplexity-ai-3b01a57/tests/test_tier_routing.py :17
patch("pathlib.Path.exists", return_value=False), - fs (weak) escapeWu-perplexity-ai-3b01a57/tests/test_version_consistency.py :3
from pathlib import Path - fs (weak) escapeWu-perplexity-ai-3b01a57/tests/test_webui_sessions.py :3
from pathlib import Path
network 7
- net (weak) escapeWu-perplexity-ai-3b01a57/.agents/skills/perplexity-search/scripts/cli.py :13
from urllib.error import HTTPError, URLError - net escapeWu-perplexity-ai-3b01a57/perplexity/model_catalog_sync.py :13
from urllib.parse import urlsplit - net escapeWu-perplexity-ai-3b01a57/perplexity/model_registry.py :456
from curl_cffi import requests - net escapeWu-perplexity-ai-3b01a57/perplexity/server/client_pool.py :1015
import aiohttp - net escapeWu-perplexity-ai-3b01a57/perplexity/server/file_sources.py :7
import socket - net (weak) escapeWu-perplexity-ai-3b01a57/tests/conftest.py :5
import socket - net (weak) escapeWu-perplexity-ai-3b01a57/tests/test_oai.py :16
import httpx
secrets 6
- secrets (weak) escapeWu-perplexity-ai-3b01a57/.agents/skills/perplexity-search/scripts/cli.py :92
os.environ.get("MCP_TOKEN") - secrets escapeWu-perplexity-ai-3b01a57/perplexity/config.py :301
ADMIN_TOKEN: Optional[str] = os.getenv("PPLX_ADMIN_TOKEN", None) - secrets escapeWu-perplexity-ai-3b01a57/perplexity/server/app.py :31
MCP_TOKEN = os.getenv("MCP_TOKEN", "sk-123456") - secrets escapeWu-perplexity-ai-3b01a57/perplexity/server/client_pool.py :241
csrf_token = os.getenv("PPLX_NEXT_AUTH_CSRF_TOKEN") - secrets (weak) escapeWu-perplexity-ai-3b01a57/tests/test_mcp.py :29
MCP_TOKEN = os.getenv("MCP_TOKEN", "sk-123456") - secrets (weak) escapeWu-perplexity-ai-3b01a57/tests/test_oai.py :26
MCP_TOKEN = os.getenv("MCP_TOKEN", "sk-123456")
database 4
- db escapeWu-perplexity-ai-3b01a57/perplexity/server/job_runtime.py :5
import sqlite3 - db escapeWu-perplexity-ai-3b01a57/perplexity/server/job_store.py :7
import sqlite3 - db escapeWu-perplexity-ai-3b01a57/perplexity/server/webui_sessions.py :8
import sqlite3 - db (weak) escapeWu-perplexity-ai-3b01a57/tests/test_webui_sessions.py :1
import sqlite3
tool registrations 7
- perplexity_ask_v2 escapeWu-perplexity-ai-3b01a57/perplexity/server/mcp.py :183
- perplexity_research_v2 escapeWu-perplexity-ai-3b01a57/perplexity/server/mcp.py :231
- perplexity_task_submit escapeWu-perplexity-ai-3b01a57/perplexity/server/mcp.py :263
- perplexity_task_status escapeWu-perplexity-ai-3b01a57/perplexity/server/mcp.py :287
- perplexity_task_cancel escapeWu-perplexity-ai-3b01a57/perplexity/server/mcp.py :312
- get_skill_index escapeWu-perplexity-ai-3b01a57/perplexity/server/mcp.py :368
- get_tasks_use escapeWu-perplexity-ai-3b01a57/perplexity/server/mcp.py :376
declared dependencies 12
- fastmcp@>=2.14.2,<3.0.0
- curl_cffi@>=0.15.0,<0.16.0
- python-dotenv@>=1.0.0
- aiohttp@>=3.9.0
- aiohttp-socks@>=0.11.0
- pytest@>=7.4.0
- pytest-asyncio@>=0.21.0
- pytest-cov@>=4.1.0
- black@>=23.0.0
- mypy@>=1.5.0
- flake8@>=6.0.0
- isort@>=5.12.0