philosophy-mcp
Provides access to philosophy texts including scholarly papers from PhilPapers/PhilArchive and classic books from Project Gutenberg, SEP, and other open-access sources, all without requiring an API key.
README
philosophy-mcp
An MCP server for philosophy texts — both current scholarship and the canon. It folds two things 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, …).
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 |
|---|---|---|
search_papers |
Keyword search (title/abstract/full text), returns metadata + PhilArchive links + PDF URL | OpenAlex, filtered to the PhilPapers Foundation source |
research |
One-shot scan: search and pull each hit's verbatim full abstract + subjects in a single call | OpenAlex + OAI-PMH GetRecord |
get_paper |
Canonical metadata + full abstract for one record id | PhilArchive OAI-PMH GetRecord |
list_recent |
Records added/updated in a date window | PhilArchive OAI-PMH ListRecords |
fetch_pdf |
Download a record's open-access PDF to disk, return the path | philpapers.org/archive/<ID>.pdf |
get_fulltext |
Download the open-access PDF and return its extracted full text | PDF + unpdf text extraction |
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 |
|---|---|---|
search_gutenberg / get_gutenberg_text |
Find and read public-domain classics + out-of-copyright translations | Project Gutenberg (Gutendex, with a gutenberg.org fallback) |
search_internet_archive / get_archive_text |
Find scanned, out-of-print works and read their OCR text | Internet Archive |
search_wikisource / get_wikisource_text |
Find and read primary texts/translations in any language (en, de, ko, …) | Wikisource |
search_openlibrary |
Modern editions & translations as metadata, with read/borrow links | Open Library |
search_doab |
Peer-reviewed, fully open-access academic books (readable in full) | DOAB |
search_sep / get_sep_entry |
Search and read the standard scholarly reference | Stanford Encyclopedia of Philosophy |
fetch_text |
Readable plain text from any URL — the catch-all for sources without a dedicated tool | any site |
All text-returning tools take max_chars (default 15000–18000) and truncate with a note —
raise it to read further into a work.
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.pdf
Then 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-mcp
Or from source:
git clone https://github.com/sea9401/philosophy-mcp
cd philosophy-mcp
npm install # the `prepare` hook builds dist/ automatically
Register 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-mcp
Then /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 |
|---|---|---|
OPENALEX_MAILTO |
mcp@example.com |
Your email — joins OpenAlex's polite pool (recommended). |
PHILPAPERS_DOWNLOAD_DIR |
<tmp>/philpapers-mcp |
Where fetch_pdf saves files. |
Smoke test
node test-client.mjs
Spawns the server over stdio and exercises the PhilPapers tools.
Notes & limits
- The book/reference tools are keyless and read-only. Search tools return compact lists; the
get_*/fetch_texttools return text truncated tomax_chars. - 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.