philosophy-mcp
The philosophy-mcp server provides keyless access to a vast collection of philosophy texts, enabling you to search, read, and extract information from academic papers, classic books, reference works, and local documents.
Philosophy Scholarship (PhilPapers / PhilArchive)
search_papers— Keyword search across PhilPapers/PhilArchive, returning metadata, abstracts, and open-access PDF links.research— One-shot topic scan: search and fetch full abstracts + subjects for each hit in a single call.get_paper— Fetch canonical metadata and full abstract for a single PhilArchive record by ID or URL.list_recent— List recently added/updated PhilArchive records within a specified date window.fetch_pdf— Download an open-access PDF from PhilArchive to disk and return the local file path.get_fulltext— Download a PhilArchive PDF and return its extracted full text directly.
Books, Classics & Reference
search_gutenberg/get_gutenberg_text— Search and read public-domain philosophy classics from Project Gutenberg.search_internet_archive/get_archive_text— Search and read OCR text of scanned, out-of-print works from the Internet Archive.search_wikisource/get_wikisource_text— Search and read primary texts and translations from Wikisource in multiple languages.search_openlibrary— Search Open Library for modern editions and translations, with read/borrow links.search_doab— Search the Directory of Open Access Books for peer-reviewed, open-access academic philosophy monographs.search_sep/get_sep_entry— Search the Stanford Encyclopedia of Philosophy and read full entries.fetch_text— Fetch readable plain text from any URL as a catch-all tool.
Local Documents
local_doc_info— Get an overview (pages, character count, token estimate, outline) of a large local PDF or text file.local_doc_search— Search a local document by keyword or regex, returning matching snippets with page numbers.local_doc_read— Read a bounded page range/chunk of a local document with pagination support.
General
All text-returning tools support paginated reading via
max_charsandoffsetfor incrementally handling long works.No API key required — all tools use keyless public endpoints.
Responses are cached to avoid re-downloading or re-parsing on subsequent reads.
Search for scanned, out-of-print works and retrieve their OCR text from the Internet Archive.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@philosophy-mcpSearch for recent papers on philosophy of mind"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
philosophy-mcp
An MCP server for philosophy texts — both current scholarship and the canon. It folds these into one keyless server:
PhilPapers / PhilArchive — the philosophy preprint archive (the field's closest analog to arXiv): search papers, read abstracts, browse recent submissions, pull full text.
Books, classics & reference — public-domain originals and translations (Project Gutenberg, Internet Archive, Wikisource), open-access academic books (DOAB), modern editions (Open Library), and the Stanford Encyclopedia of Philosophy — plus a generic
fetch_textfor any other source (Zeno.org, marxists.org, Standard Ebooks, …).Local documents — open a large local PDF or text file and work it without loading the whole thing into context: outline, in-file search, and paged reading.
No API key required. Everything runs against keyless public endpoints.
Renamed and expanded from philpapers-mcp (which covered only the PhilPapers tools). The
philpapers-mcpbinary name still works as an alias.
Tools
Philosophy scholarship (PhilPapers / PhilArchive)
Tool | What it does | Backend |
| Keyword search (title/abstract/full text), returns metadata + PhilArchive links + PDF URL | OpenAlex, filtered to the PhilPapers Foundation source |
| One-shot scan: search and pull each hit's verbatim full abstract + subjects in a single call | OpenAlex + OAI-PMH |
| Canonical metadata + full abstract for one record id | PhilArchive OAI-PMH |
| Records added/updated in a date window | PhilArchive OAI-PMH |
| Download a record's open-access PDF to disk, return the path |
|
| Download the open-access PDF and return its extracted full text | PDF + |
PhilArchive is the open-access archive built on the PhilPapers database, so a record id
such as BROTNO-9 resolves on both philarchive.org and philpapers.org.
Books, classics & reference
Tool | What it does | Source |
| Find and read public-domain classics + out-of-copyright translations | Project Gutenberg (Gutendex, with a gutenberg.org fallback) |
| Find scanned, out-of-print works and read their OCR text | Internet Archive |
| Find and read primary texts/translations in any language (en, de, ko, …) | Wikisource |
| Modern editions & translations as metadata, with read/borrow links | Open Library |
| Peer-reviewed, fully open-access academic books (readable in full) | DOAB |
| Search and read the standard scholarly reference | Stanford Encyclopedia of Philosophy |
| Readable plain text from any URL — the catch-all for sources without a dedicated tool | any site |
All text-returning tools (get_fulltext, the get_*_text readers, get_sep_entry,
fetch_text) return one window — max_chars characters (default 15000) starting at
offset (default 0). When the body is longer, the footer reports the next offset to
continue from, so you page through a long work a window at a time instead of dumping it whole
(and re-dumping from the start to read further). Each fetched/extracted body is cached, so
paging doesn't re-download or re-parse the source.
Local documents
Tool | What it does |
| Overview of a local PDF/text file — pages, characters, ~tokens, and a heuristic outline — without loading the whole file |
| Find passages by keyword/regex and return just the matching snippets with page numbers |
| Read a bounded page range / chunk, capped at |
These read a large local file the way you'd skim a thick book — get an outline, jump to the
relevant pages by searching, then read a chunk at a time — so only the parts that matter reach
the context. Only files under $HOME are readable by default; add more roots via
PHILOSOPHY_DOC_ROOTS.
Example
search_papers with { "query": "phenomenal consciousness higher-order", "open_access_only": true, "limit": 2 }:
Found 1,806 match(es) in PhilPapers/PhilArchive; showing 2 (open-access only).
1. The HOROR theory of phenomenal consciousness (2014)
id: BROTNO-9
authors: Richard Brown
philarchive: https://philarchive.org/rec/BROTNO-9
pdf: https://philpapers.org/archive/BROTNO-9.pdfThen get_fulltext with { "id": "BROTNO-9" } returns the paper's extracted full text.
For the canon: search_gutenberg with { "query": "kant critique", "languages": "en" } returns book
ids, and get_gutenberg_text with { "book_id": 4280 } reads The Critique of Pure Reason directly;
search_sep → get_sep_entry reads an encyclopedia entry; fetch_text pulls readable text from
German originals on Zeno.org or translations on marxists.org.
20th-century authors still in copyright (Heidegger, Adorno, Gadamer, Habermas) won't have free full texts here — you'll get metadata, SEP coverage, and read/borrow links.
Setup
Run straight with npx (no clone, once published):
npx -y philosophy-mcpOr from source:
git clone https://github.com/sea9401/philosophy-mcp
cd philosophy-mcp
npm install # the `prepare` hook builds dist/ automaticallyRegister with Claude Code
# via npx (no clone)
claude mcp add philosophy -- npx -y philosophy-mcp
# from a local build
claude mcp add philosophy -- node /absolute/path/to/dist/index.js
# optional: identify yourself to OpenAlex's "polite pool" for better rate limits
claude mcp add philosophy -e OPENALEX_MAILTO=you@example.com -- npx -y philosophy-mcpThen /mcp inside Claude Code lists philosophy with its tools.
Register with Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"philosophy": {
"command": "node",
"args": ["/home/sea9401/philpapers-mcp/dist/index.js"],
"env": { "OPENALEX_MAILTO": "you@example.com" }
}
}
}Environment variables
Var | Default | Purpose |
|
| Your email — joins OpenAlex's polite pool (recommended). |
|
| Where |
|
| Extra roots the |
Smoke test
npm test # builds, then runs smoke-test.mjssmoke-test.mjs spawns the server over stdio, performs the MCP handshake, and verifies every
expected tool is registered — no network calls, so it's the regression guard CI runs. (The
older node test-client.mjs additionally exercises a couple of live PhilPapers calls.)
Notes & limits
The book/reference tools are keyless and read-only. Search tools return compact lists; the
get_*/fetch_texttools return onemax_charswindow fromoffsetand report the nextoffsetto continue — page through long works instead of pulling them whole.Gutendex (the Project Gutenberg API host) is frequently overloaded;
search_gutenbergprobes it briefly and falls back to gutenberg.org's OPDS feed.get_gutenberg_textreads the text directly from gutenberg.org, so it works even when Gutendex is down.SEP has no keyword API (its on-site search is JavaScript-driven), so
search_sepmatches against the published entry index (contents.html) — i.e. title/topic matching.list_recentfilters on the OAI datestamp, returns only the first OAI page, and not every record has an open-access PDF —get_paperreports availability;fetch_pdffails clearly.
Publishing (maintainers)
CI (.github/workflows/ci.yml) builds on Node 18/20/22 for every push and PR.
To publish a new version to npm:
Add a repo secret
NPM_TOKEN(an npm Automation access token) under Settings → Secrets and variables → Actions.Bump the version and tag:
npm version patch && git push --follow-tags.Cut a GitHub Release —
.github/workflows/publish.ymlrunsnpm publishautomatically.
Or publish manually: npm login then npm publish --access public.
License
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sea9401/philosophy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server