mcp-my-site

io.github.pournasserian由 GitHub 帳號 pournasserian 發布v0.4.0更新於 Oct 29, 2026

Search and fetch tools for one website, served from an index you build with the mcpmysite crawler.

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

概覽

AI 產生的概覽

為單一網站提供可搜尋索引,讓助理檢索其頁面並以 Markdown 取得整頁內容。

可以做什麼
  • 以問題或關鍵字搜尋已建立索引的網站,回傳相符頁面及其網址與摘要
  • 依 id 或網址取得單一頁面,回傳含標題、描述、語言與最後修改日期的完整 Markdown 內容
  • 以唯讀方式存取網站已發布頁面的快照,伺服器指示由網站自身內容產生
適用情境
適合需要讓回答立基於某個特定網站而非一般知識的情境,例如個人網站、文件站或不超過約 1000 頁的小型網站。託管實例僅涵蓋 pournasserian.com;其他網站需以爬蟲自行建立索引。
執行需求
可連線託管端點,也可自行執行:需要 .NET 10 SDK 安裝 mcpmysite 命令列工具並建立索引,或使用 Docker 映像並掛載索引資料夾、設定 Index__Path。混合語意搜尋另需相容 OpenAI 的嵌入服務與 AI_API_KEY;僅關鍵字索引不需金鑰。
安裝前請注意
索引是快照,之後網站的變更不會被涵蓋。混合搜尋會把頁面文字送往嵌入服務供應商(預設 OpenRouter)並需要 AI_API_KEY,小型網站費用僅為幾分錢的一小部分。工具本身為唯讀,但伺服器另提供公開搜尋 API 與選用遙測,查詢文字預設不記錄。

安裝

在 SourceWeft 中

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

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

交給代理程式安裝

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

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

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

其他 MCP 客戶端

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

{
  "mcpServers": {
    "my-site": {
      "type": "http",
      "url": "https://ai.pournasserian.com/mcp"
    }
  }
}

README

mcp-my-site

[CI] [License: MIT] [.NET 10]

Point it at your website and ChatGPT, Claude and any other MCP client can search and read it.

A command-line indexer crawls the site and builds a hybrid keyword and vector index. A small ASP.NET Core app serves that index as an MCP server with search and fetch tools, and as a JSON search API for the site's own search box. One site per server, built for sites under 1,000 pages.

Try it now

A live instance indexes pournasserian.com:

MCP endpointhttps://ai.pournasserian.com/mcp
Search APIhttps://ai.pournasserian.com/api/search?q=mcp%20caching
API referencehttps://ai.pournasserian.com/docs
bash
claude mcp add --transport http pournasserian https://ai.pournasserian.com/mcp

Then ask Claude Code something about the site. For ChatGPT, add the endpoint as a connector; the tools follow the search and fetch contract its connectors expect.

Quick start

You need the .NET 10 SDK. Nothing else: the first index is keyword-only, so no API key is involved.

bash
dotnet tool install --global mcpmysitemcpmysite init https://example.com --keyword-only   # writes appsettings.jsonmcpmysite build                                     # crawls the site into ./indexmcpmysite search "how can I contact you"            # checks the indexdocker run --rm -p 5000:8080 -v "$PWD/index:/index:ro" -e Index__Path=/index ghcr.io/pournasserian/mcp-my-site:latest

Without Docker, clone the repository and run the server from source with Index__Path=index dotnet run --project src/McpMySite.Server from the clone, or publish it (user guide). The indexer also runs from a clone as dotnet run --project src/McpMySite.Indexer -- ..., which is how to try unreleased changes.

The server is now at http://localhost:5000: /mcp for agents, /api/search?q=contact for JSON, /healthz for the loaded index. The landing page at / shows how to connect each client and how to test the server with the MCP Inspector.

bash
claude mcp add --transport http mysite http://localhost:5000/mcp

Upgrade to hybrid search. Keyword search matches words; hybrid search also matches meaning, and is what the live instance runs. It needs an API key for an OpenAI-compatible embeddings endpoint, OpenRouter by default or another provider; the key is read from AI_API_KEY and never written to a file. A small site embeds for a fraction of a cent.

bash
export AI_API_KEY=sk-...# in appsettings.json, under Embeddings, change "Enabled": false to true, then rebuild and servemcpmysite builddocker run --rm -p 5000:8080 -v "$PWD/index:/index:ro" -e Index__Path=/index -e AI_API_KEY ghcr.io/pournasserian/mcp-my-site:latest

Windows PowerShell and cmd, Docker without .NET on the host, and other MCP clients (VS Code, Cursor, Claude Desktop) are in the user guide.

Features

  • Hybrid search. BM25 keyword search and vector search over embeddings, fused per query, with a keyword-only fallback when the embedding provider is unavailable.
  • Works without a key. A keyword-only index needs no embeddings provider at all; switch to hybrid search later with one setting and a rebuild.
  • ChatGPT and Claude ready. Streamable HTTP MCP endpoint with search and fetch tools in the shape ChatGPT connectors use, and server instructions generated from the site itself. Works with Claude Code, Claude Desktop, VS Code, Cursor and the MCP Inspector.
  • Discoverable. /mcp/server-card serves the MCP server card (SEP-2127) with the endpoint, the protocol versions and whether a key is needed, and /llms.txt lists the indexed pages for language models.
  • Listable in directories. Set Maintainers and the server serves /.well-known/mcpbundles.json and /.well-known/security.txt so a directory such as MCP Bundles can verify a maintainer before publishing (user guide).
  • Search API for your own site. GET /api/search with CORS, rate limiting, offset paging, an OpenAPI 3.1 document and an interactive reference. Drop-in snippet for a search box in the user guide.
  • Docker image. docker pull ghcr.io/pournasserian/mcp-my-site:latest; mount the index or point it at a URL.
  • Hot swap. The server polls the index source and swaps in a new build without a restart.
  • Telemetry. OpenTelemetry traces, metrics and logs to Application Insights or any OTLP collector. Query text is not logged unless you turn it on.
  • Any embeddings provider. OpenRouter by default; any OpenAI-compatible endpoint works.

Documentation

Repository

PathWhat
src/McpMySite.CoreIndex model and manifest, JSON and SQLite stores, hybrid search, embedding client
src/McpMySite.IndexerThe mcpmysite CLI: crawl, extract, chunk, embed, write
src/McpMySite.ServerASP.NET Core app: MCP endpoint, search API, index loading, telemetry
tests/McpMySite.TestsUnit and integration tests
bash
dotnet builddotnet test

Questions and ideas go to Discussions; bugs to Issues. Changes land on master through pull requests only. MIT licence.

來源:README.md,提交 f70c715

工具

2

fetch

Fetch a page

Returns the full content of one page of the website as Markdown in text, with its title, description, language and last modified date. Pass the id (or url) of a search result.

輸入參數idurl

版本歷史

4
  1. v0.4.0最新Oct 29, 2026
  2. v0.3.0Oct 24, 2026
  3. v0.2.2Oct 18, 2026
  4. v0.2.1Oct 17, 2026

評分

已滿足適用檢查項的 100%

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

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