perplexity-web-mcp-cli 0.12.1__tar.gz → 0.12.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/PKG-INFO +8 -1
  2. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/README.md +7 -0
  3. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/pyproject.toml +1 -1
  4. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/cli/ai_doc.py +6 -5
  5. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/data/SKILL.md +3 -3
  6. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/data/references/models.md +1 -1
  7. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/models.py +1 -1
  8. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/__init__.py +0 -0
  9. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/api/__init__.py +0 -0
  10. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/api/responses.py +0 -0
  11. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/api/server.py +0 -0
  12. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/api/session_manager.py +0 -0
  13. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/api/tool_calling.py +0 -0
  14. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/cli/__init__.py +0 -0
  15. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/cli/auth.py +0 -0
  16. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/cli/doctor.py +0 -0
  17. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/cli/hack.py +0 -0
  18. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/cli/main.py +0 -0
  19. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/cli/setup.py +0 -0
  20. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/cli/skill.py +0 -0
  21. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/config.py +0 -0
  22. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/constants.py +0 -0
  23. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/core.py +0 -0
  24. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/council.py +0 -0
  25. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/data/references/api-endpoints.md +0 -0
  26. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/data/references/mcp-tools.md +0 -0
  27. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/enums.py +0 -0
  28. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/exceptions.py +0 -0
  29. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/http.py +0 -0
  30. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/limits.py +0 -0
  31. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/logging.py +0 -0
  32. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/mcp/__init__.py +0 -0
  33. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/mcp/__main__.py +0 -0
  34. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/mcp/server.py +0 -0
  35. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/py.typed +0 -0
  36. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/rate_limits.py +0 -0
  37. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/resilience.py +0 -0
  38. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/router.py +0 -0
  39. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/sessions.py +0 -0
  40. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/shared.py +0 -0
  41. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/token_store.py +0 -0
  42. {perplexity_web_mcp_cli-0.12.1 → perplexity_web_mcp_cli-0.12.2}/src/perplexity_web_mcp/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: perplexity-web-mcp-cli
3
- Version: 0.12.1
3
+ Version: 0.12.2
4
4
  Summary: CLI, MCP server, and Anthropic/OpenAI API-compatible interface for Perplexity AI.
5
5
  Keywords: perplexity,ai,mcp,anthropic,api,client
6
6
  Author: Jacob BD
@@ -41,6 +41,13 @@ Description-Content-Type: text/markdown
41
41
 
42
42
  # Perplexity Web MCP & CLI
43
43
 
