Content
# SiteMCP
> [!WARNING]
> **This repository is archived.** Please read the notice below before using this project.
## Archival Notice
SiteMCP was created on 8 April 2025, in the very early days of the Model Context Protocol ([original tweet](https://x.com/ryoppippi/status/1909369320078999673), [introduction post, Japanese](https://ryoppippi.com/blog/2025-04-08-zenn-1eb7fbe9042a88-ja)). At the time, MCP was a brand-new concept, and passing documentation to AI assistants via an MCP server was one of the only practical options available. Claude Code was exclusively available under a usage-based plan and had not yet reached wide adoption — and features like skills did not yet exist. (For that reason, all the demos in this repository were recorded with Claude Code Desktop.)
Back then, coding agents were far less capable and LLM-native web search was unreliable at best, so fetching an entire website and serving it through MCP was genuinely useful. SiteMCP was arguably one of the earliest and most practical ways to provide documentation to a local AI assistant.
The landscape has since changed significantly. MCP itself went through a period of rapid growth followed by a correction, and the community converged on simpler, more efficient alternatives for static documentation: publishing docs as downloadable Markdown files, distributing them via npm packages, or falling back to web search as a last resort. In my view, using MCP to serve static documentation has become an anti-pattern — the overhead is simply not worth it. I wrote about this in detail on my blog:
- [Why You Should Publish Docs on npm (English)](https://ryoppippi.com/blog/2025-12-14-publish-docs-on-npm-en)
- [Why You Should Publish Docs on npm (Japanese)](https://ryoppippi.com/blog/2025-12-14-publish-docs-on-npm-ja)
One year after its initial release, I have decided to archive SiteMCP. If you need to provide documentation to an AI assistant, please follow the guidance in my blog posts above and fetch documentation as statically as possible.
---
[](https://npmjs.com/package/sitemcp)
[](https://tanstack.com/stats/npm?packageGroups=%5B%7B%22packages%22:%5B%7B%22name%22:%22sitemcp%22%7D%5D%7D%5D&range=30-days&transform=none&binType=daily&showDataMode=all&height=400)
[](https://deepwiki.com/ryoppippi/sitemcp)
Fetch an entire site and use it as an MCP Server
https://github.com/user-attachments/assets/ebe2d7c6-4ddc-4a37-8e1e-d80fac49d8ae
<details>
<summary><bold>Demo in Japanese</bold></summary>
https://github.com/user-attachments/assets/24288140-be2a-416c-9e7c-c49be056a373
</details>
> [!NOTE]
> `sitemcp` is a fork of [`sitefetch`](https://github.com/egoist/sitefetch) by [@egoist](https://github.com/egoist)
## Install
One-off usage (choose one of the followings):
```bash
bunx sitemcp
npx sitemcp
pnpx sitemcp
```
Install globally (choose one of the followings):
```bash
bun i -g sitemcp
npm i -g sitemcp
pnpm i -g sitemcp
```
## Usage
```bash
sitemcp https://daisyui.com
# or better concurrency
sitemcp https://daisyui.com --concurrency 10
```
### Tool Name Strategy
Use `-t, --tool-name-strategy` to specify the tool name strategy, it will be used as the MCP server name (default: `domain`).
This will be used as the MCP server name.
```bash
sitemcp https://vite.dev -t domain # indexOfVite / getDocumentOfVite
sitemcp https://react-tweet.vercel.app/ -t subdomain # indexOfReactTweet / getDocumentOfReactTweet
sitemcp https://ryoppippi.github.io/vite-plugin-favicons/ -t pathname # indexOfVitePluginFavicons / getDocumentOfVitePluginFavicons
```
### Max Length of Content
Use `-l, --max-length` to specify the max length of content, default is `2000` characters.
This is useful for sites with long content, such as blogs or documentation.
The acceptable content length depends on the MCP client you are using, so please check the documentation of your MCP client for more details.
Also welcome to open an issue if you have any questions.
```bash
sitemcp https://vite.dev -l 10000
```
### Match specific pages
Use the `-m, --match` flag to specify the pages you want to fetch:
```bash
sitemcp https://vite.dev -m "/blog/**" -m "/guide/**"
```
The match pattern is tested against the pathname of target pages, powered by micromatch, you can check out all the supported [matching features](https://github.com/micromatch/micromatch#matching-features).
### Content selector
We use [mozilla/readability](https://github.com/mozilla/readability) to extract readable content from the web page, but on some pages it might return irrelevant contents, in this case you can specify a CSS selector so we know where to find the readable content:
```sitemcp
sitemcp https://vite.dev --content-selector ".content"
```
## How to configure with MCP Client
You can execute server from your MCP client (e.g. Claude Desktop).
The below example configuration for Claude Desktop
```json
{
"mcpServers": {
"daisy-ui": {
"command": "npx",
"args": [
"-y",
"sitemcp",
"https://daisyui.com",
"-m",
"/components/**"
]
}
}
}
```
## Tips
- Some site has a lot of pages. It is better to run `sitemcp` before registering the server to the MCP client. `sitemcp` caches the pages in `~/.cache/sitemcp` by default. You can disable by `--no-cache` flag.
## License
MIT.
## Sponsors
<!-- spellchecker:disable-line -->
<p align="center">
<a href="https://github.com/sponsors/ryoppippi">
<img src="https://cdn.jsdelivr.net/gh/ryoppippi/sponsors@main/sponsors.svg">
</a>
</p>
## Stats
<a href="https://www.star-history.com/#ryoppippi/sitemcp&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=ryoppippi/sitemcp&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=ryoppippi/sitemcp&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=ryoppippi/sitemcp&type=Date" />
</picture>
</a>

Connection Info
You Might Also Like
everything-claude-code
Complete Claude Code configuration collection - agents, skills, hooks,...
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
servers
Model Context Protocol Servers
servers
Model Context Protocol Servers
Time
A Model Context Protocol server for time and timezone conversions.