WikiPeatia MCP Server
Click on "Deploy 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., "@WikiPeatia MCP Server Search the corpus for Ray Peat's views on thyroid function"
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.
WikiPeatia MCP Server
An MCP server that gives AI assistants access to WikiPeatia -- a community wiki and full-text corpus of Ray Peat's work on bioenergetic health -- plus Ray Peat's original articles on raypeat.com.
32 tools · no API keys · read-only · works with any MCP client (Claude Desktop, Claude Code, Cursor, Windsurf, Hermes, ...).
The server itself is a single Python file: server.py (FastMCP over stdio, ~1,000 lines). Everything else in this repo is documentation, packaging and tests.
What it gives your assistant
Search the entire Ray Peat corpus (~7,000 documents / ~220,000 text chunks): articles, books, interviews (audio transcripts), newsletters, forum posts, email Q&A and wiki pages.
Hybrid retrieval: full-text search, semantic (embedding) search, and LLM-powered Q&A -- a quick grounded answer mode plus a deep multi-source synthesis mode with citations.
Read & explore the WikiPeatia wiki: pages, sections, categories, the Library namespace (Ray Peat's books / newsletters), backlinks, recent changes, random pages.
Read Ray Peat's original articles from raypeat.com.
Related MCP server: knowledgehub
Quick start
Option A -- run with uvx (no install)
uvx --from git+https://github.com/BerkayCelk/wikipeatia-mcp wikipeatia-mcp(uv will fetch and run the server; it speaks MCP over stdio.)
Option B -- clone and run
git clone https://github.com/BerkayCelk/wikipeatia-mcp
cd wikipeatia-mcp
pip install -r requirements.txt
python server.pyClient setup
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"wikipeatia": {
"command": "uvx",
"args": ["--from", "git+https://github.com/BerkayCelk/wikipeatia-mcp", "wikipeatia-mcp"]
}
}
}Claude Code:
claude mcp add wikipeatia -- uvx --from git+https://github.com/BerkayCelk/wikipeatia-mcp wikipeatia-mcpCursor (~/.cursor/mcp.json) and Windsurf: same JSON shape as Claude Desktop.
Hermes: add to your config.yaml under mcp_servers (see examples/hermes_config.yaml).
Ready-made config files live in examples/.
For AI agents (automated setup)
Written so an AI coding agent (Claude Code, Codex, Cursor, Hermes, ...) can install and verify this server on its own.
1. Install command (no clone needed):
uvx --from git+https://github.com/BerkayCelk/wikipeatia-mcp wikipeatia-mcp2. Register with a client:
Claude Code:
claude mcp add wikipeatia -- uvx --from git+https://github.com/BerkayCelk/wikipeatia-mcp wikipeatia-mcpClaude Desktop -- merge into
claude_desktop_config.json(~/Library/Application Support/Claude/on macOS,%APPDATA%\Claude\on Windows,~/.config/Claude/on Linux):{"mcpServers": {"wikipeatia": {"command": "uvx", "args": ["--from", "git+https://github.com/BerkayCelk/wikipeatia-mcp", "wikipeatia-mcp"]}}}Cursor -- same JSON in
~/.cursor/mcp.json(project scope:.cursor/mcp.json).Hermes -- see
examples/hermes_config.yaml.Any other MCP client -- register this stdio command:
uvx --from git+https://github.com/BerkayCelk/wikipeatia-mcp wikipeatia-mcp
3. Verify (no client needed):
printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}' | uvx --from git+https://github.com/BerkayCelk/wikipeatia-mcp wikipeatia-mcp | head -c 400Expect JSON containing "serverInfo":{"name":"wikipeatia".
4. Usage notes for agents:
Research questions ->
corpus_search/corpus_semantic_search(hybrid search over the full corpus).Quick answer ->
corpus_ask; deep multi-source synthesis (30-120 s) ->corpus_deep_ask.Scope a search with
doc_type,author,series;ray_only=falseincludes all authors (Georgi Dinkov, Danny Roddy, ...).Read-only, no API keys; avoid tight request loops (the upstream API rate-limits bursts).
5. Copy-paste prompt for users:
Set up the WikiPeatia MCP server for me: register
uvx --from git+https://github.com/BerkayCelk/wikipeatia-mcp wikipeatia-mcpas a stdio MCP server namedwikipeatiain my client config, restart/reload the client, then verify by calling thecorpus_healthtool.
Tools (32)
Wiki (17)
Tool | Description |
| Search wiki pages (title/content) |
| Raw page content (wikitext or HTML) |
| First-paragraph summary |
| Read a page as plain text (whole page or one section) |
| Title autocomplete |
| All categories |
| Pages in a category |
| All pages, optional prefix filter |
| Library namespace (books/newsletters) |
| Categories of a page |
| Outgoing links |
| Pages linking here |
| Section headings (ToC) |
| Page metadata |
| Random page(s) |
| Recent edits |
| Wiki statistics |
Corpus (12)
Tool | Description |
| Full-text search (filters: |
| Semantic/embedding search + glossary terms (same filters) |
| Quick LLM answer (~2-10 s) |
| Deep LLM synthesis with [S1][S2] citations (~30-120 s) |
| Autocomplete (terms + doc_ids) |
| Full document content (chunks; speaker/timestamps for interviews) |
| Document types + counts |
| Authors + counts |
| Series/collections |
| Browse library metadata (filter by series) |
| Topic tags |
| Corpus status (docs, chunks, semantic online?) |
Ray Peat articles (3)
Tool | Description |
| List all raypeat.com articles |
| Read one article (full text) |
| Search article titles |
Example prompts
"Search the corpus for what Ray Peat wrote about PUFA and insulin resistance." →
corpus_search(query="PUFA insulin resistance", limit=10)"Only interviews from the Ask the Herb Doctor series." →
corpus_search(query="thyroid", series="Ask the Herb Doctor", doc_type="interview")"What has Georgi Dinkov said about serotonin?" (non-Peat author) →
corpus_search(query="serotonin", author="Georgi Dinkov (Haidut)", ray_only=false)"Explain the Randle cycle in Ray Peat's framework." (deep synthesis) →
corpus_deep_ask(question="Explain the Randle cycle...")"Open the Thyroid entry in the Library namespace." →
wiki_read(title="Library:Thyroid")
Environment variables
Variable | Default | Meaning |
|
| HTTP timeout (seconds) for regular calls |
|
| HTTP timeout for semantic / ask endpoints |
Notes
No API keys, read-only. The server calls public endpoints of
wikipeatia.organdsearch.wikipeatia.org; be considerate (avoid tight loops -- the upstream API rate-limits bursts).corpus_deep_askcan take 30-120 s. Prefercorpus_askwhen you just need a fast answer.The corpus includes third-party authors (Georgi Dinkov, Danny Roddy, forum members, ...). Use
ray_only/author/seriesfilters to scope a search.This is an unofficial community project, not affiliated with WikiPeatia or raypeat.com. Content rights belong to the respective sources.
Development
uv run --with fastmcp --with httpx python smoke_test.pyThe smoke test spawns the server over stdio and exercises a handful of live calls.
License
MIT -- see LICENSE.
Credits
WikiPeatia -- wiki + corpus
raypeat.com -- Ray Peat's original articles
Built with FastMCP
Available Tools
32 toolscorpus_askCorpus AskA
Quick LLM-grounded answer over the corpus (fast, roughly 2-10 s).
Returns a short synthesized answer with a confidence value and the cited chunks. For deep multi-source research with [S1][S2] citations, use corpus_deep_ask instead.
Inputs: question (required). Returns: object
corpus_deep_askCorpus Deep AskA
Deep, LLM-assisted question answering over the entire corpus.
Synthesizes across all ~220K chunks; the answer carries [S1], [S2]... source markers. Open the underlying documents with corpus_get_doc(doc_id).
Note: this endpoint is slow (30-120 s). Ask one question at a time.
Inputs: question (required). Returns: object
corpus_get_docCorpus Get DocA
Fetch a document's full content (chunk by chunk).
Interview chunks carry speaker and timestamp_start fields; use audio_url / source_url to reach the audio source.
Inputs: doc_id (required), max_chars_per_chunk. Returns: object
corpus_healthCorpus HealthA
Status and stats of the corpus search infrastructure.
Returns: mode (hybrid), semantic_live (embedding search online), chunk_count, doc_count
Inputs: no named parameters. Returns: object
corpus_libraryCorpus LibraryA
Browse the corpus library (metadata list). For content use corpus_get_doc.
Inputs: limit, series, extended. Returns: object
corpus_list_authorsCorpus List AuthorsC
Authors in the corpus and their document counts.
Inputs: extended_only. Returns: object
corpus_list_doc_typesCorpus List Doc TypesA
Document types and counts in the corpus (article, book, interview, ...).
Usable as the doc_type filter in corpus_search.
Inputs: no named parameters. Returns: object
corpus_list_seriesCorpus List SeriesA
Series / collections in the corpus (e.g. 'One Radio Network', 'Ray Peat Newsletter', 'Ask the Herb Doctor').
Matches the 'series' field in corpus_search results; usable as a filter.
Inputs: no named parameters. Returns: object
corpus_searchCorpus SearchA
Full-text search across the entire Ray Peat corpus.
Covers articles, books (Library), interviews (audio transcripts), newsletters, forum posts, email Q&A and wiki pages. Results include excerpt, doc_id, doc_type, author, series, source_url, audio_url and timestamps (for interviews).
Inputs: query (required), limit, author, series, +3 more. Returns: object
corpus_semantic_searchCorpus Semantic SearchB
Semantic (embedding) search over the corpus.
Finds passages close in meaning even without exact keyword matches; also returns glossary_terms (synonyms/concepts found for the query).
Inputs: query (required), limit, author, series, +3 more. Returns: object
corpus_suggestCorpus SuggestB
Corpus autocomplete: term and document (doc_id) suggestions.
Inputs: query (required). Returns: object
corpus_topicsCorpus TopicsA
List the corpus's topic tags (e.g. 'thyroid', 'pufa', 'cortisol').
Useful to see what themes the corpus is organized around.
Inputs: no named parameters. Returns: object
raypeat_list_articlesRaypeat List ArticlesA
List all of Ray Peat's articles on raypeat.com.
Returns: Article list with titles and URLs.
Inputs: no named parameters. Returns: object
raypeat_read_articleRaypeat Read ArticleC
Read one of Ray Peat's articles as full text.
Inputs: path (required). Returns: object
raypeat_search_articlesRaypeat Search ArticlesB
Keyword search across Ray Peat article titles.
Inputs: query (required). Returns: object
wiki_get_backlinksWiki Get BacklinksB
Which pages link to this page? (reverse link map)
Inputs: title (required), limit. Returns: object
wiki_get_category_membersWiki Get Category MembersC
List all pages in a category.
Inputs: category (required), limit. Returns: object
wiki_get_pageWiki Get PageC
Get the raw content of a wiki page.
Inputs: title (required), format. Returns: object
wiki_get_page_categoriesWiki Get Page CategoriesB
Show which categories a page belongs to.
Inputs: title (required). Returns: object
wiki_get_page_infoWiki Get Page InfoC
Page metadata: last edit, length, last revision id, URLs.
Inputs: title (required). Returns: object
wiki_get_page_linksWiki Get Page LinksB
List the wiki links contained in a page (related-topic discovery).
Inputs: title (required), limit. Returns: object
wiki_get_page_sectionsWiki Get Page SectionsB
List a page's section headings (table of contents).
Inputs: title (required). Returns: object
wiki_get_page_summaryWiki Get Page SummaryA
Get the first paragraph (intro extract) of a wiki page. Fast overview.
Inputs: title (required). Returns: object
wiki_get_randomWiki Get RandomB
Get random wiki page(s). Great for exploration.
Inputs: count. Returns: object
wiki_get_recent_changesWiki Get Recent ChangesB
List recent edits on the wiki.
Inputs: limit. Returns: object
wiki_get_site_statsWiki Get Site StatsB
Wiki statistics: pages, edits, users, files.
Inputs: no named parameters. Returns: object
wiki_list_all_pagesWiki List All PagesB
List all wiki pages alphabetically, optionally filtered by prefix.
Inputs: limit, prefix. Returns: object
wiki_list_categoriesWiki List CategoriesC
List all categories on the wiki.
Inputs: limit. Returns: object
wiki_list_libraryWiki List LibraryA
List all pages in the Library namespace ('Library:').
Ray Peat's books / newsletters / canonical texts live here. Read one with wiki_read('Library:01 Radiation And Growth', ...).
Inputs: limit. Returns: object
wiki_readWiki ReadC
Read a wiki page as plain text. With a section number, only that section.
Inputs: title (required), section. Returns: object
wiki_searchWiki SearchA
Search wiki pages by title or content (MediaWiki search).
Note: this is the wiki's built-in search; multi-word queries may return zero hits. For the full corpus (interviews, books, ...) use corpus_search.
Inputs: query (required), limit. Returns: object
wiki_suggestWiki SuggestC
Autocomplete wiki page titles while typing.
Inputs: query (required). Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 32 tools
Tools are mostly separable by prefix and resource, and descriptions explicitly distinguish similar ones (wiki_search vs corpus_search, corpus_ask vs corpus_deep_ask). However, there is still notable overlap among search/retrieval tools across wiki, corpus, and raypeat, which could cause occasional misselection.
All names use snake_case with consistent domain prefixes (wiki_, corpus_, raypeat_), and most follow prefix_verb_noun. Minor deviations like wiki_read and noun-only corpus_health/corpus_library are readable and do not break predictability.
32 tools is heavy for a single MCP server, even across three related domains; many retrieval/search variants could be consolidated or more clearly grouped. The count exceeds the recommended 15-tool range and increases selection burden.
The surface covers search, retrieval, metadata, discovery, QA, article listing, and corpus stats extensively, leaving few obvious retrieval gaps. It is read-oriented, so missing write/edit operations are acceptable for the apparent research purpose.
Maintenance
Related MCP Connectors
Search your knowledge bases from any AI assistant using hybrid RAG.
Podcast knowledge for AI agents: search episodes, pull transcripts and ask questions.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
SEC filings, Wikipedia, arXiv, US Census and more for AI agents, with every answer source-linked.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides AI assistants with semantic search and read access to local files and directories, enabling knowledge retrieval from indexed content.36 npm17MIT
- FlicenseAqualityDmaintenanceEnables AI assistants to search, read, and retrieve context from local knowledge bases with full-text search, absolute paths, and section-level details.4-

Hormonaly MCP Serverofficial
FlicenseNot gradedqualityDmaintenanceEnables AI agents to access 24 clinical tools for evidence synthesis, protocol lookup, and decision support in peptide, hormone, and longevity medicine.2-- AlicenseNot gradedqualityBmaintenanceEnables AI clients to search a personal corpus, read relevant source passages, and answer questions with traceable evidence from imported sessions, notes, and articles.1MIT