44
+ [![PyPI version](https://img.shields.io/pypi/v/perplexity-web-mcp-cli)](https://pypi.org/project/perplexity-web-mcp-cli/)
45
+ [![PyPI downloads](https://img.shields.io/pypi/dm/perplexity-web-mcp-cli)](https://pypistats.org/packages/perplexity-web-mcp-cli)
46
+ [![Total downloads](https://static.pepy.tech/badge/perplexity-web-mcp-cli)](https://pepy.tech/projects/perplexity-web-mcp-cli)
47
+ [![Python](https://img.shields.io/pypi/pyversions/perplexity-web-mcp-cli)](https://pypi.org/project/perplexity-web-mcp-cli/)
48
+ [![License](https://img.shields.io/pypi/l/perplexity-web-mcp-cli)](https://github.com/jacob-bd/perplexity-web-mcp/blob/main/LICENSE)
49
+ [![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-FFDD00?style=flat-square&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/jacobbd)
50
+
44
51
  <p align="center">
45
52
  <a href="https://youtu.be/9xyClDvmoZ0">
46
53
  <img src="https://img.youtube.com/vi/9xyClDvmoZ0/maxresdefault.jpg" alt="Perplexity Powerhouse + Model Council Demo" width="400">
@@ -4,6 +4,13 @@
4
4
 
5
5
  # Perplexity Web MCP & CLI
6
6
 
7
+ [![PyPI version](https://img.shields.io/pypi/v/perplexity-web-mcp-cli)](https://pypi.org/project/perplexity-web-mcp-cli/)
8
+ [![PyPI downloads](https://img.shields.io/pypi/dm/perplexity-web-mcp-cli)](https://pypistats.org/packages/perplexity-web-mcp-cli)
9
+ [![Total downloads](https://static.pepy.tech/badge/perplexity-web-mcp-cli)](https://pepy.tech/projects/perplexity-web-mcp-cli)
10
+ [![Python](https://img.shields.io/pypi/pyversions/perplexity-web-mcp-cli)](https://pypi.org/project/perplexity-web-mcp-cli/)
11
+ [![License](https://img.shields.io/pypi/l/perplexity-web-mcp-cli)](https://github.com/jacob-bd/perplexity-web-mcp/blob/main/LICENSE)
12
+ [![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-FFDD00?style=flat-square&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/jacobbd)
13
+
7
14
  <p align="center">
8
15
  <a href="https://youtu.be/9xyClDvmoZ0">
9
16
  <img src="https://img.youtube.com/vi/9xyClDvmoZ0/maxresdefault.jpg" alt="Perplexity Powerhouse + Model Council Demo" width="400">
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "perplexity-web-mcp-cli"
3
- version = "0.12.1"
3
+ version = "0.12.2"
4
4
  description = "CLI, MCP server, and Anthropic/OpenAI API-compatible interface for Perplexity AI."
5
5
  authors = [{ name = "Jacob BD" }]
6
6
  license = "MIT"
@@ -110,7 +110,7 @@ MODELS
110
110
  Name Identifier Thinking Notes
111
111
  ----------- ---------------------- --------- ---------------------------
112
112
  auto pplx_pro No Auto-selects best model
113
- sonar experimental No Sonar 2 (latest in-house)
113
+ sonar experimental No Sonar 2 (concise search mode for grounded responses)
114
114
  deep_research pplx_alpha No In-depth reports (monthly quota)
115
115
  gpt54 gpt54 Yes OpenAI GPT-5.4 (versatile)
116
116
  gpt55 gpt55 Yes OpenAI GPT-5.5 (latest, Max tier)
@@ -272,8 +272,8 @@ weekly pool (~300). Deep Research draws from a tiny monthly pool (~5-10).
272
272
  Wasting Pro queries on simple lookups means nothing left for real questions.
273
273
 
274
274
  COST MODEL:
275
- Sonar 2 (pplx_sonar, In-house model; still uses your session and Perplexity
276
- quick intent) counters check pplx_usage() / pwm usage.
275
+ Sonar 2 (pplx_sonar, In-house model; uses concise search mode to guarantee responses
276
+ quick intent) are grounded. Decrements Perplexity session counters.
277
277
  Pro Search (standard, Typically 1 from weekly Pro Search pool (~300/week
278
278
  detailed, pplx_ask, on Pro/Max; exact rules are enforced by Perplexity).
279
279
  pplx_query, premium
@@ -284,7 +284,8 @@ COST MODEL:
284
284
  MANDATORY PROTOCOL:
285
285
  1. CHECK QUOTA FIRST: Call pplx_usage() before your first query each session.
286
286
  2. DEFAULT TO QUICK: Use pplx_smart_query(intent='quick') for most lookups.
287
- It prefers Sonar 2 first and only escalates when the query needs a premium model.
287
+ It prefers Sonar 2 first (using concise mode to guarantee grounding) and
288
+ only escalates when the query needs a premium model.
288
289
  3. ESCALATE ONLY WHEN NEEDED: Use 'standard' for multi-source synthesis,
289
290
  'detailed' for complex analysis, 'research' only when user requests it.
290
291
  4. NEVER USE DEEP RESEARCH AUTONOMOUSLY — always ask the user first.
@@ -299,7 +300,7 @@ WHEN TO USE EACH INTENT:
299
300
  detailed Complex analysis, deep reasoning, premium model → 1 Pro
300
301
  research Comprehensive reports (user must request explicitly) → 1 Research
301
302
 
302
- DECISION RULE: Ask "Can Sonar 2 answer this?" If yes → quick. If no → standard.
303
+ DECISION RULE: Ask "Can Sonar 2 answer this?" If yes → quick (grounded on concise search). If no → standard.
303
304
  Only use detailed/research when the complexity genuinely demands it.
304
305
  When in doubt, start with quick and escalate if the answer is insufficient.
305
306
 
@@ -2,7 +2,7 @@
2
2
  name: perplexity-web-mcp
3
3
  description: "Search the web and query AI models via Perplexity AI using perplexity-web-mcp-cli. Supports CLI commands (pwm ask, pwm research), MCP tools (pplx_*), and Anthropic/OpenAI-compatible API server. Use when the user mentions \"perplexity\", \"pplx\", \"pwm\", \"web search with AI\", \"deep research\", \"search the internet\", or wants to query premium models like GPT-5.4, GPT-5.5, Claude, Gemini, Nemotron through Perplexity's web interface."
4
4
  metadata:
5
- version: "0.10.7"
5
+ version: "0.12.2"
6
6
  author: "Jacob BD"
7
7
  ---
8
8
 
@@ -129,7 +129,7 @@ The smart router automatically protects you:
129
129
  - **Healthy quota**: Uses the ideal model for your intent
130
130
  - **Low quota (<20% pro remaining)**: Response footer warns you to conserve
131
131
  - **Critical quota (<10% pro remaining)**: Downgrades detailed→auto to conserve
132
- - **Exhausted quota**: Falls back to Sonar 2 for everything except research
132
+ - **Exhausted quota**: Falls back to Sonar 2 for everything except research (Sonar 2 is forced to concise mode to ensure grounded responses using search results)
133
133
  - **Research exhausted**: Falls back to premium Pro Search
134
134
  - Response metadata shows what model was used, why, and remaining quota
135
135
 
@@ -312,7 +312,7 @@ For full MCP tool parameters: See [references/mcp-tools.md](references/mcp-tools
312
312
  | CLI Name | Provider | Thinking | Notes |
313
313
  |----------|----------|----------|-------|
314
314
  | auto | Perplexity | No | Auto-selects best |
315
- | sonar | Perplexity | No | Sonar 2 (API id `experimental`) |
315
+ | sonar | Perplexity | No | Sonar 2 (API id `experimental`). Uses `mode="concise"` to ensure grounded answers. |
316
316
  | deep_research | Perplexity | No | Monthly quota |
317
317
  | gpt54 | OpenAI | Toggle | GPT-5.4 (versatile) |
318
318
  | gpt55 | OpenAI | Toggle | GPT-5.5 (latest, Max tier) |
@@ -16,7 +16,7 @@ Complete list of models available through Perplexity Web MCP.
16
16
  - **Thinking:** No
17
17
  - **CLI:** `pwm ask "query" -m sonar`
18
18
  - **MCP:** `pplx_sonar(query)` or `pplx_query(query, model="sonar")`
19
- - **Notes:** Perplexity's latest in-house model.
19
+ - **Notes:** Perplexity's latest in-house model. Settings default to concise search mode (`mode="concise"`), which bypasses interactive copilot to guarantee responses are grounded on retrieved search citations on all accounts (including Free tier fallback).
20
20
 
21
21
  ### deep_research (Deep Research)
22
22
  - **Identifier:** `pplx_alpha`
@@ -25,7 +25,7 @@ class Models:
25
25
  BEST = Model(identifier="pplx_pro")
26
26
  """Best - Automatically selects the best model based on the query."""
27
27
 
28
- SONAR = Model(identifier="experimental")
28
+ SONAR = Model(identifier="experimental", mode="concise")
29
29
  """Sonar 2 — Perplexity's latest in-house model (backend id: experimental)."""
30
30
 
31
31
  GEMINI_31_PRO_THINKING = Model(identifier="gemini31pro_high")