[{"data":1,"prerenderedAt":146},["ShallowReactive",2],{"changelog-\u002Fchangelog\u002Fapi-sdk-and-mcp-server":3},{"id":4,"title":5,"area":6,"body":7,"date":136,"description":137,"extension":138,"meta":139,"navigation":140,"path":141,"seo":142,"stem":143,"type":144,"__hash__":145},"changelog\u002Fchangelog\u002F2.api-sdk-and-mcp-server.md","The API, a TypeScript SDK and an MCP server","Build on Shruwd",{"type":8,"value":9,"toc":128},"minimark",[10,14,19,27,47,51,60,76,83,87,97,101,124],[11,12,13],"p",{},"Shruwd is built to be driven by a person or by an agent. The public API covers the whole product, and two clients sit on top of it.",[15,16,18],"h2",{"id":17},"the-api","The API",[11,20,21,22,26],{},"Mint a key under ",[23,24,25],"strong",{},"Account → API keys"," and send it as a bearer token. A key uses the product with your role and never administers the account: it cannot mint other keys, change billing or delete anything that is not brand configuration. Keys come in two scopes, read and read plus write.",[11,28,29,30,37,38,41,42,46],{},"The contract describes itself at ",[31,32,34],"a",{"href":33},"\u002Fapi\u002Fv1\u002Fopenapi.json",[35,36,33],"code",{},", which needs no key to read. Errors share one shape, and a metric comes with its interval or as an explicit ",[35,39,40],{},"insufficient_data"," state, never as a bare number. Start with the ",[31,43,45],{"href":44},"\u002Fdocs\u002Fapi\u002Fapi-overview","API overview",".",[15,48,50],{"id":49},"the-typescript-sdk","The TypeScript SDK",[11,52,53,56,57,46],{},[35,54,55],{},"@shruwd\u002Fsdk"," is a typed client whose types are generated from the OpenAPI document, so it cannot drift from the API. ESM, retries and structured errors built in, no runtime dependencies beyond ",[35,58,59],{},"fetch",[61,62,67],"pre",{"className":63,"code":64,"language":65,"meta":66,"style":66},"language-powershell shiki shiki-themes github-light github-dark","npm install @shruwd\u002Fsdk\n","powershell","",[35,68,69],{"__ignoreMap":66},[70,71,74],"span",{"class":72,"line":73},"line",1,[70,75,64],{},[11,77,78,79,46],{},"See the ",[31,80,82],{"href":81},"\u002Fdocs\u002Fapi\u002Ftypescript-sdk","SDK guide",[15,84,86],{"id":85},"the-mcp-server","The MCP server",[11,88,89,92,93,46],{},[35,90,91],{},"shruwd-mcp"," gives Claude Desktop, Claude Code or Cursor tools to set up a brand, add prompts and competitors, read how the brand appears in answers and act on findings. It runs on your machine over stdio with your key; there is no hosted server. Setup is one config entry, shown in ",[31,94,96],{"href":95},"\u002Fdocs\u002Fapi\u002Fmcp-server","MCP server",[15,98,100],{"id":99},"for-agents-reading-the-docs","For agents reading the docs",[11,102,103,104,107,108,111,112,115,116,119,120,46],{},"Every docs page is also markdown: append ",[35,105,106],{},".md"," to its URL. ",[35,109,110],{},"\u002Fllms.txt"," indexes them, ",[35,113,114],{},"\u002Fllms-full.txt"," holds the whole set in one file, and ",[35,117,118],{},"\u002Fskill.md"," is a procedure for setting a brand up end to end. See ",[31,121,123],{"href":122},"\u002Fdocs\u002Fapi\u002Ffor-ai-agents","for AI agents",[125,126,127],"style",{},"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);}",{"title":66,"searchDepth":129,"depth":129,"links":130},3,[131,133,134,135],{"id":17,"depth":132,"text":18},2,{"id":49,"depth":132,"text":50},{"id":85,"depth":132,"text":86},{"id":99,"depth":132,"text":100},"2026-09-11","Everything the dashboard does, your code or your AI assistant can do too: set up a brand, read results and work findings through the REST API, the typed SDK or the local MCP server.","md",{},true,"\u002Fchangelog\u002Fapi-sdk-and-mcp-server",{"title":5,"description":137},"changelog\u002F2.api-sdk-and-mcp-server","feature","UgRKZqYP2Q0-p2AnrDiUDdHdq9heX6nHXvJAfLXYYS8",1790003440143]