Ask a general-purpose AI assistant about the literature in your field and it answers from memory. Sometimes that memory is right. Sometimes it invents a plausible paper with a plausible DOI, and you find out during peer review.
Folio's MCP connector closes that gap for your own work. You connect an assistant to your Folio account, and it can search what you have actually saved, quote citations Folio formats for it, check whether a reference is real, and — only if you allow it — save papers and start drafts. Nothing is invented, because nothing is recalled: every answer traces back to a source you put there yourself, or to a record the assistant verified.
It is opt-in, free, and off until you connect something.
The address
Every MCP client takes the same address:
https://www.usefolio.co/api/mcp
Enter it exactly like that — no trailing slash. The assistant will send you to Folio to sign in and approve what it may do. You never paste a key.
Connect Claude (web, desktop, mobile)
- Open Settings → Connectors (on the web, claude.ai/settings/connectors).
- Choose Add custom connector.
- Name it Folio, paste the address above, and click Add.
- Click Connect. Folio opens in your browser: sign in if you are not already, review the permissions, and click Allow.
Folio's tools appear in the connector list. Ask something like "what does my library say about retrieval practice?" and Claude will search rather than guess.
Connect ChatGPT
Custom MCP servers are added in ChatGPT's developer mode.
- Open Settings → Apps & Connectors → Advanced settings and turn on Developer mode.
- Back in Apps & Connectors, choose Create.
- Name it Folio, paste the address above, leave authentication on OAuth, and create it.
- ChatGPT sends you to Folio to sign in and approve the permissions.
Folio provides the search and fetch tools ChatGPT looks for, so it also works in chat search and deep research, alongside the full tool set.
Connect Claude Code
One command:
claude mcp add --transport http folio https://www.usefolio.co/api/mcp
The first time a tool runs, Claude Code opens your browser to sign in to Folio. To use a personal key instead (for a server or a script), see Personal access keys below.
Connect Cursor or VS Code
Open Account → Connect an AI assistant in Folio and click Add to Cursor or Add to VS Code. Both editors open, ask you to confirm the server, then send you to Folio to sign in.
Connect anything else
The endpoint is a standard MCP server over Streamable HTTP with OAuth 2.1, so any compliant client connects the same way: add a remote server at the address above and complete the sign-in. Technically:
- Endpoint:
https://www.usefolio.co/api/mcp(POST, JSON-RPC 2.0) - Protocol revisions: 2026-07-28 (stateless), and 2025-11-25 back to 2024-11-05 (with
initialize) - Authorization: OAuth 2.1 with PKCE (S256). Discovery at
/.well-known/oauth-protected-resource/api/mcpand/.well-known/oauth-authorization-server. Client ID Metadata Documents preferred; Dynamic Client Registration supported. - Scopes:
library:read,library:write,documents:read,surveys:read
What the assistant can do
| Tool | What it does | Permission |
|---|---|---|
search_library | Searches your saved sources by meaning. Returns titles, authors, years, DOIs, open-access status and retraction flags. | Read library |
get_citation | A formatted reference for one source, in APA 7, MLA 9, Chicago 17, IEEE, Harvard or Vancouver, with the DOI and any retraction notice. | Read library |
get_source | Full details of one source: abstract, your notes and tags, collections, reading status, and (on request) the stored full text. | Read library |
list_recent_sources | Your newest saves, optionally filtered by tag or collection. | Read library |
list_collections | Your collections and folders with counts. | Read library |
format_bibliography | A reference list for several sources in one style, or a BibTeX / RIS export. | Read library |
find_passages | Searches inside one source's stored full text and returns the best-matching passages with their position, to cite to the place. | Read library |
verify_quote | Checks that a verbatim quotation appears in a source's stored full text: verified, partial, not found, or no full text. | Read library |
list_highlights | Your own highlights and notes from Folio's PDF reader for a source, with page numbers. | Read library |
radar_feed | What is new across your Radar subscriptions, live from the indexes, deduplicated, with in-library flags. | Read library |
list_agents, list_agent_finds | Your Discovery Agents and the papers each has kept, unseen first. | Read library |
search_academic | Searches OpenAlex, CrossRef, arXiv, Europe PMC, DOAJ and Semantic Scholar for new literature, marking what you already have. | Read library |
verify_reference | Checks that a citation is real — DOI at CrossRef, or title at OpenAlex — and reports retraction status. | Read library |
check_references | Verifies a pasted reference list (up to 25 entries) against CrossRef, OpenAlex and OpenLibrary: verified, retracted, not found, or couldn't check. | Read library |
search, fetch | The pair ChatGPT uses for search and deep research; same data as above. | Read library |
list_documents, get_document, search_documents | Your drafts: list them, read one as plain text, or search across them. | Read drafts |
check_claims | Reads one draft and reports the uncited sentences that make a factual claim, with the library sources that could support each. Changes nothing. | Read drafts |
authorship_summary | Folio's authorship record for a draft: timeline, writing cadence, citations, pastes, AI assists, and the live certificate. | Read drafts |
get_review_report | The published Reviewer Report for a draft, when there is one. | Read drafts |
list_surveys, survey_results | Your Surveyor projects and a per-question summary of complete responses: no identities, no raw answers. | Read survey results |
save_source | Adds a paper to your library from a DOI, a URL, or a title. Resolved from CrossRef when there is a DOI, retraction-checked, and skipped if you already have it. | Save & organise sources |
set_reading_status, tag_source, add_to_collection, add_source_note | Organise a saved source: reading status, tags, a collection (created if needed), and a note marked as the assistant's. | Save & organise sources |
mark_agent_finds_seen, dismiss_find | Tidy a Discovery Agent's finds. Nothing is deleted. | Save & organise sources |
It can never delete anything, and it never writes into your documents: every tool reads what you wrote, adds to your library, or files what is already there, because the writing is yours. It cannot reach anyone else's library: a connection resolves to exactly one account, and a source id belonging to another researcher is indistinguishable from one that does not exist.
The connector also offers four prompts — Map my library on a topic, Find evidence for a claim, Verify and save a paper, and Check a reference list — and exposes your recent sources, collections and drafts as resources in clients that support attaching them.
The results card
In Claude (and any client that supports MCP Apps), search_library and search_academic also render an interactive card right in the conversation: each source with its verification and retraction badges, a Cite button that formats the APA reference on the spot, Open DOI, and — for public-index results — Save to Folio, which resolves the DOI at CrossRef, checks retraction and skips duplicates before it saves. The card follows the host's light and dark themes. Clients without app support get the same results as text.
check_references has a card of its own: each entry with its verdict, the record it matched, Open DOI, and Save to Folio for verified entries.
Keeping an assistant honest
Four of the tools exist so that what an assistant tells you can be checked against something real:
- Reference lists. Paste a bibliography, yours or one the assistant produced, and
check_referenceslooks each entry up. Verified means a matching record exists; retracted means it exists and has been withdrawn; not found means an entry that reads like a journal article has no record at CrossRef or OpenAlex, which is a reason to check it by hand, not proof that it was invented; couldn't check covers books without an OpenLibrary record, websites, and momentary lookup failures. Folio never calls a reference fabricated because an index missed it. - Quotations.
verify_quotematches the exact wording against the source's stored full text, forgiving hyphenation, quote marks and extraction noise but not a changed word. - Passages.
find_passagesreturns the parts of a source that match a claim, so a citation can point to the place rather than the paper. - Uncited claims.
check_claimsreads a draft you allow it to see and lists the sentences that assert something without a citation, with the sources in your library that appear to support each and why. It uses the same checker as the editor and counts against the same daily allowance. It never edits the draft.
Permissions
When you connect an app, Folio shows exactly what it is asking for:
- Search and cite your library — always included.
- Save and organise sources — saving, tags, collections, reading status, notes, and tidying agent finds. It can never delete a source. Untick it for a read-only connection.
- Read your drafts — text, authorship record and reviewer reports. Untick it if the assistant has no business with your documents. There is no permission to write into them, by design.
- Read your survey results — Surveyor projects and per-question summaries; never participant identities or raw answers.
Each connected app shows up under Account → Connect an AI assistant → Connected apps, with what it may do and when it last used Folio. Disconnect cuts its access immediately; your other apps keep working.
Personal access keys
For a client or script that takes a bearer header instead of signing in, create a key under Account → Connect an AI assistant → Personal access keys. A key carries every permission and never expires until you revoke it, so treat it like a password. It is shown once; Folio stores only a hash.
Send it as Authorization: Bearer folio_mcp_…. For Claude Desktop's config file — which only launches local servers — the key panel shows a ready-to-paste config that goes through the mcp-remote bridge. For Claude Code:
claude mcp add --transport http folio https://www.usefolio.co/api/mcp --header "Authorization: Bearer folio_mcp_your_key_here"
To check a key from a terminal:
curl -s https://www.usefolio.co/api/mcp \
-H "Authorization: Bearer folio_mcp_your_key_here" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
A valid key lists the tools. An invalid or revoked one returns 401.
Limits and honesty notes
- Library searches are metered under the same allowance as semantic search inside Folio; academic searches and reference checks under the same allowance as Folio Search. An assistant stuck in a loop is throttled, not billed to you.
get_citationreturns what Folio holds. If a source's metadata is thin, the reference will be thin — the connector does not fill gaps with guesses.- Retraction status is passed through on every result, and
verify_referencechecks CrossRef's retraction record live. - The connector works today as a custom connector in Claude and ChatGPT. It is not yet listed in either directory; that is the next step, over the same sign-in flow.