MCP App Store
by KeenEthics
Education & Research
Elicit icon

Elicit

by Elicit, Inc.

Overview

Elicit's MCP server gives AI assistants direct access to a corpus of over 125 million academic papers. Search for relevant literature using natural language queries, create structured reports that extract and synthesize data across papers, and retrieve detailed report results — all programmatically. Built for life sciences R&D workflows, the server enables agents to rapidly survey evidence, compare findings across studies, and surface key data points without manual literature review, accelerating everything from target discovery to systematic evidence assessment.

Tools

add_to_library_collection

ChatGPT
Adds up to 500 of your sources to a collection you own or can edit. addedCount is the number added. A source is skipped if it is already in the collection, or if a paper in the collection is the same paper. Papers match by Elicit id, DOI, title, or identical PDF. Each skipped source appears in duplicates with duplicateOf, the id of the paper already in the collection (its own id when it was already a member). Each added source appears in added with collectionSourceId, the id the collection holds for it: in a group collection the collection gets its own copy of each added source, under its own id, and your source stays yours. If any id is not a source you own, the request returns 404 and adds nothing.

archive_routine

ChatGPT
Archive a routine and remove its schedule. The routine remains restorable with restore_routine.

create_agent_session

ChatGPT
Start asynchronous Research Agent work from a query and optional attachments: [{file_id}] from stage_file_upload, after the bytes have been uploaded. Returns a stable sessionId and an Elicit URL. Save both, then poll get_agent_session_events for progress and answers. Creation consumes account usage; do not blindly retry after a timeout—check list_sessions first to avoid duplicate work.

create_library_collection

ChatGPT
Creates an empty collection. Names are not unique. Store the returned id.

create_report

ChatGPT
Create an Elicit report for a research question.

create_session_share

ChatGPT
Share an owned Research Agent session, report, or systematic review read-only with the requested email. May send an invitation email and exposes session content to the recipient: obtain the user's approval of the recipient before calling. Existing editor/reviewer grants are preserved, not downgraded. Shared recipients cannot re-share or control Research Agent sessions. This does not make the session public. Existing recipient limits and invite eligibility apply.

create_systematic_review

ChatGPT
Create a systematic literature review with configurable search, screening, extraction, and report stages.

delete_session_share

ChatGPT
Revoke an email's direct share or pending invitation on an owned Research Agent session, report, or systematic review. Owner only and safe to repeat. Destructive: removes any direct role, including editor/reviewer access omitted from list_session_shares. Confirm the recipient with the user. Other access paths are unaffected; already-issued download URLs remain usable until expiry.

download_agent_session_artifact

ChatGPT
Get a short-lived download URL for an owned or explicitly shared session artifact. Use format original (default) for file-backed artifacts; for deliveredOutputs choose json (all kinds), csv/xlsx (tables), or md (prose). Uses Elicit's existing export formats; unsupported kind/format combinations fail explicitly. Download outside model context without an Authorization header. Links are bearer capabilities valid for 30 minutes: keep them private, refresh by calling again, and use create_session_share rather than distributing a download URL. Revoking a share does not invalidate URLs already issued before their expiry.

get_agent_session

ChatGPT
Inspect an owned or explicitly shared Research Agent session. Status is processing (working), completed (idle and ready for input, not permanently closed), failed, or pausedForInsufficientQuota. A stopped turn is identified by session_stopped in get_agent_session_events, not a distinct detail status. Use that tool to read the conversation and answers. Shared access is read-only.

get_agent_session_artifact_content

ChatGPT
Read a delivered output from an owned or explicitly shared session as structured JSON, including resolved citations. Use a deliveredOutputs artifactId from get_agent_session_artifacts. delivery inline includes the complete data; delivery download provides the complete JSON file and sizeBytes instead when too large for MCP. Fetch that URL outside model context and inspect it selectively; content is never silently truncated. Links expire after 30 minutes; call again for a fresh link. File-backed artifacts instead use download_agent_session_artifact.

get_agent_session_artifacts

