---
title: "Tool Catalog"
description: "Complete reference for all 33 ScholarXIV MCP tools with parameters and examples."
canonical_url: "https://scholarxiv.com/developers/docs/mcp/tools"
markdown_url: "https://scholarxiv.com/developers/docs/mcp/tools.md"
---

# Tool Catalog
URL: /developers/docs/mcp/tools
LLM index: /llms.txt
Description: Complete reference for all 33 ScholarXIV MCP tools with parameters and examples.
Related: mcp, mcp/quickstart, mcp/examples

# Tool Catalog

The ScholarXIV MCP server exposes **33 tools** across 7 categories.

## Overview

| Category | Tools | Description |
|----------|-------|-------------|
| [Search & Discovery](#search--discovery) | 4 | Find papers and collections |
| [Paper Operations](#paper-operations) | 8 | Read, bookmark, like, and comment on papers |
| [Collections](#collections) | 10 | Create, update, and manage paper collections |
| [Collection Members](#collection-members) | 4 | Manage who can access collections |
| [Chats](#chats) | 4 | AI research chat and conversation history |
| [Account](#account) | 3 | Subscription info, plans, and reading digests |

---

## Search & Discovery

### `search_papers`

Search the ScholarXIV database of 3M+ academic papers.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | Search query text |
| `search_filter` | enum | No | Field to search: `all`, `ti`, `au`, `abs`, `cat`, `id`, `co`, `jr`, `rn` |
| `limit` | number | No | Max results (1-50, default 10) |
| `page` | number | No | Page number, 0-indexed (default 0) |
| `sort_by` | enum | No | `relevance`, `lastUpdatedDate`, `submittedDate` (default `relevance`) |
| `sort_order` | enum | No | `ascending`, `descending` (default `descending`) |

```
search_papers(query: "protein folding", limit: 5)
```

### `search_collections`

Search public paper collections created by other researchers.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | Search query for collection titles/descriptions |
| `page` | number | No | Page number (default 1) |

```
search_collections(query: "machine learning")
```

### `discover_collections`

Browse random public collections from other researchers.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | number | No | Page number (default 1) |

```
discover_collections(page: 1)
```

### `get_recommended_collections`

Get personalized collection recommendations based on your reading profile.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | number | No | Page number (default 1) |

```
get_recommended_collections(page: 1)
```

---

## Paper Operations

### `get_paper`

Get full metadata for a specific paper by arXiv ID or DOI.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `paper_id` | string | Yes | arXiv ID (e.g. "2301.12345") or DOI |

```
get_paper(paper_id: "2502.03725")
```

### `bookmark_paper`

Toggle bookmark state on a paper.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `paper_id` | string | Yes | Paper ID (extractedID) |

```
bookmark_paper(paper_id: "2502.03725")
```

### `like_paper`

Toggle like state on a paper.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `paper_id` | string | Yes | Paper ID (extractedID) |

```
like_paper(paper_id: "2502.03725")
```

### `get_bookmarked_papers`

Get all papers bookmarked by the authenticated user.

```
get_bookmarked_papers()
```

### `get_liked_papers`

Get all papers liked by the authenticated user.

```
get_liked_papers()
```

### `get_paper_comments`

Get community comments and discussion for a specific paper.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `paper_id` | string | Yes | Paper ID (extractedID) |

```
get_paper_comments(paper_id: "2502.03725")
```

### `comment_on_paper`

Post a comment on a paper.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `paper_id` | string | Yes | Paper ID (extractedID) |
| `comment` | string | Yes | The comment text to post |
| `parent_id` | string | No | Parent comment ID for threaded replies |

```
comment_on_paper(paper_id: "2502.03725", comment: "Great paper on optimal control!")
```

### `delete_comment`

Delete a comment you own.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `comment_id` | string | Yes | Comment ID (MongoDB ObjectId) |
| `paper_id` | string | Yes | Paper ID (extractedID) |

```
delete_comment(comment_id: "507f1f77bcf86cd799439011", paper_id: "2502.03725")
```

---

## Collections

### `list_collections`

List all collections you are a member of.

```
list_collections()
```

### `create_collection`

Create a new paper collection.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | Collection title |
| `description` | string | No | Description |
| `tags` | string[] | No | Tags |

```
create_collection(title: "ML Papers", tags: ["machine learning", "neural networks"])
```

### `update_collection`

Update a collection's title, description, tags, or visibility.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID |
| `title` | string | No | New title |
| `description` | string | No | New description |
| `tags` | string[] | No | New tags |
| `visibility` | enum | No | `public` or `private` |

```
update_collection(collection_id: "6a0e05bc...", visibility: "public")
```

### `delete_collection`

Delete a collection and all its papers.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID |

```
delete_collection(collection_id: "6a0e05bc...")
```

### `get_collection_detail`

Get full details of a collection including all papers.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID |

```
get_collection_detail(collection_id: "6a0e05bc...")
```

### `get_collection_papers`

Get all papers in a collection.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID |

```
get_collection_papers(collection_id: "6a0e05bc...")
```

### `add_paper_to_collection`

Add a paper to a collection.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID |
| `paper_id` | string | Yes | Paper ID (extractedID) |

```
add_paper_to_collection(collection_id: "6a0e05bc...", paper_id: "2502.03725")
```

### `remove_paper_from_collection`

Remove a paper from a collection.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID |
| `paper_id` | string | Yes | Paper ID (extractedID) |

```
remove_paper_from_collection(collection_id: "6a0e05bc...", paper_id: "2502.03725")
```

### `join_collection`

Join a public collection as a viewer.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID |

```
join_collection(collection_id: "6a0dffe2...")
```

### `leave_collection`

Leave a collection you are a member of.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID |

```
leave_collection(collection_id: "6a0dffe2...")
```

---

## Collection Members

### `get_collection_members`

List members of a collection (owner only).

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID |
| `page` | number | No | Page number (default 1) |
| `limit` | number | No | Results per page (default 10) |
| `search` | string | No | Search by name or email |

```
get_collection_members(collection_id: "6a0e05bc...")
```

### `update_member_role`

Change a collection member's role (owner only).

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID |
| `user_id` | string | Yes | User ID of the member |
| `role` | enum | Yes | `editor` or `viewer` |

```
update_member_role(collection_id: "6a0e05bc...", user_id: "user123", role: "editor")
```

### `remove_member`

Remove a member from a collection (owner only).

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID |
| `user_id` | string | Yes | User ID of the member to remove |

```
remove_member(collection_id: "6a0e05bc...", user_id: "user123")
```

### `generate_share_token`

Generate a share link token for a collection.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | Collection ID |
| `role` | enum | Yes | `viewer` or `editor` |

```
generate_share_token(collection_id: "6a0e05bc...", role: "viewer")
```

---

## Chats

### `list_chats`

List all chat conversations.

```
list_chats()
```

### `get_chat_history`

Retrieve all messages from a specific chat.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | string | Yes | Chat ID (from list_chats) |

```
get_chat_history(chat_id: "6a39d86d...")
```

### `delete_chat`

Delete a chat and its history.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `chat_id` | string | Yes | Chat ID |

```
delete_chat(chat_id: "6a39d86d...")
```

### `research_chat`

Ask the ScholarXIV AI a research question. The AI can search papers, use web search, and execute Python code.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `question` | string | Yes | Your research question |
| `chat_id` | string | No | Existing chat ID to continue a conversation |
| `selected_papers` | string | No | Paper context the AI can reference |
| `selected_texts` | string | No | Highlighted text passages to reference |
| `is_deep_research` | boolean | No | Enable deep research mode (default false) |
| `model` | string | No | AI model to use (default: auto) |

```
research_chat(question: "What are the latest advances in protein folding?", is_deep_research: true)
```

---

## Account

### `get_subscription_info`

Get your current subscription plan, rate limits, and API usage.

```
get_subscription_info()
```

### `get_plans`

List all available subscription plans with pricing.

```
get_plans()
```

### `get_pulse`

View AI-generated digests of your bookmarked and liked papers with insights.

```
get_pulse()
```

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
Docs-scoped sitemap: [/docs/sitemap.md](/docs/sitemap.md).
Well-known sitemap: [/.well-known/sitemap.md](/.well-known/sitemap.md).
