ResearchTwin MCP Server
ResearchTwin MCP Server
ResearchTwin MCP Server ist die persistente Aktionsschicht für ResearchTwin, einen langfristig angelegten Forschungsprojekt-Agenten. Es bietet einem OpenTrek-gehosteten Agenten echte MCP-Werkzeuge zum Aufzeichnen von Forschungsarbeit, zum Beibehalten des Projektstatus und der Anforderungen von Betreuern sowie zum Erstellen evidenzbasierter Fortschrittsberichte.
Das Repository ist als Referenzimplementierung in Wettbewerbsqualität konzipiert: RAG beantwortet Fragen aus Forschungsmaterial, während MCP explizite, nachvollziehbare Änderungen am Projektprotokoll vornimmt.
Alle committeten Beispiele sind fiktiv und anonymisiert. Betriebsdaten gehören in runtime_data/ und sind absichtlich von Git ausgeschlossen.
Überblick
Ein Forschungsassistent sollte mehr tun, als nur eine einzelne Frage zu beantworten. ResearchTwin führt eine dauerhafte Aufzeichnung darüber, was in einem sich entwickelnden Projekt passiert ist:
konkrete Aktivitäten, Ergebnisse, Hindernisse und nächste Schritte;
die aktuelle Projektphase, Aufgaben, Risiken und Entscheidungen;
strukturierte Anforderungen von Betreuern;
wöchentliche, Besprechungs- oder Phasenberichte, die aus gespeicherten Belegen zusammengestellt werden.
Der Server ist dafür gedacht, vom ResearchTwin-Agenten in OpenTrek aufgerufen zu werden. Er ersetzt weder den Agenten, ein LLM noch die bestehende Wissensbasis ResearchTwin_Docs.
Related MCP server: AgentBase
Warum MCP
RAG und MCP haben unterschiedliche Verantwortlichkeiten:
Fähigkeit | Verantwortung |
ResearchTwin_Docs RAG | Bereits verfügbare Papiere, Notizen und technische Materialien abrufen und erklären. |
ResearchTwin MCP Server | Forschungsverwaltungszustand durch explizite Tool-Aufrufe speichern und abrufen. |
ResearchTwin Agent | Entscheiden, wann abgerufen, aufgezeichnet, abgefragt und zusammengefasst werden soll; natürliche Sprache in strukturierte Tool-Argumente umwandeln. |
Diese Trennung hält das Projektprotokoll deterministisch und überprüfbar. Der MCP-Server muss kein weiteres LLM ausführen, nur um eine strukturierte Aktivität zu speichern oder einen Bericht aus gespeicherten Fakten zu erstellen.
Architektur
flowchart LR
U[Researcher] --> A[OpenTrek ResearchTwin Agent]
A -->|retrieve and reason| R[ResearchTwin_Docs RAG]
R --> K[Research papers and technical material]
A -->|MCP function calls| M[ResearchTwin MCP Server]
M --> T[Six research-management tools]
T --> S[JSON persistence layer]
S --> D[Runtime research records and reports]Siehe docs/architecture.md für Komponentengrenzen, Persistenzregeln und Erweiterungspunkte.
Funktionen
Offizielle Python-MCP-SDK-Integration.
Streamable HTTP als primärer MCP-Transport unter /mcp.
Optionaler Befehlszeilen-SSE-Kompatibilitätstransport, wenn beim Start ausgewählt.
Sechs fokussierte Tools statt eines monolithischen Server-Skripts.
UTF-8-JSON-Persistenz mit atomarem Ersetzen und In-Process-Sperre.
UUID-Datensatz-IDs und zeitzonenbewusste ISO-8601-Zeitstempel.
Strukturierte Erfolgs- und Fehlerantworten, die für die Tool-Verarbeitung durch Agenten geeignet sind.
Windows-PowerShell-Anleitung für Start, Test, Smoke-Test und OpenTrek-Integration.
MCP-Tools
Tool | Verwenden Sie es, wenn der Agent Folgendes tun muss: … |
record_research_activity | Speichern Sie abgeschlossene Arbeiten, experimentelle Ergebnisse, Hindernisse, Lektüre oder nächste Schritte. |
list_research_activities | Rufen Sie den Arbeitsverlauf mithilfe von Datums-, Typ- oder Tag-Filtern ab. |
update_project_status | Führen Sie die aktuelle Phase, Aufgabenlisten, Risiken und Entscheidungen zusammen oder ersetzen Sie sie. |
get_project_status | Lesen Sie die aktuelle Projektübersicht, bevor Sie planen oder berichten. |
record_advisor_instruction | Bewahren Sie eine strukturierte Anforderung des Betreuers, Priorität, Frist und Nachverfolgung auf. |
generate_research_report | Erstellen Sie einen wöchentlichen, Besprechungs- oder Phasen-Markdown-Bericht aus gespeicherten Daten. |
Der vollständige Vertrag für Eingabe, Ausgabe und Fehler finden Sie in docs/mcp_tools.md.
Projektstruktur
ResearchTwin-MCP-Server/
├── server.py # Repository-root launch entry point
├── src/researchtwin_mcp/
│ ├── config.py # RESEARCHTWIN_* settings validation
│ ├── server.py # MCP server and transport startup
│ ├── models/ # Validation helpers and schemas
│ ├── storage/ # Shared JSON persistence layer
│ └── tools/ # Activity, status, advisor, and report tools
├── scripts/
│ ├── start_server.ps1
│ └── smoke_test.py
├── tests/
├── docs/
├── examples/sample_data/ # Fictional, commit-safe demo data
└── runtime_data/ # Local operational data; ignored by GitAnforderungen
Windows PowerShell (der dokumentierte Workflow)
Python 3.11 oder neuer; Python 3.11.x ist die empfohlene Wettbewerbsumgebung
Netzwerkzugriff nur, wenn OpenTrek von einem anderen Gerät im LAN ausgeführt wird
Installation
Aus einer neuen Windows-PowerShell-Sitzung:
Set-Location C:\work\OpenTrek\ResearchTwin-MCP-Server
python --version
where.exe python
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python --version
where.exe python
python -m pip install --upgrade pip setuptools wheel
python -m pip install -e ".[dev]"Das erste Ergebnis von where.exe python sollte nach der Aktivierung der Interpreter der virtuellen Umgebung sein. Wenn PowerShell die Aktivierung für die aktuelle Sitzung blockiert, verwenden Sie das dokumentierte prozessbezogene Ausführungsrichtlinienverfahren und aktivieren Sie die Umgebung erneut. Schwächen Sie die systemweite Richtlinie nicht unnötig.
Konfiguration
Der Server liest diese Umgebungsvariablen aus der Prozessumgebung:
Variable | Standard | Bedeutung |
RESEARCHTWIN_HOST | 0.0.0.0 | Bindungsadresse. Wenn Sie diese Standardeinstellung beibehalten, können vertrauenswürdige LAN-Clients den Dienst erreichen. |
RESEARCHTWIN_PORT | 8000 | TCP-Port, der vom ausgewählten Transport verwendet wird. |
RESEARCHTWIN_DATA_DIR | runtime_data | Lokales Persistenzverzeichnis, das bei relativer Angabe relativ zum Repository-Stammverzeichnis aufgelöst wird. |
RESEARCHTWIN_LOG_LEVEL | INFO | Python-Protokollierungsstufe. |
.env.example ist nur eine Referenz/Vorlage; der Server lädt keine .env-Datei automatisch. Legen Sie Werte in der PowerShell-Sitzung fest oder verwenden Sie einen externen Umgebungs-Loader, falls Ihre Bereitstellung bereits einen hat:
$env:RESEARCHTWIN_HOST = "0.0.0.0"
$env:RESEARCHTWIN_PORT = "8000"
$env:RESEARCHTWIN_DATA_DIR = "runtime_data"
$env:RESEARCHTWIN_LOG_LEVEL = "INFO"Legen Sie keine Schlüssel, persönliche Kennungen oder eine benutzerspezifische IP-Adresse in Quellcode oder committete Konfiguration.
Ausführen
Bei aktiver virtueller Umgebung:
python server.pyDer standardmäßige primäre Endpunkt ist:
http://<LAN_IPV4>:8000/mcpNur für den lokalen Rechner ersetzen Sie <LAN_IPV4> durch 127.0.0.1. Für OpenTrek auf einem anderen vertrauenswürdigen LAN-Gerät verwenden Sie die zutreffende IPv4-Adresse des Windows-Hosts. Das Hilfsskript ist ebenfalls verfügbar:
.\scripts\start_server.ps1Streamable HTTP ist der normale Modus. Für explizite SSE-Kompatibilität führen Sie python server.py --transport sse aus und registrieren den resultierenden /sse-Endpunkt wie in der OpenTrek-Integrationsanleitung dokumentiert. SSE ist ein separat ausgewählter Transportmodus, keine alternative URL, die neben /mcp registriert wird.
Test
Führen Sie Unit-Tests aus dem Repository-Stammverzeichnis aus:
pytest -vFühren Sie den lokalen MCP-Streamable-HTTP-Smoke-Test aus, nachdem die Abhängigkeiten installiert wurden:
python scripts\smoke_test.pyDer Smoke-Test überprüft die tatsächliche Protokollkonnektivität, die Tool-Erkennung und einen Aktivitätsaufzeichnungs-/Listungs-Roundtrip. Er verwendet isolierte temporäre Daten anstelle Ihres runtime_data/-Verzeichnisses.
OpenTrek-Integration
Die OpenTrek-Registrierung sollte die STREAMABLE-Auswahl der Benutzeroberfläche und diese URL-Form verwenden:
http://<LAN_IPV4>:8000/mcpErfinden Sie keinen transportType-JSON-Wert von Hand. Wählen Sie auf der OpenTrek-MCP-Registrierungsseite STREAMABLE aus, geben Sie die URL ein, speichern Sie und überprüfen Sie, ob alle sechs Tools erkannt werden. Siehe docs/open_trek_integration.md für LAN-IPv4-Erkennung, SSE-Kompatibilität, VPN-Prüfungen und einen sicheren Firewall-Fehlerbehebungsprozess.
Demo-Szenario
Eine End-to-End-Demonstration kann den Unterschied zwischen Wissensabruf und persistentem Handeln zeigen:
Der Agent verwendet RAG, um ein fiktives RNN-PPO-Papier oder eine Methodennotiz zu erklären.
Der Forscher sagt, dass ein RNN-PPO-Experiment abgeschlossen wurde, das Training aber noch instabil ist.
Der Agent ruft record_research_activity mit dem Ergebnis, dem Problem und dem nächsten Schritt auf.
Eine fiktive Anforderung des Betreuers, sich auf Generalisierung zu konzentrieren, wird mit record_advisor_instruction aufgezeichnet.
Der Agent prüft den Projektstatus und ruft dann generate_research_report für eine Gruppensitzung auf.
Der resultierende Markdown-Bericht basiert auf gespeicherten Aufzeichnungen, nicht auf einer Einzelantwort. Ein kommentiertes Runbook finden Sie in docs/demo_flow.md.
Datenschutz und Git-Sicherheit
Die .gitignore des Repositorys schließt .venv/, pycache/, Python-Bytecode, .env, pytest- und Ruff-Caches, runtime_data/ und Protokolldateien aus. Diese Pfade können lokale Forschungsaktivitäten, Betreuerkontext, Berichte, Anmeldeinformationen oder maschinenspezifische Daten enthalten.
Nur die fiktiven, anonymen Fixtures in examples/sample_data/ sind sicher zu committen. Überprüfen Sie vor jedem Commit oder Push:
git status
git diff --checkCommitten Sie niemals echte Betreuernachrichten, echte Papierinhalte, Chat-Transkripte, Schlüssel, VPN-Details oder personenbezogene Informationen.
Roadmap
Bei Bedarf von JSON-Dateien zu einem dauerhaften Mehrbenutzer-Speicher-Backend wechseln.
Integrationspunkte für ResearchTwin Memory und ResearchTwin_Core hinzufügen.
Papier-Intelligenz- und Zitier-Workflows um die bestehende RAG-Schicht hinzufügen.
Ein geschütztes Dashboard zur Überprüfung des Projektverlaufs und der Berichte hinzufügen.
Die Wettbewerbs-Demo-Geschichte verbessern, ohne echte Forschungsdaten preiszugeben.
Dokumentation
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides persistent memory and task management for coding agents via MCP tools, enabling mid-session recall and capture of durable knowledge.993MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to persistently store and semantically search shared knowledge via MCP tools.2MIT
- AlicenseNot gradedqualityAmaintenanceEnables agents to create and manage persistent task logs, decisions, dead ends, questions, and handoffs, with file staleness detection and activity reporting.62MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage task state through MCP, including creating, updating, and tracking tasks, with support for client-side encryption and secure local credential storage.94MIT
Related MCP Connectors
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Project management MCP for AI agents with safe task reads and writes.
MCP-native Trust Infrastructure for AI Agents. Persistent encrypted memory with Trust Quotient.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sevenboom77/ResearchTwin-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server