ChatGPT
Discover the latest file-backed artifacts and delivered outputs in an owned or explicitly shared Research Agent session. Use the opaque artifactId unchanged: artifacts use download_agent_session_artifact with format original; deliveredOutputs use get_agent_session_artifact_content or download_agent_session_artifact with json, csv/xlsx (tables), or md (prose). delivery inline includes data; delivery download supplies the complete JSON as a short-lived URL when too large for MCP. Nothing is truncated. Do not assume a client has fetched the download.

get_agent_session_events

ChatGPT
Read conversation, research progress, answers with citations, and Methods from an owned or explicitly shared session. Omit cursor once for full history, then pass each returned cursor unchanged to receive only later events. Save a cursor only after consuming its page; retry the previous cursor after interruption and deduplicate by eventId. Later snapshots of the same messageId replace earlier snapshots for display. Poll with a delay (e.g. 5 seconds), not a tight loop; an empty page does not mean work finished. completed/session_idle means ready for a follow-up; session_stopped acknowledges a stop.

get_library_collection

ChatGPT
Retrieves a collection by id. role is your access level.

get_library_import

ChatGPT
Retrieves an import. status is processing or completed. completed does not mean that every file succeeded. File status values: pending; created, with sourceId; duplicate, with duplicateOf; failed, with error. error.code values: invalid-file, do not retry; processing-error and server-error, a retry may succeed; unknown.

get_library_source

ChatGPT
Retrieves a source by id. fullTextStatus values: pending, Elicit has not finished looking for a PDF; available, full text is ready; unavailable, no PDF was found.

get_library_source_full_text

ChatGPT
Returns the parsed full text of the source's PDF as markdown: title, abstract, and body. A 404 has one of three codes. full_text_pending: the PDF search or parse is in progress; retry later. full_text_unavailable: no PDF was found. not_found: the source is not visible to you.

get_report

ChatGPT
Fetch a report by ID. By default the response only includes title, summary, status, and presigned PDF/DOCX download URLs. To also include the full report markdown and abstract, pass includeReportBody: true.

get_routine

ChatGPT
Get one accessible routine, including its attached session, instruction, schedule, status, and notification level.

get_systematic_review

ChatGPT
Fetch a systematic review by ID. By default the response only includes title, summary, status, and presigned report download URLs. To also include the full report markdown and abstract, pass includeReportBody: true.

get_usage

ChatGPT
Get the current account's usage status for this billing period: whether usage remains (hasUsageRemaining), the percentage of plan usage consumed (percentUsed), the billing period bounds (periodStart/periodEnd, when monthly limits reset), and — only when extra usage is enabled — extra-usage spend and limit in USD cents (extraUsage). Call this when a session is pausedForInsufficientQuota or resume_session returns insufficient_quota to check remaining headroom.

import_library_files

ChatGPT
Imports PDFs staged with stage_library_upload into the user's library. Elicit parses each file, extracts its metadata, attaches the full text, and checks for duplicates. The response is an import with status: processing and every file pending. Poll it with get_library_import until status is completed. collectionId adds each imported paper to a collection, duplicates included. A file id can be imported once. A byte-identical copy of a PDF in the library is always a duplicate.

list_library_collections

ChatGPT
Returns the collections you own and the collections shared with you, sorted by name with id as a tie-breaker. role is your access level. sharedVia is set on collections shared with you. links.sources lists the sources in the collection. Send nextCursor as cursor to get the next page. Pagination is not a snapshot: renaming a collection can move it between pages, and deleting or losing access to the cursor's collection returns 400 invalid_request. Restart from the first page if the cursor is no longer valid.

list_reports

ChatGPT
List the current user's reports.

list_routine_runs

ChatGPT
List a routine's run history newest first. Paginate with nextCursor; run results include terminal status, output references, and failure details when present.

list_routines

ChatGPT
List every routine in sessions the caller can access. Optionally restrict to one sessionId, search by name or instruction, filter by lifecycle state, sort, and paginate with nextCursor.

