[{"data":1,"prerenderedAt":855},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fdocs\u002Fapi\u002Fmcp-server":213},[4],{"title":5,"path":6,"stem":7,"children":8,"page":30},"Docs","\u002Fdocs","docs",[9,31,56,98,118,138,163],{"title":10,"description":11,"group":11,"path":12,"stem":13,"children":14,"page":30},"Getting started",null,"\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[15,20,25],{"title":16,"path":17,"stem":18,"description":19,"group":11},"Overview","\u002Fdocs\u002Fgetting-started\u002Foverview","docs\u002F1.getting-started\u002F1.overview","What Shruwd does and what you get out of it.",{"title":21,"path":22,"stem":23,"description":24,"group":11},"Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart","docs\u002F1.getting-started\u002F2.quickstart","From an empty account to your first measurement.",{"title":26,"path":27,"stem":28,"description":29,"group":11},"Reading your results","\u002Fdocs\u002Fgetting-started\u002Freading-your-results","docs\u002F1.getting-started\u002F3.reading-your-results","What the four numbers mean, and when to trust them.",false,{"title":32,"description":11,"group":11,"path":33,"stem":34,"children":35,"page":30},"What you track","\u002Fdocs\u002Ftracking","docs\u002F2.tracking",[36,41,46,51],{"title":37,"path":38,"stem":39,"description":40,"group":11},"Brands","\u002Fdocs\u002Ftracking\u002Fbrands","docs\u002F2.tracking\u002F1.brands","Add, rename and archive the brands you measure.",{"title":42,"path":43,"stem":44,"description":45,"group":11},"Prompts","\u002Fdocs\u002Ftracking\u002Fprompts","docs\u002F2.tracking\u002F2.prompts","Choose and manage the questions Shruwd asks each engine.",{"title":47,"path":48,"stem":49,"description":50,"group":11},"Competitors","\u002Fdocs\u002Ftracking\u002Fcompetitors","docs\u002F2.tracking\u002F3.competitors","Track the brands you are compared against, and how they are matched.",{"title":52,"path":53,"stem":54,"description":55,"group":11},"Connecting Search Console","\u002Fdocs\u002Ftracking\u002Fconnecting-search-console","docs\u002F2.tracking\u002F4.connecting-search-console","Add per-page search demand so two diagnostics can run.",{"title":57,"description":11,"group":11,"path":58,"stem":59,"children":60,"page":30},"Crawler logs","\u002Fdocs\u002Fcrawler-logs","docs\u002F3.crawler-logs",[61,66,72,77,82,87,93],{"title":62,"path":63,"stem":64,"description":65,"group":11},"Choosing a log path","\u002Fdocs\u002Fcrawler-logs\u002Fchoosing-a-log-path","docs\u002F3.crawler-logs\u002F1.choosing-a-log-path","Pick the way of sending crawler logs that matches your hosting.",{"title":67,"path":68,"stem":69,"description":70,"group":71},"Platform log drains","\u002Fdocs\u002Fcrawler-logs\u002Fplatform-log-drains","docs\u002F3.crawler-logs\u002F2.platform-log-drains","Send logs from Vercel, Netlify, Fly and similar. No code.","Setup guides",{"title":73,"path":74,"stem":75,"description":76,"group":71},"Cloudflare Worker","\u002Fdocs\u002Fcrawler-logs\u002Fcloudflare-worker","docs\u002F3.crawler-logs\u002F3.cloudflare-worker","Forward crawler hits from behind Cloudflare, on any plan.",{"title":78,"path":79,"stem":80,"description":81,"group":71},"Cloudflare Logpush","\u002Fdocs\u002Fcrawler-logs\u002Fcloudflare-logpush","docs\u002F3.crawler-logs\u002F4.cloudflare-logpush","Send zone request logs straight to Shruwd. Enterprise zones, no code.",{"title":83,"path":84,"stem":85,"description":86,"group":71},"Server middleware","\u002Fdocs\u002Fcrawler-logs\u002Fserver-middleware","docs\u002F3.crawler-logs\u002F5.server-middleware","Forward crawler hits from a Nuxt or Nitro origin. Last resort.",{"title":88,"path":89,"stem":90,"description":91,"group":92},"Crawlers tracked","\u002Fdocs\u002Fcrawler-logs\u002Fcrawlers-tracked","docs\u002F3.crawler-logs\u002F6.crawlers-tracked","Which bots Shruwd recognises, and how a hit is verified.","Reference",{"title":94,"path":95,"stem":96,"description":97,"group":92},"Ingest not arriving","\u002Fdocs\u002Fcrawler-logs\u002Fingest-not-arriving","docs\u002F3.crawler-logs\u002F7.ingest-not-arriving","Diagnose a log drain that is not delivering.",{"title":99,"description":11,"group":11,"path":100,"stem":101,"children":102,"page":30},"Findings and fixes","\u002Fdocs\u002Ffindings","docs\u002F4.findings",[103,108,113],{"title":104,"path":105,"stem":106,"description":107,"group":11},"How findings work","\u002Fdocs\u002Ffindings\u002Fhow-findings-work","docs\u002F4.findings\u002F1.how-findings-work","What a finding is, how much to trust it, and how to prove your fix worked.",{"title":109,"path":110,"stem":111,"description":112,"group":11},"Rechecks","\u002Fdocs\u002Ffindings\u002Frechecks","docs\u002F4.findings\u002F2.rechecks","How Shruwd proves whether your fix moved the number.",{"title":114,"path":115,"stem":116,"description":117,"group":11},"Findings reference","\u002Fdocs\u002Ffindings\u002Ffindings-reference","docs\u002F4.findings\u002F3.findings-reference","Every diagnostic Shruwd runs, what triggers it and what to do.",{"title":119,"description":11,"group":11,"path":120,"stem":121,"children":122,"page":30},"Metrics","\u002Fdocs\u002Fmetrics","docs\u002F5.metrics",[123,128,133],{"title":124,"path":125,"stem":126,"description":127,"group":11},"Metric definitions","\u002Fdocs\u002Fmetrics\u002Fmetric-definitions","docs\u002F5.metrics\u002F1.metric-definitions","Exactly what each number counts, and when it is undefined.",{"title":129,"path":130,"stem":131,"description":132,"group":11},"Confidence and sample size","\u002Fdocs\u002Fmetrics\u002Fconfidence-and-sample-size","docs\u002F5.metrics\u002F2.confidence-and-sample-size","Why every number has a range, and why some are withheld.",{"title":134,"path":135,"stem":136,"description":137,"group":11},"When a number has moved","\u002Fdocs\u002Fmetrics\u002Fwhen-a-number-has-moved","docs\u002F5.metrics\u002F3.when-a-number-has-moved","The rule Shruwd uses before calling a change real.",{"title":139,"description":11,"group":11,"path":140,"stem":141,"children":142,"page":30},"Account","\u002Fdocs\u002Faccount","docs\u002F6.account",[143,148,153,158],{"title":144,"path":145,"stem":146,"description":147,"group":11},"Plans and limits","\u002Fdocs\u002Faccount\u002Fplans-and-limits","docs\u002F6.account\u002F1.plans-and-limits","What each plan includes and what happens when you reach a limit.",{"title":149,"path":150,"stem":151,"description":152,"group":11},"Team and roles","\u002Fdocs\u002Faccount\u002Fteam-and-roles","docs\u002F6.account\u002F2.team-and-roles","Invite people, set what they can change, and remove access.",{"title":154,"path":155,"stem":156,"description":157,"group":11},"Billing","\u002Fdocs\u002Faccount\u002Fbilling","docs\u002F6.account\u002F3.billing","Change plan, read your usage, and handle a failed payment.",{"title":159,"path":160,"stem":161,"description":162,"group":11},"Email notifications","\u002Fdocs\u002Faccount\u002Femail-notifications","docs\u002F6.account\u002F4.email-notifications","What Shruwd emails you, and how to turn it off.",{"title":164,"description":11,"group":11,"path":165,"stem":166,"children":167,"page":30},"Build on Shruwd","\u002Fdocs\u002Fapi","docs\u002F7.api",[168,173,178,182,187,192,197,203,208],{"title":169,"path":170,"stem":171,"description":172,"group":11},"API overview","\u002Fdocs\u002Fapi\u002Fapi-overview","docs\u002F7.api\u002F1.api-overview","Authentication, errors, limits and the rules every endpoint follows.",{"title":37,"path":174,"stem":175,"description":176,"group":177},"\u002Fdocs\u002Fapi\u002Fbrands","docs\u002F7.api\u002F2.brands","Create, read, rename and archive brands over the API.","Endpoints",{"title":42,"path":179,"stem":180,"description":181,"group":177},"\u002Fdocs\u002Fapi\u002Fprompts","docs\u002F7.api\u002F3.prompts","Add, edit and retire the questions asked every cycle.",{"title":183,"path":184,"stem":185,"description":186,"group":177},"Entities","\u002Fdocs\u002Fapi\u002Fentities","docs\u002F7.api\u002F4.entities","Manage the brand and its competitors, and the aliases that count.",{"title":188,"path":189,"stem":190,"description":191,"group":177},"Measurement","\u002Fdocs\u002Fapi\u002Fmeasurement","docs\u002F7.api\u002F5.measurement","Run cycles and read visibility, crawlers and individual answers.",{"title":193,"path":194,"stem":195,"description":196,"group":177},"Findings","\u002Fdocs\u002Fapi\u002Ffindings","docs\u002F7.api\u002F6.findings","Read diagnosed findings and move them through their lifecycle.",{"title":198,"path":199,"stem":200,"description":201,"group":202},"TypeScript SDK","\u002Fdocs\u002Fapi\u002Ftypescript-sdk","docs\u002F7.api\u002F7.typescript-sdk","A typed client for the Shruwd API.","Clients and agents",{"title":204,"path":205,"stem":206,"description":207,"group":202},"MCP server","\u002Fdocs\u002Fapi\u002Fmcp-server","docs\u002F7.api\u002F8.mcp-server","Give Claude or Cursor tools to run Shruwd.",{"title":209,"path":210,"stem":211,"description":212,"group":202},"For AI agents","\u002Fdocs\u002Fapi\u002Ffor-ai-agents","docs\u002F7.api\u002F9.for-ai-agents","Machine-readable versions of everything here.",{"id":214,"title":204,"body":215,"description":849,"extension":850,"group":202,"meta":851,"navigation":852,"path":205,"section":164,"seo":853,"stem":206,"__hash__":854},"docs\u002Fdocs\u002F7.api\u002F8.mcp-server.md",{"type":216,"value":217,"toc":839},"minimark",[218,222,238,247,252,279,283,290,401,405,445,449,454,524,528,570,574,757,761,764,819,823,835],[219,220,204],"h1",{"id":221},"mcp-server",[223,224,225,229,230,237],"p",{},[226,227,228],"code",{},"shruwd-mcp"," is a local ",[231,232,236],"a",{"href":233,"rel":234},"https:\u002F\u002Fmodelcontextprotocol.io",[235],"nofollow","MCP"," server. It gives an AI\nassistant tools to set up a brand, add prompts and competitors, read how the brand appears\nin AI answers, and act on findings.",[223,239,240,241,246],{},"It runs on your machine over stdio and talks to the API with your key. There is no hosted\nserver. Clients that find servers from a site can read its install and configuration from\n",[231,242,244],{"href":243},"\u002F.well-known\u002Fmcp.json",[226,245,243],{},".",[248,249,251],"h2",{"id":250},"prerequisites","Prerequisites",[223,253,254,255,259,260,263,264,267,268,271,272,275,276,246],{},"An API key from ",[256,257,258],"strong",{},"Account → API keys",". A key is bound to one workspace and acts with your\nrole in it: reads need ",[226,261,262],{},"viewer",", writes ",[226,265,266],{},"editor",", creating or archiving a brand ",[226,269,270],{},"owner",",\nand minting an ingest token ",[226,273,274],{},"admin",". To work across several workspaces, mint a key in each\nand add one server entry per workspace. See ",[231,277,278],{"href":170},"Roles",[248,280,282],{"id":281},"claude-desktop","Claude Desktop",[223,284,285,286,289],{},"In ",[226,287,288],{},"claude_desktop_config.json",":",[291,292,297],"pre",{"className":293,"code":294,"language":295,"meta":296,"style":296},"language-json shiki shiki-themes github-light github-dark","{\n  \"mcpServers\": {\n    \"shruwd\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"shruwd-mcp\"],\n      \"env\": { \"SHRUWD_API_KEY\": \"sh_live_…\" }\n    }\n  }\n}\n","json","",[226,298,299,308,318,326,342,363,383,389,395],{"__ignoreMap":296},[300,301,304],"span",{"class":302,"line":303},"line",1,[300,305,307],{"class":306},"sVt8B","{\n",[300,309,311,315],{"class":302,"line":310},2,[300,312,314],{"class":313},"sj4cs","  \"mcpServers\"",[300,316,317],{"class":306},": {\n",[300,319,321,324],{"class":302,"line":320},3,[300,322,323],{"class":313},"    \"shruwd\"",[300,325,317],{"class":306},[300,327,329,332,335,339],{"class":302,"line":328},4,[300,330,331],{"class":313},"      \"command\"",[300,333,334],{"class":306},": ",[300,336,338],{"class":337},"sZZnC","\"npx\"",[300,340,341],{"class":306},",\n",[300,343,345,348,351,354,357,360],{"class":302,"line":344},5,[300,346,347],{"class":313},"      \"args\"",[300,349,350],{"class":306},": [",[300,352,353],{"class":337},"\"-y\"",[300,355,356],{"class":306},", ",[300,358,359],{"class":337},"\"shruwd-mcp\"",[300,361,362],{"class":306},"],\n",[300,364,366,369,372,375,377,380],{"class":302,"line":365},6,[300,367,368],{"class":313},"      \"env\"",[300,370,371],{"class":306},": { ",[300,373,374],{"class":313},"\"SHRUWD_API_KEY\"",[300,376,334],{"class":306},[300,378,379],{"class":337},"\"sh_live_…\"",[300,381,382],{"class":306}," }\n",[300,384,386],{"class":302,"line":385},7,[300,387,388],{"class":306},"    }\n",[300,390,392],{"class":302,"line":391},8,[300,393,394],{"class":306},"  }\n",[300,396,398],{"class":302,"line":397},9,[300,399,400],{"class":306},"}\n",[248,402,404],{"id":403},"claude-code","Claude Code",[291,406,410],{"className":407,"code":408,"language":409,"meta":296,"style":296},"language-bash shiki shiki-themes github-light github-dark","claude mcp add shruwd -e SHRUWD_API_KEY=sh_live_… -- npx -y shruwd-mcp\n","bash",[226,411,412],{"__ignoreMap":296},[300,413,414,418,421,424,427,430,433,436,439,442],{"class":302,"line":303},[300,415,417],{"class":416},"sScJk","claude",[300,419,420],{"class":337}," mcp",[300,422,423],{"class":337}," add",[300,425,426],{"class":337}," shruwd",[300,428,429],{"class":313}," -e",[300,431,432],{"class":337}," SHRUWD_API_KEY=sh_live_…",[300,434,435],{"class":313}," --",[300,437,438],{"class":337}," npx",[300,440,441],{"class":313}," -y",[300,443,444],{"class":337}," shruwd-mcp\n",[248,446,448],{"id":447},"cursor","Cursor",[223,450,285,451,289],{},[226,452,453],{},".cursor\u002Fmcp.json",[291,455,456],{"className":293,"code":294,"language":295,"meta":296,"style":296},[226,457,458,462,468,474,484,498,512,516,520],{"__ignoreMap":296},[300,459,460],{"class":302,"line":303},[300,461,307],{"class":306},[300,463,464,466],{"class":302,"line":310},[300,465,314],{"class":313},[300,467,317],{"class":306},[300,469,470,472],{"class":302,"line":320},[300,471,323],{"class":313},[300,473,317],{"class":306},[300,475,476,478,480,482],{"class":302,"line":328},[300,477,331],{"class":313},[300,479,334],{"class":306},[300,481,338],{"class":337},[300,483,341],{"class":306},[300,485,486,488,490,492,494,496],{"class":302,"line":344},[300,487,347],{"class":313},[300,489,350],{"class":306},[300,491,353],{"class":337},[300,493,356],{"class":306},[300,495,359],{"class":337},[300,497,362],{"class":306},[300,499,500,502,504,506,508,510],{"class":302,"line":365},[300,501,368],{"class":313},[300,503,371],{"class":306},[300,505,374],{"class":313},[300,507,334],{"class":306},[300,509,379],{"class":337},[300,511,382],{"class":306},[300,513,514],{"class":302,"line":385},[300,515,388],{"class":306},[300,517,518],{"class":302,"line":391},[300,519,394],{"class":306},[300,521,522],{"class":302,"line":397},[300,523,400],{"class":306},[248,525,527],{"id":526},"environment","Environment",[529,530,531,543],"table",{},[532,533,534],"thead",{},[535,536,537,541],"tr",{},[538,539,540],"th",{},"Variable",[538,542],{},[544,545,546,557],"tbody",{},[535,547,548,554],{},[549,550,551],"td",{},[226,552,553],{},"SHRUWD_API_KEY",[549,555,556],{},"Required",[535,558,559,564],{},[549,560,561],{},[226,562,563],{},"SHRUWD_API_URL",[549,565,566,567],{},"Optional. Defaults to ",[226,568,569],{},"https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1",[248,571,573],{"id":572},"tools","Tools",[529,575,576,586],{},[532,577,578],{},[535,579,580,583],{},[538,581,582],{},"Tool",[538,584,585],{},"Does",[544,587,588,598,623,642,661,674,690,700,716,726,745],{},[535,589,590,595],{},[549,591,592],{},[226,593,594],{},"shruwd_get_workspace",[549,596,597],{},"Plan, entitlements, usage, brands. Start here",[535,599,600,618],{},[549,601,602,605,606,605,609,605,612,605,615],{},[226,603,604],{},"shruwd_list_brands"," · ",[226,607,608],{},"shruwd_get_brand",[226,610,611],{},"shruwd_create_brand",[226,613,614],{},"shruwd_update_brand",[226,616,617],{},"shruwd_archive_brand",[549,619,620,621],{},"Brands. Creating one also creates its self entity and first measurement. Creating and archiving need ",[226,622,270],{},[535,624,625,639],{},[549,626,627,605,630,605,633,605,636],{},[226,628,629],{},"shruwd_list_prompts",[226,631,632],{},"shruwd_add_prompts",[226,634,635],{},"shruwd_update_prompt",[226,637,638],{},"shruwd_remove_prompt",[549,640,641],{},"The questions asked of each engine every cycle",[535,643,644,658],{},[549,645,646,605,649,605,652,605,655],{},[226,647,648],{},"shruwd_list_entities",[226,650,651],{},"shruwd_add_competitor",[226,653,654],{},"shruwd_set_entity",[226,656,657],{},"shruwd_remove_entity",[549,659,660],{},"The brand and its competitors, with the exact aliases that count",[535,662,663,671],{},[549,664,665,605,668],{},[226,666,667],{},"shruwd_run_measurement",[226,669,670],{},"shruwd_list_cycles",[549,672,673],{},"Measure now; watch the cycle",[535,675,676,687],{},[549,677,678,605,681,605,684],{},[226,679,680],{},"shruwd_get_visibility",[226,682,683],{},"shruwd_get_visibility_series",[226,685,686],{},"shruwd_get_crawlers",[549,688,689],{},"Mention rate and share of voice with intervals, and verified crawler activity",[535,691,692,697],{},[549,693,694],{},[226,695,696],{},"shruwd_list_answers",[549,698,699],{},"The latest individual answers. Evidence, not a metric",[535,701,702,713],{},[549,703,704,605,707,605,710],{},[226,705,706],{},"shruwd_list_suggestions",[226,708,709],{},"shruwd_accept_suggestion",[226,711,712],{},"shruwd_dismiss_suggestion",[549,714,715],{},"Competitors the answers named that you do not track",[535,717,718,723],{},[549,719,720],{},[226,721,722],{},"shruwd_suggest_setup",[549,724,725],{},"Drafts prompts and competitors from your homepage. Nothing is saved",[535,727,728,739],{},[549,729,730,605,733,605,736],{},[226,731,732],{},"shruwd_list_findings",[226,734,735],{},"shruwd_get_finding",[226,737,738],{},"shruwd_transition_finding",[549,740,741,742],{},"Diagnoses with a specific fix; mark one applied to start the recheck. Capped plans count the rest in ",[226,743,744],{},"locked",[535,746,747,752],{},[549,748,749],{},[226,750,751],{},"shruwd_create_ingest_token",[549,753,754,755],{},"The token and endpoint for shipping server logs. Needs ",[226,756,274],{},[248,758,760],{"id":759},"what-the-tools-will-not-do","What the tools will not do",[223,762,763],{},"No tool computes anything the API does not return. The server is a transport, and every\nguarantee the API keeps, it keeps:",[765,766,767,782,796,804],"ul",{},[768,769,770,773,774,777,778,781],"li",{},[256,771,772],{},"A metric is never a bare number."," Each carries its 95% interval and ",[226,775,776],{},"n",", or an\nexplicit ",[226,779,780],{},"insufficient_data"," — which the tool descriptions tell the agent not to read as\nzero.",[768,783,784,787,788,791,792,795],{},[256,785,786],{},"No tool can mark a finding resolved."," ",[226,789,790],{},"resolved"," and ",[226,793,794],{},"not_moved"," belong to the\nrecheck. An agent can acknowledge, apply or dismiss; it cannot declare success.",[768,797,798,787,801,803],{},[256,799,800],{},"Nothing is saved without you.",[226,802,722],{}," drafts prompts and competitors\nand saves none of them — they go in through the normal tools, with the same checks as\nadding them by hand.",[768,805,806,809,810,812,813,815,816,246],{},[256,807,808],{},"A capped plan hides nothing silently."," Where your plan shows only its top findings,\n",[226,811,732],{}," returns those and counts the rest in ",[226,814,744],{}," by severity, so the\nagent is told they exist rather than reporting a short list as the whole set. Fetching a\nlocked one is ",[226,817,818],{},"403 not_entitled",[248,820,822],{"id":821},"next-steps","Next steps",[765,824,825,830],{},[768,826,827,829],{},[231,828,209],{"href":210}," — the docs themselves, machine-readable",[768,831,832,834],{},[231,833,198],{"href":199}," — the client underneath these tools",[836,837,838],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}",{"title":296,"searchDepth":320,"depth":320,"links":840},[841,842,843,844,845,846,847,848],{"id":250,"depth":310,"text":251},{"id":281,"depth":310,"text":282},{"id":403,"depth":310,"text":404},{"id":447,"depth":310,"text":448},{"id":526,"depth":310,"text":527},{"id":572,"depth":310,"text":573},{"id":759,"depth":310,"text":760},{"id":821,"depth":310,"text":822},"A local MCP server that lets Claude Desktop, Claude Code or Cursor set up a brand and read its results.","md",{},{"title":204,"description":207},{"title":204,"description":849},"SMzbLP7J_7hXl7uYnMczrtGC9pR4TzR5r-nB0BEUL9k",1790003439974]