Perplexity unterstützt aktuell keine nativen MCP-Server, aber es gibt mehrere Wege, um CompText trotzdem zu nutzen:
# CompText REST API starten
cd comptext-mcp
python rest_api_[wrapper.py](<http://wrapper.py>)
# Server läuft auf [<http://localhost:8000>](<http://localhost:8000>)
Falls Perplexity nicht auf localhost zugreifen kann:
# ngrok installieren (einmalig)
brew install ngrok # macOS
# oder von [<https://ngrok.com/download>](<https://ngrok.com/download>)
# Tunnel erstellen
ngrok http 8000
# Du erhältst eine URL wie:
# [<https://abc123.ngrok.io>](<https://abc123.ngrok.io>)
Füge in deinen Perplexity Thread Instructions oder im Chat:
Du hast Zugriff auf eine CompText Codex API unter:
BASE_URL: [<https://abc123.ngrok.io>](<https://abc123.ngrok.io>)
Verfügbare Endpoints:
1. GET /api/modules - Liste alle CompText Module
2. GET /api/modules/{module} - Lade Modul (A-M)
3. GET /api/search?query=X - Suche im Codex
4. GET /api/command/{page_id} - Lade Befehl-Details
5. GET /api/tags/{tag} - Filter nach Tag
6. GET /api/statistics - Zeige Statistiken
Beispiel-Nutzung:
Wenn ich nach "Code-Generierung" frage, rufe:
GET [<https://abc123.ngrok.io/api/search?query=code>](<https://abc123.ngrok.io/api/search?query=code>)
Wenn ich nach "Modul B" frage, rufe:
GET [<https://abc123.ngrok.io/api/modules/B>](<https://abc123.ngrok.io/api/modules/B>)
Nutze diese API proaktiv, wenn ich nach CompText-Befehlen frage.
User: "Zeige mir alle CompText Module"
Perplexity: [Ruft GET [<https://abc123.ngrok.io/api/modules>](<https://abc123.ngrok.io/api/modules>) auf]
"Hier sind alle CompText Module:
- Modul A: Allgemeine Befehle (15 Einträge)
- Modul B: Programmierung (23 Einträge)
..."
Erstelle ein Middleware-Script, das Perplexity API mit CompText verbindet:
"""Bridge zwischen Perplexity API und CompText MCP"""
import requests
import os
from openai import OpenAI
# Perplexity API Client
client = OpenAI(
api_key=os.getenv("PERPLEXITY_API_KEY"),
base_url="[<https://api.perplexity.ai>](<https://api.perplexity.ai>)"
)
# CompText API Base URL
COMPTEXT_API = "[<http://localhost:8000>](<http://localhost:8000>)"
def get_comptext_data(endpoint):
"""Hole Daten von CompText API"""
response = requests.get(f"{COMPTEXT_API}{endpoint}")
return response.json()
def chat_with_comptext(user_message):
"""Chat mit Perplexity + CompText Context"""
# Erkenne, ob CompText-Anfrage
if "module" in user_message.lower() or "comptext" in user_message.lower():
# Hole relevante CompText Daten
if "modul b" in user_message.lower():
data = get_comptext_data("/api/modules/B")
context = f"CompText Modul B: {data}"
elif "search" in user_message.lower():
query = user_message.split("search")[-1].strip()
data = get_comptext_data(f"/api/search?query={query}")
context = f"CompText Search Results: {data}"
else:
data = get_comptext_data("/api/modules")
context = f"CompText Modules: {data}"
else:
context = ""
# Chat mit Perplexity
messages = [
{"role": "system", "content": f"Du bist ein Experte für CompText DSL. {context}"},
{"role": "user", "content": user_message}
]
response = [client.chat](<http://client.chat>).completions.create(
model="llama-3.1-sonar-large-128k-online",
messages=messages
)
return response.choices[0].message.content
# Verwendung
if __name__ == "__main__":
while True:
user_input = input("\\nYou: ")
if user_input.lower() in ['quit', 'exit']:
break
response = chat_with_comptext(user_input)
print(f"\\nPerplexity: {response}")