mcp-my-site

Registre officiel Recherche et web

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

Que pouvez-vous faire avec mcp-my-site ?

  • Hybrid search. BM25 keyword search and vector search over embeddings, fused per query, with a
  • Works without a key. A keyword-only index needs no embeddings provider at all; switch to
  • ChatGPT and Claude ready. Streamable HTTP MCP endpoint with search and fetch tools in the
  • Discoverable. /mcp/server-card serves the MCP server card (SEP-2127) with the endpoint, the
  • Search API for your own site. GET /api/search with CORS, rate limiting, offset paging, an
  • Docker image. docker pull ghcr.io/pournasserian/mcp-my-site:latest; mount the index or
  • 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

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

Remote (streamable-http)
Claude Code
claude mcp add --transport http mcp-my-site 'https://ai.pournasserian.com/mcp'
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "mcp-my-site": {
            "type": "http",
            "url": "https://ai.pournasserian.com/mcp"
        }
    }
}
OCI package ghcr.io/pournasserian/mcp-my-site:0.3.0
Claude Code
claude mcp add mcp-my-site -e 'Index__Path=/index' -e 'AI_API_KEY=<your ai_api_key>' -- docker run -i --rm ghcr.io/pournasserian/mcp-my-site:0.3.0
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "mcp-my-site": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/pournasserian/mcp-my-site:0.3.0"
            ],
            "env": {
                "Index__Path": "/index",
                "AI_API_KEY": "<your ai_api_key>"
            }
        }
    }
}

Variables d'environnement

  • Index__Path obligatoire Folder inside the container that holds the index, the target of the mount above.
  • AI_API_KEY secret API key for the embeddings provider, needed only to serve a hybrid index. Leave it unset for a keyword-only index.

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. mcp-my-site
  2. Try it now
  3. Quick start
  4. Features
  5. Documentation
  6. Repository

mcp-my-site

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
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.

dotnet tool install --global mcpmysite
mcpmysite init https://example.com --keyword-only   # writes appsettings.json
mcpmysite build                                     # crawls the site into ./index
mcpmysite search "how can I contact you"            # checks the index
docker 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.

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.

export AI_API_KEY=sk-...
# in appsettings.json, under Embeddings, change "Enabled": false to true, then rebuild and serve
mcpmysite build
docker 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.
  • 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
dotnet build
dotnet test

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

Questions fréquentes

Qu'est-ce que mcp-my-site ?

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

Comment installer mcp-my-site ?

Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http mcp-my-site 'https://ai.pournasserian.com/mcp'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour mcp-my-site ?

Oui. Il attend Index__Path, AI_API_KEY, à renseigner dans sa configuration.

mcp-my-site est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient mcp-my-site ?

Il est publié par pournasserian. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.