list_session_shares

ChatGPT
List read-only recipients and pending read-only invitations on an owned Research Agent session, report, or systematic review. Owner only; recipients cannot list collaborators. Existing editor/reviewer grants are omitted and must be inspected in the web app.

list_sessions

ChatGPT
List accessible research sessions — reports, systematic reviews, and Research Agent sessions — newest first. Use type: agent to find agent sessions, including read-only shares (role: shared); a share does not permit messages, stop, or resume. Each item carries a type and sessionId for the matching get tool. Filter with type, status, or source (including mcp), and paginate with nextCursor as cursor.

list_systematic_reviews

ChatGPT
List the current user's systematic reviews.

pause_routine

ChatGPT
Pause an active routine so scheduled occurrences stop being dispatched.

restore_routine

ChatGPT
Restore an archived routine in a paused state; call resume_routine to run it again.

search_library

ChatGPT
Returns your own sources, newest first. To list a shared collection's papers, pass its id in the collectionId query parameter; those papers are not included in the unfiltered list. Each returned source carries your role and its visible collection memberships in collectionIds. Filters combine with AND. q matches each term as a case-insensitive substring of the title, authors, abstract, venue, or Elicit id. A DOI-shaped term matches the DOI. doi and elicitId are exact filters. fullTextStatus filters by whether parsed full text is attached. Default page size 50, maximum 100. totalCount counts all matches, not the page.

search_papers

ChatGPT
Search Elicit's academic paper corpus. Pass corpus (elicit — default, full paper index — or pubmed for PubMed-only), searchMode: "keyword" to interpret the query as a Lucene-style expression instead of natural language, or filters (year range, study type, journal quartile, etc.) to narrow results. For clinical trials, use search_trials instead.

search_trials

ChatGPT
Search for clinical trials. Trial records come from ClinicalTrials.gov. Pass trialFilters to narrow by phase, recruitment status, or whether the trial has posted results, or searchMode: "keyword" to send a Lucene-style expression directly to the underlying advanced-filter API.

send_agent_session_message

ChatGPT
Send a follow-up to an owned Research Agent session, preferably when completed (idle) or stopped. Optionally attach uploaded files with attachments: [{file_id}] from stage_file_upload. Returns a messageId to match the user_message event for this turn; continue polling with the saved cursor. Failed sessions cannot continue; quota-paused sessions must be resumed first. Shares are read-only. Messages are not idempotent: after a timeout, inspect events before retrying.

stage_file_upload

ChatGPT
Prepare an upload (maximum 30 MiB) for Research Agent. Supply filename, content_type, and exact size_bytes. This does not transfer the bytes: PUT the file to upload_url with matching Content-Type and Content-Length, without an Authorization header. Then pass attachments: [{file_id}] to create_agent_session or send_agent_session_message. The URL and unclaimed file_id expire at expires_at (30 minutes). A file can belong to only one session or library import; it may be reused within that session. A client without file/HTTP transfer support cannot complete an upload; do not claim it succeeded. Existing upload eligibility and file limits apply.

stage_library_upload

ChatGPT
Stages a local PDF for import_library_files. Send the filename, content_type: application/pdf, and the exact size_bytes. Then PUT the file bytes to the returned upload_url, for example curl -X PUT -T paper.pdf -H 'Content-Type: application/pdf' '<upload_url>'. Do not send an Authorization header on the PUT. Pass the returned file_id to import_library_files. A file id can be imported once. The URL expires at expires_at. For a PDF at a public URL, use save_library_sources with pdfUrls instead.

stop_agent_session

ChatGPT
Safely stop an owned Research Agent session, even when quota is exhausted. Repeated stop requests are safe. stopping means the stop was queued, not yet complete: poll events for session_stopped. Already stopped or failed sessions return their current state. Shared read access does not grant permission to stop.

create_report

Claude

get_report

Claude

list_reports

Claude

search_papers

Claude

search_trials

Claude

Capabilities

Writes

App Stats

43

Tools

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily