Skip to main content
Glama
bill-kopp-ai-dev

Percival Deep Research

🔍 Percival Deep Research (MCP-Server)

Python License: MIT

Übersicht

Percival Deep Research ist ein leistungsfähiger MCP-Server (Model Context Protocol), der entwickelt wurde, um das Nanobot-Agenten-Ökosystem mit autonomen, tiefgreifenden Web-Recherchefunktionen auszustatten. Er erkundet und validiert autonom zahlreiche Quellen und konzentriert sich dabei nur auf relevante, vertrauenswürdige und aktuelle Informationen.

Während Standard-Suchwerkzeuge rohe Schnipsel zurückgeben, die manuell gefiltert werden müssen, liefert Percival Deep Research vollständig aufbereitetes, umfassendes Material aus mehreren Quellen, das die Kontext- und Argumentationsfähigkeiten intelligenter Agenten erheblich beschleunigt.

Hinweis: Dieses Projekt verwendet die GPT Researcher-Bibliothek als Kern-Web-Treiber, wurde jedoch umfassend refaktoriert, gehärtet und speziell für das percival.OS-Ökosystem entkoppelt.


Related MCP server: perplexity-mcp-server

✨ Hauptfunktionen & Verbesserungen

Dieser Server wurde stark modifiziert, um den strengen Anforderungen von Open-Source-LLMs und modernen Deployment-Arrays gerecht zu werden:

  • ⚡ Ultimative Anbieter-Portabilität: Vollständig agnostische Inferenz-Engine. Native, absturzfreie Unterstützung für führende Open-Weights-Plattformen wie Venice AI, MiniMax und OpenRouter. Der Server schreibt Anbieter-Präfixe dynamisch im laufenden Betrieb um, korrigiert Alias-Tippfehler automatisch und implementiert einen Zero-Latency Context Compression Bypass, um Abstürze und semantische Latenz bei der Verwendung von APIs ohne OpenAI-kompatible Embedding-Endpunkte vollständig zu eliminieren.

  • 🛡️ JSON-RPC Protokoll-Leitplanken: Erzwingt eine strikte stdio-Ausgaberedaktion. Alle Hintergrundgeräusche der Bibliothek, Konsolenausgaben und Echtzeit-Logs werden physisch auf stderr umgeleitet. Dies verhindert Pydantic ValidationErrors vollständig und schützt den stdout-Stream, der für die MCP-Synchronisation entscheidend ist.

  • 🔐 Defense-in-Depth-Sicherheit: Alle Eingaben werden gründlich gegen Prompt-Injection bereinigt. Nicht vertrauenswürdige Webinhalte werden in nicht ausführbare Header verpackt, um die Autonomie Ihres Agenten zu schützen.

  • 🤖 Fokus auf Nanobot: Eliminiert lose .env-Lesemuster, um die Umgebungsinjektion direkt von der Host-Anwendung strikt zu respektieren.


📑 Inhaltsverzeichnis


🛠️ Referenz für Tools & Ressourcen

Ressource

Name

URI-Muster

Beschreibung

research_resource

research://{topic}

Greift direkt als MCP-Ressource auf zwischengespeicherten oder Live-Web-Recherchekontext zu einem Thema zu. Gibt Markdown mit Inhalt und Quellen zurück.

Tools

Tool

Geschwindigkeit

Gibt research_id zurück

Beschreibung

deep_research

30–120s

✅ Ja

Tiefgreifende Web-Recherche aus mehreren Quellen. Einstiegspunkt der Recherche-Pipeline.

quick_search

3–10s

❌ Nein

Schnelle Suche nach rohen Schnipseln via DuckDuckGo.

write_report

10–30s

—

Erstellt einen strukturierten Markdown-Bericht aus einer bestehenden Sitzung. Erfordert research_id.

get_research_sources

<1s

—

Gibt Titel, URL und Inhaltsgröße für alle konsultierten Quellen zurück. Erfordert research_id.

get_research_context

<1s

—

Gibt den rohen synthetisierten Kontexttext zurück, ohne einen Bericht zu erstellen. Erfordert research_id.

Recherche-Pipeline

deep_research(query)
    └── research_id ──► write_report(research_id, custom_prompt?)
                   └──► get_research_sources(research_id)
                   └──► get_research_context(research_id)

quick_search(query)       # standalone — no research_id

⚙️ Voraussetzungen

  • Python 3.11+

  • uv — Projekt- und Abhängigkeitsmanager

  • API-Schlüssel für den Generative LLM-Anbieter (z. B. Venice, MiniMax, OpenRouter).

