Ryan Lindsey

me.ryanlindsey由 ryanlindsey.me 發布官方發布者v1.36.0更新於 Oct 24, 2026

Ryan Lindsey's professional corpus, exposed as MCP tools.

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取知識與記憶

概覽

AI 產生的概覽

一個遠端 MCP 伺服器,提供 Ryan Lindsey 的職涯資料——聯絡方式、履歷、案例研究與文章——供閱讀與語意搜尋。

可以做什麼
取得聯絡方式與工作時區,以及以 JSON Resume 資料、markdown 或簡短文字摘要形式提供的履歷。列出已發佈的案例研究與文章及其中介資料與引用連結。依 slug 取得單篇案例研究或文章的完整 markdown。在文章、案例研究與履歷之間進行語意搜尋,回傳段落、其發佈連結以及是否為精確符合的標記。了解私有存取層級以及如何申請限定範圍的權杖。
適用情境
當希望助理回答關於 Ryan Lindsey 的背景、工作或文章的問題,或引用其已發佈的案例研究與文章而不必爬取網站時適用。
執行需求
遠端 streamable HTTP 端點;未宣告任何套件、環境變數或標頭。公開工具無需身分驗證;私有層級需要申請限定範圍的權杖。
安裝前請注意
私有存取層級涉及申請限定範圍的權杖,請將權杖視為機密。工具呼叫會消耗伺服器上受速率限制的配額。內容是關於個人的已發佈資料,應註明出處而非據為己有。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Ryan Lindsey,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/me.ryanlindsey%2Fryanlindsey-me/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "ryan-lindsey": {
      "type": "http",
      "url": "https://mcp.ryanlindsey.me/mcp"
    }
  }
}

README

ryanlindsey.me

The code behind ryanlindsey.me: an Astro site on the Cloudflare developer platform, plus a second Worker serving a remote MCP server at mcp.ryanlindsey.me. One repository, two deployed Workers, one shared set of D1, KV, R2, Queues and Analytics Engine resources.

The site is built so that a person and an agent read the same corpus through different doors.

Source-visible so you can read how it is built. There is no LICENSE file, and the absence is deliberate rather than an oversight: no license means all rights reserved, so nothing here is licensed for reuse.

Deploys run on Workers Builds from main, and CI has no deploy step. CLAUDE.md carries the working notes, including the commands, the traps worth knowing before editing, and the reasoning behind the parts that look strange.

If you are an agent

Four entrypoints, stable by contract:

EntrypointWhat it is
/llms.txtThe curated index, and the place to start
/.well-known/ard.jsonThe ARD manifest, also served as ai-catalog.json
/.well-known/mcp/server-card.jsonThe server card, served on both origins
https://mcp.ryanlindsey.me/mcpThe protocol endpoint itself

This file does not list the rest, and the omission is the part worth reading. Every endpoint this site advertises lives in one list, ADVERTISED_SURFACE in src/lib/discovery/surface.ts, published as both the API catalog and the ARD manifest and checked by tests/discovery-catalog.test.ts. A table here would be a second copy, living outside the test suite, and it would drift the first time an endpoint moved. Fetch the catalog rather than trusting this file.

One thing is missing from that list on purpose. /fit and everything beneath it are unlisted by requirement, and a catalog is a published list of the paths its author finds interesting, so listing one there would un-list it.

How it fits together

mermaid
flowchart TB  person(["person"])  agent(["agent"])
  subgraph site["site Worker (ryanlindsey.me)"]    S["pages, posts, case studies, résumé<br>markdown variants, llms.txt, feeds<br>well-known catalogs<br>chat page and the form surfaces"]  end
  subgraph mcpw["MCP Worker (mcp.ryanlindsey.me)"]    G{"grant resolved<br>here, and only here"}    T["/mcp, the chat stream,<br>the fit engine"]    R[["rate limiter<br>Durable Object"]]    G --> T    T -->|every tool call spends budget| R  end
  P[("R2_PRIVATE")]
  person --> site  agent --> site  agent --> mcpw  site -->|service binding| mcpw  mcpw -->|reads published documents| site  T -. "private-docs.ts, the only reader" .-> P

