ResearchTwin

السجل الرسمي البحث والويب

Federated research discovery with S-Index metrics across a network of digital twins.

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

PYPI package mcp-server-researchtwin
Claude Code
claude mcp add researchtwin -e 'RESEARCHTWIN_URL=<RESEARCHTWIN_URL>' -- uvx mcp-server-researchtwin==0.1.1
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "researchtwin": {
            "command": "uvx",
            "args": [
                "mcp-server-researchtwin==0.1.1"
            ],
            "env": {
                "RESEARCHTWIN_URL": "<RESEARCHTWIN_URL>"
            }
        }
    }
}

متغيرات البيئة

  • RESEARCHTWIN_URL Base URL for ResearchTwin API (default: https://researchtwin.net)

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. ResearchTwin: Federated Agentic Web of Research Knowledge
  2. Project Vision
  3. Architecture Overview
  4. Getting Started
  5. Repository Structure
  6. Ecosystem
  7. Embeddable S-Index Widget
  8. Documentation
  9. Contributing
  10. License
  11. Contact

ResearchTwin: Federated Agentic Web of Research Knowledge

ResearchTwin is an open-source, federated platform that transforms a researcher's publications, datasets, and code repositories into a conversational Digital Twin. Built on a Bimodal Glial-Neural Optimization (BGNO) architecture, it enables dual-discovery where both humans and AI agents collaborate to accelerate scientific discovery.

Live at researchtwin.net | Join the Network | Read the Paper (arXiv)


Project Vision

The exponential growth of scientific outputs has created a "discovery bottleneck." Traditional static PDFs and siloed repositories limit knowledge synthesis and reuse. ResearchTwin addresses this by:

  • Integrating multi-modal research artifacts from Semantic Scholar, Google Scholar, GitHub, and Figshare
  • Computing a real-time S-Index metric (Quality × Impact × Collaboration) across all output types
  • Providing a conversational chatbot interface for interactive research exploration
  • Exposing an Inter-Agentic Discovery API with Schema.org types for machine-to-machine research discovery
  • Enabling a federated, Discord-like architecture supporting local nodes, hubs, and hosted edges

Architecture Overview

BGNO (Bimodal Glial-Neural Optimization)
Data Sources          Glial Layer          Neural Layer         Interface
┌──────────────┐    ┌─────────────┐    ┌──────────────┐    ┌────────────┐
│Semantic Scholar│───▶│             │    │              │    │  Web Chat  │
│Google Scholar │───▶│  SQLite     │───▶│  RAG with    │───▶│  Discord   │
│GitHub API     │───▶│  Cache +    │    │  Claude API  │    │  Agent API │
│Figshare API   │───▶│  Rate Limit │    │              │    │  Embed     │
└──────────────┘    └─────────────┘    └──────────────┘    └────────────┘
  • Connector Layer: Pulls papers (S2+GS with deduplication), repos (GitHub), datasets (Figshare), and ORCID metadata
  • Glial Layer: SQLite caching with 24h TTL, rate limiting, S2+GS title-similarity merge (0.85 threshold)
  • Neural Layer: RAG with Claude — context assembly, prompt engineering, conversational synthesis
  • Interface Layer: D3.js knowledge graph, chat widget, Discord bot, REST API
Federated Network Tiers
TierNameDescriptionStatus
Tier 1Local NodesResearchers run python run_node.py locallyLive
Tier 2HubsLab aggregators federating multiple nodesPlanned
Tier 3Hosted EdgesCloud-hosted at researchtwin.netLive
Inter-Agentic Discovery API

Machine-readable endpoints with Schema.org @type annotations:

EndpointSchema.org TypePurpose
GET /api/researcher/{slug}/profilePersonResearcher profile with HATEOAS links
GET /api/researcher/{slug}/papersItemList of ScholarlyArticlePapers with citations
GET /api/researcher/{slug}/datasetsItemList of DatasetDatasets with QIC scores
GET /api/researcher/{slug}/reposItemList of SoftwareSourceCodeRepos with QIC scores
GET /api/discover?q=keyword&type=paperSearchResultSetCross-researcher search

Getting Started

Hosted (Tier 3) — Zero Setup
  1. Visit researchtwin.net/join.html
  2. Register with your name, email, and research identifiers
  3. Your Digital Twin is live immediately
Local Node (Tier 1) — Full Control
git clone https://github.com/martinfrasch/researchtwin.git
cd researchtwin
pip install -r backend/requirements.txt
cp node_config.json.example node_config.json
# Edit node_config.json with your details
python run_node.py --config node_config.json
Docker Deployment
cp .env.example .env  # Add your API keys
docker-compose up -d --build

Required API keys: ANTHROPIC_API_KEY (for Claude RAG) Optional: S2_API_KEY, GITHUB_TOKEN, DISCORD_BOT_TOKEN, SMTP credentials


Repository Structure

researchtwin/
├── backend/
│   ├── main.py              # FastAPI endpoints (REST + Discovery API)
│   ├── researchers.py        # SQLite researcher CRUD + token management
│   ├── database.py           # SQLite schema, WAL mode, migrations
│   ├── models.py             # Pydantic models for all endpoints
│   ├── rag.py                # RAG context assembly for Claude
│   ├── qic_index.py          # S-Index / QIC computation engine
│   ├── email_service.py      # SMTP service for profile update codes
│   ├── connectors/           # Data source connectors
│   │   ├── semantic_scholar.py
│   │   ├── scholarly_lib.py  # Google Scholar via scholarly
│   │   ├── github_connector.py
│   │   └── figshare.py
│   └── discord_bot/          # Discord bot with /research and /sindex
├── frontend/
│   ├── index.html            # Main dashboard with D3.js knowledge graph
│   ├── join.html             # Self-registration page
│   ├── update.html           # Email-verified profile updates
│   ├── privacy.html          # Privacy policy
│   └── widget-loader.js      # Embeddable chat widget
├── run_node.py               # Tier 1 local node launcher
├── node_config.json.example  # Local node configuration template
├── docker-compose.yml        # Docker orchestration
├── nginx/                    # Nginx reverse proxy + SSL
└── whitepaper.tex            # LaTeX manuscript

Ecosystem

This repository is part of the ResearchTwin Ecosystem project:

RepositoryDescription
researchtwinFederated platform (this repo)
s-indexS-Index formal specification and reference implementation

Embeddable S-Index Widget

Show your S-Index on your lab website, Google Sites page, or personal homepage:

<iframe
  src="https://researchtwin.net/embed.html?slug=YOUR-SLUG"
  width="440" height="180"
  style="border:none; border-radius:12px;"
  loading="lazy">
</iframe>

Replace YOUR-SLUG with your researcher slug (e.g. martin-frasch).

Google Sites: Edit page > Insert > Embed > "By URL" tab > paste https://researchtwin.net/embed.html?slug=YOUR-SLUG

WordPress: Add a Custom HTML block and paste the iframe code.

The widget displays the researcher's name, S-Index score, h-index, citation count, and paper count. Data updates automatically from live API sources.

See it in action | Full embed instructions


Documentation

DocumentDescription
API ReferenceFull REST API documentation with schemas and examples
Self-Hosting GuideTier 1 Local Node setup and configuration
Hub Federation GuideTier 2 Hub architecture and setup (planned)
Security PolicyVulnerability reporting and security best practices

Contributing

Contributions welcome! See the project board for tracked issues.

  • New connectors (ORCID enrichment, PubMed, OpenAlex)
  • Affiliation-based geographic mapping
  • MCP server for inter-agentic discovery
  • UI/UX improvements
  • Bug fixes and optimizations

License

MIT License. See LICENSE.


Contact


Empowering researchers and AI agents to discover, collaborate, and innovate together.

الأسئلة الشائعة

ما هو ResearchTwin؟

Federated research discovery with S-Index metrics across a network of digital twins.

كيف أثبّت ResearchTwin؟

يعمل على جهازك. في Claude Code: claude mcp add researchtwin -e 'RESEARCHTWIN_URL=<RESEARCHTWIN_URL>' -- uvx mcp-server-researchtwin==0.1.1. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج ResearchTwin إلى مفتاح API؟

لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.

هل ResearchTwin مفتوح المصدر؟

شيفرته علنية على GitHub، لكن المستودع لا يعلن ترخيصًا قياسيًا.

من يصون ResearchTwin؟

ينشره martinfrasch. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.