Fetch an entire site and use it as a MCP Server
svelte-claude-en-m.mov
Demo in Japanese
svelte-claude-m.mov
One-off usage (choose one of the followings):
bunx sitemcp
npx sitemcp
pnpx sitemcp
Install globally (choose one of the followings):
bun i -g sitemcp
npm i -g sitemcp
pnpm i -g sitemcp
sitemcp https://daisyui.com
# or better concurrency
sitemcp https://daisyui.com --concurrency 10
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.
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
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.
sitemcp https://vite.dev -l 10000
Use the -m, --match
flag to specify the pages you want to fetch:
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.
We use 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 https://vite.dev --content-selector ".content"
You can execute server from your MCP client (e.g. Claude Desktop).
The below example configuration for Claude Desktop
{
"mcpServers": {
"daisy-ui": {
"command": "npx",
"args": [
"-y",
"sitemcp",
"https://daisyui.com",
"-m",
"/components/**"
]
}
}
}
- 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.
MIT.