ResearchTwin
<!-- mcp-name: io.github.martinfrasch/researchtwin -->
# mcp-server-researchtwin
MCP server for **ResearchTwin** — inter-agentic research discovery across a federated network of researcher digital twins.
Exposes the [ResearchTwin](https://researchtwin.net) platform API as [Model Context Protocol](https://modelcontextprotocol.io) tools, enabling AI agents to discover researchers, explore publications, datasets, repositories, and compute S-Index impact metrics.
## Tools
| Tool | Description |
|------|-------------|
| `list_researchers` | List all researchers registered on the platform |
| `get_profile` | Get a researcher's profile with S-Index score |
| `get_context` | Get comprehensive research context with all data source metrics |
| `get_papers` | Get publications with citation counts |
| `get_datasets` | Get datasets with QIC (Quality × Impact × Collaboration) scores |
| `get_repos` | Get code repositories with QIC scores |
| `discover` | Search across all researchers for papers, datasets, or repos |
| `get_network_map` | Get geographic affiliations for all researchers |
## Resources
| URI | Description |
|-----|-------------|
| `researchtwin://about` | Platform information and available tools |
## Installation
```bash
pip install mcp-server-researchtwin
```
Or install from source:
```bash
git clone https://github.com/martinfrasch/researchtwin.git
cd researchtwin/mcp-server
pip install -e .
```
## Usage
### Claude Desktop
Add to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"researchtwin": {
"command": "mcp-server-researchtwin"
}
}
}
```
### Claude Code
Add to your Claude Code MCP settings:
```json
{
"mcpServers": {
"researchtwin": {
"command": "mcp-server-researchtwin"
}
}
}
```
### Custom base URL
To point at a local or self-hosted ResearchTwin instance:
```bash
RESEARCHTWIN_URL=http://localhost:8000 mcp-server-researchtwin
```
Or in Claude Desktop config:
```json
{
"mcpServers": {
"researchtwin": {
"command": "mcp-server-researchtwin",
"env": {
"RESEARCHTWIN_URL": "http://localhost:8000"
}
}
}
}
```
## Example conversations
Once connected, you can ask your AI agent:
- *"Who are the researchers on ResearchTwin?"*
- *"Show me Martin Frasch's publications and S-Index score"*
- *"Find all datasets related to fetal monitoring"*
- *"What repositories have the highest QIC scores?"*
- *"Show me the geographic distribution of the research network"*
## Requirements
- Python 3.10+
- Network access to `researchtwin.net` (or your configured instance)
## License
MIT
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose with no ambiguity. The tools are well-separated by function: discovery across researchers, getting different types of researcher-specific content (context, datasets, papers, repos, profile), listing researchers, and network mapping. The descriptions explicitly differentiate similar tools like get_context vs get_profile.
All tools follow a consistent verb_noun pattern with clear, descriptive names. The naming convention is perfectly uniform: discover, get_context, get_datasets, get_network_map, get_papers, get_profile, get_repos, list_researchers. Every tool name immediately communicates its function.
With 8 tools, this is well-scoped for a research platform. Each tool earns its place by covering distinct aspects of researcher data exploration: discovery, listing, detailed profiling, and specific content types. The count is appropriate for the domain without being overwhelming or insufficient.
The tool surface provides complete coverage for exploring a research network. It includes discovery across researchers, listing all researchers, comprehensive profiling (both summary and detailed context), and access to all research outputs (papers, datasets, repositories). The network map adds valuable geographic context, creating a well-rounded set with no obvious gaps.