MCP Server Documentation
发布时间:2026-10-18 | 浏览:1
Getting started
Available tools
The server exposes 21 tools across three groups. Combine them to build research workflows that discover, read, and organize papers, and that trace the people behind them.
Read your feeds, search the corpus, read papers, and explore their code. Feed retrieval is free of assistant quota; the search and analysis tools count against it.
get_for_you_feed
The authenticated user's unfiltered For You feed, including link blogs, in the same order as the app. A first visit builds the existing seeded or personalized feed; stale feeds refresh in the background. Retrieval makes no model calls and does not consume assistant quota or record impressions.
First-page size from 1 to 200. Defaults to 20.
JSON: {"papers": [{"universal_paper_id": "2307.12307"}]}. Only stable universal IDs, in feed order; an empty feed returns {"papers": []}. No pagination.
Get the first 10 For You entries
Use the default page size
The app's unfiltered Hot feed over 30 Days, including link blogs, in the same order as the app. Retrieval makes no model calls and does not consume assistant quota or record impressions.
First-page size from 1 to 200. Defaults to 20.
JSON: {"papers": [{"universal_paper_id": "2307.12307"}]}. Only stable universal IDs, in feed order; an empty feed returns {"papers": []}. No pagination.
Get the first 10 Hot entries
Use the default page size
discover_papers
Discovers and ranks multiple candidate papers for a research topic. Internally runs an agentic retrieval loop that combines keyword search, embedding search, and optional multi-round follow-up searches. Best for literature discovery, related work, and broad topical coverage.
3-4 concise keyword terms for exact-name, acronym, method, benchmark, author, or title matching. Plain text only.
A detailed semantic description of the papers that would best answer the user's request. Include the important concepts, methods, applications, and related terms.
A 1-10 estimate of how much retrieval effort this request warrants. Higher values take longer but trigger multi-round follow-up searches.
Only return papers first published on or after this date (YYYY-MM-DD). Omit unless the request names a real boundary; this excludes papers outright.
Only return papers first published on or before this date (YYYY-MM-DD). Omit unless the request names a historical window.
How to sort and prioritize the results.
Ranked list of 5-15 papers, ordered by the requested priority, with: title, publication date, contributing organizations, abstract preview, and arXiv ID.
Find papers on a research topic
Find the newest work on a topic
Broad research question (more retrieval effort)
get_paper_content
Get the content of an arXiv/alphaXiv paper as text. By default returns a structured AI-generated intermediate report optimized for LLM consumption. If no report is available, automatically falls back to the full extracted text. Use the fullText option to skip the report and get the raw extracted text directly.
An arXiv or alphaXiv URL (e.g., 'https://arxiv.org/abs/2307.12307', 'https://arxiv.org/pdf/2401.12345', 'https://www.alphaxiv.org/abs/2307.12307')
If true, return the full extracted text instead of the intermediate report. Defaults to false. Useful when you need raw paper content or the report is insufficient.
The paper content as text. By default, a structured AI-generated report. With fullText=true, the raw extracted text of the paper page by page.
Get the AI-generated report
Get the full raw text
Using an alphaXiv URL
answer_pdf_queries
Returns the filtered page-level content of a single PDF that is relevant to one or more queries. Output is XML (<paper id="..."><page num="N">...</page>...</paper>) so you can construct citations directly from the returned page text. To read multiple papers, issue multiple tool calls in parallel. Multiple queries on the same paper are nearly free — batch every question you have for that paper into one call.
The paper to read, as an ID ('2307.12307'), a URL, or a title. Supports arXiv (arxiv.org/pdf/*, arxiv.org/abs/*), alphaXiv (alphaxiv.org/abs/*), Semantic Scholar abstract pages, and direct PDF URLs. A title is resolved to a single best match, reported back in the <paper> tag.
One or more brief descriptions of the information you're looking for in the paper. Batch all questions about a paper into a single call.
XML containing only the pages relevant to your queries: <paper id="..."><page num="N">page text</page>...</paper>. Use the page text directly to construct citations.
Ask about a single aspect of the paper
Batch multiple questions in one call
Direct PDF URL (non-arXiv)
read_files_from_github_repository
Reads the contents of files or directories from a paper's GitHub repository. This tool has special behaviors for efficient code exploration: reading '/' returns the complete file tree and all top-level files; reading a directory fetches all files in parallel; reading a file returns its contents.
The URL of the paper's codebase repository (e.g., https://github.com/owner/repo)
The path to the file or directory. Use '/' to get the entire repository structure and top-level files.
For files: the file contents as text. For directories: list of files/directories with their contents fetched in parallel. For '/': complete file tree plus all top-level file contents.
Get repository overview
Read a specific file
Read all files in a directory
Researcher tools
Find people rather than papers: who works on a subject, an organization's roster, where someone is now, and who they publish with. Researchers are addressed by the slug rendered at /@slug, and get_researcher, get_researcher_papers, and resolve_researchers also accept plain names and resolve them for you. The search and profile tools count against your assistant quota; the follow tools do not.
find_researchers
Finds researchers by subject, organization, career history, or coauthorship. A topic query is answered from the authorship graph rather than from profile text, so it reaches the people who publish on a subject rather than only those who describe themselves that way. Composable with current affiliation, role, citation range, and dated position filters.
A person's name when identifying that person is the task, or a research subject. Omit for structured roster and career queries.
Research subject answered from paper authorship, for 'who works on X'. Use one concept in the vocabulary its own papers use; concatenating related concepts matches none of them.
Which byline slot topic weights: lead for the students and postdocs driving the work, senior for the PIs closing the author list. Defaults to lead.
Current organization. Every indexed spelling of it is matched, so write the name plainly rather than spelling out variants.
Shorthand for a past position at affiliation, excluding researchers whose current affiliation still matches. Defaults to false.
Career-history filter. Affiliation, role, status, and every date bound apply to the same position row.
Coauthorship evidence against an anchor researcher: shared papers, what share of that person's own output the collaboration is, and how often they lead a paper the anchor closes.
Current role, token-matched ('professor' matches assistant and associate professors). Only current roles are indexed.
Citation floor, to keep a roster to established researchers.
Citation ceiling, to find rising researchers who are not yet famous.
Result ordering. A topic search carries its own ranking and ignores this. Defaults to relevance.
Results per page. Defaults to 12, or 50 for a relationship search.
1-based page over the same ordering, defaulting to 1. Every result says whether more matched beyond it.
Ranked researchers with a [SLUG=...] handle, name, current position, citations, and the evidence behind the match. A topic search also returns the defining papers on that topic and who wrote them.
Who works on a subject
An organization's roster, most cited first
Who recently left an organization
Who someone publishes with
Gets compact profiles for up to 25 researchers at once. Names resolve to the best-matching indexed researcher and tolerate a misspelling, so a slug is never required. Current positions and up to five curated past positions are returned by default; everything else is opt-in.
Full names or exact slugs. A corrected spelling is reported inline.
Additional sections: bio, position_history, linkedin_experience, education, citation_trajectory, coauthors, alphaxiv_account, links.
Optional paper context for small profiles. For a larger or date-bounded paper question use get_researcher_papers instead. Defaults to none.
Papers per researcher when papers is set. Defaults to 3.
One profile per researcher: slug, name, current and past positions, citation metrics, and each requested section.
Look someone up by name
Several people, with bios and education
get_researcher_papers
The papers on alphaXiv for one or many researchers, grouped per researcher. Sort by recent with published_after to answer what someone is working on now, or by cited for their best-known work. Returned paper ids chain into the paper tools.
Full names or exact slugs, resolved the same way as get_researcher.
cited for notable work, recent for current activity, viewed for alphaXiv attention. Defaults to cited.
Only papers first published on or after this date (YYYY-MM-DD).
Papers returned per researcher. Defaults to 10.
Papers per researcher with title, arXiv id, publication date, citations, and views, plus how many of their all-time papers the page covers.
What has someone published lately
Best-known work for several people
resolve_researchers
Turns a list of people you read somewhere else — a lab roster, a team page, an award list — into current alphaXiv researcher entries, so you cite where someone works now rather than what the page said. Pass every person in one batch. Optional per-person URLs and related researchers disambiguate common names.
Each entry takes the person's name as printed by the source, plus an optional personal, institutional, Scholar, LinkedIn, or OpenReview url for that person. Do not pass the shared roster URL.
Names or slugs related to the whole list. Coauthorship is used only to disambiguate, never as proof of the source's claimed relationship.
One entry per person: the matched researcher's slug and name with their current position, or a note that nothing matched confidently.
Identify people listed on a lab page
list_followed_researchers
Lists the researchers the user follows, with each one's slug, name, current headline or affiliation, and citation count. Following a researcher surfaces their new papers in the user's alphaXiv feed.
The followed researchers, each with slug, name, headline, and citations.
List every followed researcher
follow_researcher
Follows a researcher so their new papers reach the user's feed. Idempotent: following someone already followed changes nothing. The slug comes from find_researchers, get_researcher, or a /@slug profile URL.
The researcher's slug, as rendered at /@<slug>.
The slug and its resulting follow state.
Follow a researcher
unfollow_researcher
Stops following a researcher. Idempotent: unfollowing someone not followed changes nothing.
The researcher's slug, from list_followed_researchers.
The slug and its resulting follow state.
Unfollow a researcher
Manage the folders in your library on your behalf, and edit the metadata of papers you uploaded yourself. Folders are addressed by the opaque folder_id returned from list_library. The default 'Want to read', 'Reading', and 'Completed' folders represent reading status and overlap freely – a paper can live in any number of folders at once.
Lists the user's folders (bookmark collections) with their folder_id, name, type, parent_id, sharing_status, and paper_count. This is the entry point for every other library tool, since folders are addressed by the folder_id it returns.
Also list the papers inside each folder (capped per folder), each with its id, title, publication date, and whether it is a public arXiv paper or one the user uploaded. Defaults to false.
Report which folders already contain each of these papers.
The list of folders. With include_papers, each folder also carries its papers. With paper_ids_or_urls, an added paper_membership section maps each paper to the folders that hold it.
List every folder
Check where specific papers are saved
save_papers_to_folder
Adds one or more papers to a folder. Papers not yet in the database are fetched from arXiv. Adding is idempotent and never removes a paper from its other folders.
arXiv ids or alphaXiv/arXiv URLs of the papers to save.
Target folder. Defaults to the user's 'Want to read' folder.
The target folder_id and, per paper, whether it was added, was already in the folder, or could not be found.
Save to 'Want to read' (the default)
Save to a specific folder
remove_papers_from_folder
Removes one or more papers from a single folder. Only affects the given folder; each paper stays in any others it belongs to.
arXiv ids or alphaXiv/arXiv URLs of the papers to remove.
Folder to remove the papers from.
Which papers were removed, which were not in the folder, and which could not be found.
Remove a paper from a folder
move_papers_between_folders
Moves papers from a source folder to a destination folder atomically: each paper is added to the destination and removed from the source. A paper already in the destination is reported as a duplicate and left untouched in the source.
arXiv ids or alphaXiv/arXiv URLs of the papers to move.
Destination folder.
The moved count, the duplicate count, and any papers that could not be found.
Move a paper from 'Reading' to 'Completed'
Creates a new custom folder, optionally nested under an existing folder.
Name of the new folder.
Nest the new folder under this existing folder.
The new folder_id.
Create a top-level folder
Create a nested folder
Renames a custom folder. Only custom folders can be renamed, not the default reading-status or publications folders.
Custom folder to rename.
New name for the folder.
The folder_id and its new name.
Rename a folder
Deletes a folder and its paper memberships. The papers themselves are not deleted, and the publications and private-papers folders cannot be deleted.
Folder to delete.
Confirmation with the deleted folder_id.
Delete a folder
edit_private_paper_metadata
Edits the metadata of a paper you uploaded to alphaXiv yourself. Papers from arXiv cannot be edited. Only the fields you pass change; the rest keep their current values. Uploads default to the upload date as their publication date, so this is how an agent that has looked up a paper's real publication date corrects it.
The paper's id as returned by list_library, or its alphaXiv URL.
Full author names in byline order. Replaces the current list entirely.
The date the paper was originally published (YYYY-MM-DD), not the date it was uploaded.
Subject categories such as 'cs.LG'. Replaces the current list entirely.
BibTeX citation for the paper, or null to clear it.
The paper's metadata as it now stands.
Correct the publication date of an upload
Fix the byline and categories
Common use cases
Literature Review
1. Use discover_papers to surface relevant candidates for the topic
2. Re-run discover_papers with varied keywords/questions or a higher difficulty to fill gaps and ensure comprehensive coverage
3. Use answer_pdf_queries (batching multiple questions per paper) to extract citation-ready excerpts from each paper
4. Synthesize findings across papers
1. Use discover_papers to find the paper of interest
2. Extract the GitHub URL from results (or from the paper's metadata)
3. Use read_files_from_github_repository with path="/" for an overview, then drill into specific directories
1. Use discover_papers (possibly multiple framings in parallel) to find sources
2. Use get_paper_content to read full text or the AI-generated report
3. Use answer_pdf_queries for citation-grade excerpts from specific pages
4. Use read_files_from_github_repository to verify implementation claims
Researcher Discovery
1. Use find_researchers with a topic to rank the people publishing on it, and read the defining papers it returns alongside them
2. Use get_researcher for their positions, education, and collaborators
3. Use get_researcher_papers sorted by recent to see what they are working on now
4. Use follow_researcher to keep their new papers coming to the feed
Library Management
1. Use list_library to read the user's folders and their folder_id
2. Use create_folder to organize a topic, then save_papers_to_folder to fill it
3. Use move_papers_between_folders to advance papers through reading-status folders as the user reads them
4. Use edit_private_paper_metadata to fix the publication date or byline of uploaded PDFs, which otherwise carry their upload date