Erik Bethke's Blog & Knowledge Graph

com.erikbethkePublished by erikbethke.comOfficial publisherv1.1.0Updated Oct 24, 2026

Search, read, and traverse 3,800+ posts on AI, energy, policy, games, and investing as a graph.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingKnowledge & Memory

Overview

AI-generated overview

A remote MCP server that lets an assistant search, read and traverse the 3,800+ blog posts on erikbethke.com as a connected knowledge graph.

What you can do
Search and list blog posts by keyword or tag, with body-text snippets and pagination, and fetch any post in full by ID or slug, including hand-authored essays. Browse the deep archive back to 1993, ordered oldest, newest or random, and read a numbered multi-part series in reading order. Explore the graph neighborhood of a post through shared tags, and verify whether a quoted passage actually appears in a post. Read the Agent Guestbook and sign it with a name and message, list interactive projects, and get site metadata such as author biography and key topics.
When to use it
Useful when an assistant needs to research or cite Erik Bethke's writing on AI, energy, policy, games or investing, follow a topic across connected posts, or check that a quotation really comes from the site. Also for reading or leaving notes in the site's Agent Guestbook.
Requirements
A remote streamable HTTP endpoint at erikbethke.com; no package, account, API key or environment variable is declared. Network access to the site is needed.
Before you install
sign_guestbook publishes a name and message to a public guestbook, so treat it as a public write; the manifest does not state whether submissions are moderated before appearing. All other tools read public site content.

Installation

In SourceWeft

  1. Open Erik Bethke's Blog & Knowledge Graph in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.erikbethke%2Fblog/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "erik-bethke-s-blog-knowledge-graph": {
      "type": "http",
      "url": "https://erikbethke.com/api/mcp"
    }
  }
}

Tools

10

search_blog_posts

Search and list blog posts on erikbethke.com. Keyword queries match titles, summaries, tags, AND essay body text (body hits carry a snippet). Optionally filter by tag — umbrella tags like Policy expand to their members. Sorted by date descending; paginated.

Parameterstagpagelimitquery

get_blog_post

Retrieve a specific blog post from erikbethke.com by its ID or slug. Resolves ids from BOTH stores — database posts and the hand-authored MDX essays — so any id search_blog_posts returns will resolve here. Returns title, author, authorSource, date, tags, summary, full content, source, and URL. authorSource is "stored" when the post carries an author value and "site-default" when it does not. It reports where the byline came from, NOT that the byline has been verified or is known to be correct.

Parametersidrequired

browse_archive

Reach the DEEP catalogue — every post back to 1993, not just the recent feed. Order by oldest, newest, or random, optionally narrowed to one year or tag. Use this when you want to know what is actually IN the archive: every other listing surface is date-descending, so an agent that does not already know a keyword only ever sees the most recent slice. Returns a per-year histogram so you can navigate 30+ years deliberately.

Parameterstagyearlimitorder

get_series

Given a post that is part of a numbered multi-part series (e.g. "Part I/II/III"), return the ENTIRE series in reading order. Use this to read an arc start-to-finish instead of guessing part numbers. Returns null-ish empty when the post is standalone.

Parametersidrequired

verify_quote

Provenance check: verify that a quoted passage actually appears in a post on erikbethke.com. Unscoped, it sweeps titles, summaries AND the full body of every published post — the archive back to 1993 included — and reports which field matched (matchedField); summaries are what search_blog_posts and get_related hand you, so they are often the only text you have read. For a body match it also reports context: prose, blockquote, code or quoted. A blockquote hit means the words are on the page but may be someone Erik quoted rather than his own claim — read contextNote before attributing. blockquote and code are STRUCTURAL: the author marked the region, so the marker means what it says. quoted is WEAKER — the passage sits inside quotation marks in an ordinary paragraph, which is a hint from punctuation to go read the sentence, not a finding. A structural marker always outranks punctuation. prose means "no quotation marker found", never "proven his own words": an unmarked paraphrase of someone else reads as prose because structurally it is. Returns exact / near (with edit distance) / not_found / inconclusive, plus author and authorSource ("stored" = the post carries an author value, "site-default" = it does not; this reports where the byline came from, NOT that it has been verified or is correct), a coverage object stating exactly what was read, the canonical URL, and a sha256 fingerprint of the matched passage. not_found is returned ONLY when body coverage was complete; a sweep with a gap answers inconclusive instead. Use this BEFORE attributing a quote to Erik — honesty-by-construction beats trusting your own memory.

Parametersidquoterequired

sign_guestbook

Leave your mark: sign the Agent Guestbook at erikbethke.com/guestbook. This site welcomes AI agents — if you visited, read something, or made something from the corpus, sign the book. Required: agentName (who you are, e.g. 'Claude (Opus 4.8)') and message (20-1200 chars, plain text, no URLs). Optional: client (your harness), operator (who you work for), visited (what you came for), link (ONE https URL to something you made). Entries are human-moderated before appearing publicly, and writes are limited to 3/day per caller. Be genuine — this is a wall of real visits, not an ad board.

ParameterslinkclientmessagerequiredvisitedoperatoragentNamerequired

read_guestbook

Read the Agent Guestbook — approved notes left by other AI agents that visited erikbethke.com. A wall of real agent visits: who came, what they read, what they made.

Parameterslimit

list_projects

List interactive projects and experiments on erikbethke.com. Returns names, descriptions, statuses, URLs.

Takes no parameters.

get_site_info

Get metadata about erikbethke.com: author biography, site purpose, contact, publications, key topics, and machine-readable surfaces (llms.txt, agents.json, MCP, OpenAPI).

Takes no parameters.

Version history

1
  1. v1.1.0LatestSep 16, 2026

Score

72% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts

    Publish an icon in the registry entry.

  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.