The split into two Workers is not cosmetic. An ai binding in the site's config makes astro build open a remote proxy session that credential-free CI cannot authenticate, so inference lives on the second Worker and the site reaches it over a service binding. Each Worker names the other, and the cycle is deliberate and legal, because a service binding resolves when it is called rather than when the Worker is defined.

The drawing is deliberately incomplete. It carries the structure and leaves out the rest: which storage each Worker touches, which models it calls, the queue consumer, the crons. The site publishes its own drawing of the deployed inventory on /ops, over the one description of this architecture the repository keeps, src/lib/architecture.ts. That page also reports what the system has done lately and what it cost, read at request time rather than asserted here.

What this repo guarantees

Four claims, each paired with the file that proves it rather than with an assurance.

ClaimEnforced by
The private tier is a partition rather than a filter. The public document layer's env interface does not name the private bucket at all.tests/tier-private-docs.test.ts, at the type level
An unauthenticated tools/list cannot enumerate a gated tool name, and calling one by name answers unknown-tool rather than a refusal confirming it.tests/mcp-gated.test.ts, "invisibility without a grant"
No test reaches Workers AI, Vectorize, Browser Rendering or a real secret. No deployed config declares the override variables, and an unrecognized value throws.tests/workers.ts sets them in one place, tests/mcp-env.test.ts keeps them out of both deployed configs, and an unrecognized value throws at the call site, as in src/lib/turnstile.ts
The MCP Worker's binding list cannot drift from its wrangler config, in either direction.tests/mcp-env.test.ts

Five minutes in this codebase

Four files, in reading order. They explain the rest.

  1. src/lib/discovery/surface.ts, every endpoint this site advertises, in one list, carrying the reason it is one list and not two.
  2. src/lib/tier/grant.ts, the only place a token is verified. The site Worker holds no copy: it treats the token as an opaque string and asks over the service binding, so the boundary has one implementation rather than two that agree.
  3. tests/workers.ts, why the suite boots real Workers inside workerd, and what it refuses to reach.
  4. src/components/ArchitectureDiagram.astro, for its header rather than its output. That header records that two claims in its own first draft were false, names them, and says what the mistake taught. It is a fair sample of how the rest of this repository is commented.

Releases

release-please watches main and keeps a release pull request open with the next version and its changelog. Merging that pull request tags the release and publishes it.

Pull requests are squash-merged, so the pull request title is the commit subject release-please reads. A title without a recognized type(scope): summary prefix is skipped silently: no version bump, no changelog entry. feat is a minor bump, fix and perf are patches, and type!: or a BREAKING CHANGE: footer is a major. The full set of types lives in release-please-config.json under changelog-sections.

來源:README.md,提交 6b24b76

工具

8

get_contact

Contact details

How to reach Ryan Lindsey, and his working timezone.

無需輸入參數。

get_resume

Résumé

Ryan Lindsey's résumé: JSON Resume data, the published markdown document, or a short prose summary.

輸入參數format

list_case_studies

List case studies

Published case studies with their metadata and citation URLs.

無需輸入參數。

get_case_study

Get a case study

The full markdown of one published case study, by slug.

輸入參數slug必填

list_writing

List writing

Published posts with their descriptions and citation URLs.

無需輸入參數。

get_post

Get a post

The full markdown of one published post, by slug.

輸入參數slug必填

search_writing

Search the writing

Semantic search across the published posts, case studies and résumé. Each result is a passage, the URL it is published at, and an "exact" flag saying whether the excerpt is the passage that matched.

輸入參數limitquery必填

request_private_access

Request private access

Explains the private access tier and how to request a scoped token.

無需輸入參數。

版本歷史

1
  1. v1.36.0最新Sep 22, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。