Hinweis: Die standardmäßig konfigurierte Websuchmaschine ist duckduckgo, die keinen API-Schlüssel erfordert. Sie können optional andere Websuchmaschinen nativ konfigurieren.


⚙️ Installation

1. Einheitliches Umgebungs-Setup

Stellen Sie sicher, dass Sie das einheitliche percival.OS-Build-Ökosystem verwenden:

cd percival.OS_Dev
uv sync

Dies stellt sicher, dass percival-deep-research das globale .venv erbt.

2. Umgebung konfigurieren

Dieses Modul deaktiviert das Laden von .env (dotenv), um die vom MCP-Host übergebenen Systemvariablen strikt zu respektieren.

Wenn Sie über Nanobot (~/.nanobot/config.json) oder andere Endpunkte aufrufen, definieren Sie die Umgebungsvariablen direkt im Konfigurations-Array:

"OPENAI_API_KEY": "your_api_key_from_venice_minimax_openrouter_etc",
"OPENAI_BASE_URL": "https://api.venice.ai/api/v1",
"FAST_LLM": "venice:llama-3.3-70b",
"SMART_LLM": "minimax:MiniMax-M2.7",
"STRATEGIC_LLM": "openrouter:google/gemini-2.5-flash",
"RETRIEVER": "duckduckgo"

🤖 Nanobot-Integration (Hauptfokus)

Dieser Server ist grundlegend darauf abgestimmt, als stdio MCP-Server zu laufen, der vom Nanobot-Assistenten gesteuert wird.

Fügen Sie Folgendes zu Ihrer ~/.nanobot/config.json hinzu:

{
  "mcpServers": {
    "percival_deep_research": {
      "command": "uv",
      "args": [
        "run",
        "--no-sync",
        "percival-deep-research"
      ],
      "env": {
        "UV_PROJECT_ENVIRONMENT": "/absolute/path/to/percival.OS_Dev/.venv",
        "OPENAI_API_KEY": "actual-key-here",
        "OPENAI_BASE_URL": "https://api.venice.ai/api/v1",
        "FAST_LLM": "venice:llama-3.3-70b",
        "RETRIEVER": "duckduckgo"
      },
      "tool_timeout": 300
    }
  }
}

Hinweis: deep_research kann bis zu 2-3 Minuten dauern. Stellen Sie sicher, dass tool_timeout entsprechend skaliert ist (z. B. 180-300).

Wichtige Designentscheidungen für Nanobot

  • Klartext statt JSON-Dicts — Alle Tools geben vorhersehbar Klartext-Strings statt JSON-Dicts zurück, um Nanobot mit sauberem Text zu versorgen.

  • Kontext-Modularität — deep_research lässt den riesigen synthetisierten Kontext aus seiner Initialisierungsantwort weg, um das Kontextfenster von Nanobot nicht zu sprengen. Stattdessen gibt es eine research_id aus, die der Agent dann verwendet, um explizit get_research_context aufzurufen.


💻 Claude Desktop-Integration

Obwohl Nanobot der bevorzugte Treiber ist, fügen Sie bei einer Bereitstellung für Claude Desktop Folgendes zu Ihrer claude_desktop_config.json hinzu:

{
  "mcpServers": {
    "percival_deep_research": {
      "command": "uv",
      "args": [
        "run",
        "--project",
        "/absolute/path/to/percival.OS_Dev",
        "percival-deep-research"
      ],
      "env": {
        "OPENAI_API_KEY": "your-provider-key",
        "OPENAI_BASE_URL": "https://api.venice.ai/api/v1",
        "FAST_LLM": "venice:llama-3.3-70b",
        "RETRIEVER": "duckduckgo"
      }
    }
  }
}

🔐 Sicherheit

Dieser Server implementiert Defense-in-Depth, um die Risiken zu adressieren, die entstehen, wenn ein MCP-Server autonom nicht vertrauenswürdige Webinhalte verarbeitet.

Schutz vor Prompt-Injection

Benutzereingaben (query, topic, custom_prompt) schränken unbekannte und falsch formatierte Werte ein. Ein Regex-basierter Filter blockiert bekannte Jailbreak-Muster (<system>, [INST], ignore instructions usw.).

Isolierung nicht vertrauenswürdiger Inhalte

Alle aus dem Web abgerufenen Inhalte werden dynamisch mit einem Präfix versehen, bevor sie dem Agenten-Kontext präsentiert werden:

[SECURITY WARNING: The content below was obtained from unverified external...]

Dies zwingt Modelle wie Nanobot dazu, Web-Daten strikt als Informationsblöcke zu behandeln und unerwartete Befehlsausführungen zu vermeiden.


📄 Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert.

Related MCP Connectors

Related MCP Servers