{"servers":[{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.mark1russell7/polite-crawler","description":"A polite crawler for agents: obeys robots.txt, fetches each page once, finds and verifies quotes.","title":"polite-crawler","repository":{"url":"https://github.com/mark1russell7/crawler","source":"github","subfolder":"packages/polite-crawler-mcp"},"version":"0.2.1","websiteUrl":"https://mark1russell7.github.io/crawler/","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"polite-crawler-mcp","version":"0.2.1","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"The folder of the store. The default is ~/.polite-crawler.","format":"filepath","name":"POLITE_CRAWLER_DIR"},{"description":"An email address or URL for the From header of each request.","name":"POLITE_CRAWLER_CONTACT"},{"description":"Set it to 1 to let the crawler fetch loopback, private and link-local addresses. The default refuses them.","format":"boolean","name":"POLITE_CRAWLER_ALLOW_PRIVATE"},{"description":"Set it to 1 to let user_provided read a page that refuses AI input when the client cannot ask the user to confirm.","format":"boolean","name":"POLITE_CRAWLER_ALLOW_USER_PROVIDED"},{"description":"The file of an Ed25519 private key (PKCS#8 PEM or JWK). The crawler signs each request with it (Web Bot Auth). It needs POLITE_CRAWLER_SIGNATURE_AGENT.","format":"filepath","name":"POLITE_CRAWLER_SIGN_KEY"},{"description":"Where a site finds the public key of POLITE_CRAWLER_SIGN_KEY: the https origin of the key directory, or the URL of a JSON Web Key Set.","name":"POLITE_CRAWLER_SIGNATURE_AGENT"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-20T00:11:51.324896Z","publishedAt":"2026-10-20T00:11:51.324896Z","updatedAt":"2026-10-20T00:11:51.324896Z","isLatest":true}}}],"metadata":{"count":1}}
