philosophy-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENALEX_MAILTO | No | Your email — joins OpenAlex's polite pool (recommended). | mcp@example.com |
| PHILPAPERS_DOWNLOAD_DIR | No | Where fetch_pdf saves files. | <tmp>/philpapers-mcp |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_papersA | Keyword search across PhilPapers / PhilArchive (philosophy preprints and published papers indexed by the PhilPapers Foundation), powered by OpenAlex full-text search. Returns title, authors, year, a short abstract, the PhilArchive record id + URL, and an open-access PDF URL when one exists. Use the returned |
| researchA | One-shot literature scan: runs a keyword search across PhilPapers/PhilArchive and, for each hit, fetches the archive's canonical metadata (verbatim full abstract, subjects, language) via OAI-PMH — so you get a ready-to-read digest in a single call instead of search_papers + get_paper per result. Returns fewer results than search_papers by default because it does more work per item. |
| get_paperA | Fetch canonical metadata for one PhilArchive/PhilPapers record via OAI-PMH. Accepts a record id (e.g. 'BROTNO-9'), a philarchive.org/philpapers.org /rec/ URL, or an oai: identifier. Returns title, authors, date, subjects, language, full abstract, the landing-page URL, and whether an open-access PDF is available. |
| list_recentA | List recently added/updated PhilArchive records in a date window, via OAI-PMH (harvesting, not keyword search). Returns the first page of results (~up to |
| fetch_pdfA | Download the open-access PDF of a PhilArchive record and save it locally, returning the file path so it can be read. Accepts a record id or URL. Fails clearly if the paper has no open-access PDF. To get the text directly instead of a file, use get_fulltext. |
| get_fulltextA | Download a PhilArchive record's open-access PDF and extract its full text, returned directly (no file needed). Accepts a record id or URL. Long papers are truncated to |
| search_gutenbergA | Search Project Gutenberg for public-domain classics and out-of-copyright translations (Kant, Hegel, Nietzsche, Schopenhauer, Marx, Fichte, ...). Returns title, author, languages, a Gutenberg page link, and download URLs. Use the numeric id with get_gutenberg_text. |
| get_gutenberg_textA | Fetch the plain-text body of a Project Gutenberg book by numeric id (from search_gutenberg). Truncated to max_chars. |
| search_internet_archiveA | Search the Internet Archive for scanned, out-of-print monographs, journals, and translations. Use the returned identifier with get_archive_text. |
| get_archive_textA | Fetch the OCR full text of an Internet Archive item by identifier (from search_internet_archive). Truncated to max_chars. |
| search_wikisourceB | Search Wikisource for primary texts and translations (en, de, ko, ...). Use get_wikisource_text to read. |
| get_wikisource_textA | Fetch the plain text of a Wikisource page by title (from search_wikisource). Truncated to max_chars. |
| search_openlibraryA | Search Open Library for books — strong for modern editions and translations as metadata, with read/borrow links wherever a scan exists. |
| search_doabA | Search the Directory of Open Access Books — peer-reviewed, fully open-access academic books, including many modern philosophy monographs readable in full. |
| search_sepA | Search SEP (the standard scholarly reference) by matching its full entry index. Read an entry with get_sep_entry. |
| get_sep_entryB | Fetch the text of a SEP entry. Accepts a slug (e.g. 'hegel'), a /entries/.. path, or a full URL. Truncated to max_chars. |
| fetch_textA | Fetch any URL and return its readable text — the catch-all for sources without a dedicated tool: Zeno.org and projekt-gutenberg.org (German originals), marxists.org (German Idealism to Frankfurt School translations), Standard Ebooks, a specific page, etc. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Most tools have distinct purposes, but some overlap exists: fetch_pdf and get_fulltext both retrieve PhilArchive PDFs (file vs text), and fetch_text is a catch-all that could be confused with specific source tools. However, descriptions clarify differences.
Naming conventions are mixed: some use 'get_', some 'fetch_', some 'search_', plus 'list_recent' and 'research'. While readable, the inconsistency in verb choice could cause confusion.
With 17 tools, the count is slightly above the typical well-scoped range, but each tool serves a clear purpose for different text sources and operations. No tool feels redundant.
The tool set covers a wide range of philosophical text sources (PhilArchive, SEP, Gutenberg, Internet Archive, Wikisource, etc.) with search and retrieval capabilities. Minor gaps exist (e.g., no unified multi-source search), but overall coverage is strong for the domain.