[{"data":1,"prerenderedAt":1799},["ShallowReactive",2],{"navigation_docs":3,"-integrations-mcp":244,"-integrations-mcp-surround":1796},[4,51,78,229],{"title":5,"icon":6,"modifiedAt":7,"path":8,"stem":9,"children":10,"page":6},"Getting Started",false,"2026-04-30T19:15:33.000Z","\u002Fgetting-started","1.getting-started",[11,16,21,26,31,36,41,46],{"title":12,"path":13,"stem":14,"icon":15},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F1.quickstart","i-lucide-fast-forward",{"title":17,"path":18,"stem":19,"icon":20},"Core Concepts","\u002Fgetting-started\u002Fcore-concepts","1.getting-started\u002F2.core-concepts","i-lucide-workflow",{"title":22,"path":23,"stem":24,"icon":25},"Configs Anatomy","\u002Fgetting-started\u002Fconfigs","1.getting-started\u002F3.configs","i-lucide-file-cog",{"title":27,"path":28,"stem":29,"icon":30},"Architecture","\u002Fgetting-started\u002Farchitecture","1.getting-started\u002F4.architecture","i-lucide-layers",{"title":32,"path":33,"stem":34,"icon":35},"JSON Schema Validation","\u002Fgetting-started\u002Fjson-schema-validation","1.getting-started\u002F5.json-schema-validation","i-lucide-braces",{"title":37,"path":38,"stem":39,"icon":40},"Testing Rules","\u002Fgetting-started\u002Ftesting-targeting-rules","1.getting-started\u002F6.testing-targeting-rules","i-lucide-flask-conical",{"title":42,"path":43,"stem":44,"icon":45},"Segments","\u002Fgetting-started\u002Fsegments","1.getting-started\u002F7.segments","i-lucide-squares-intersect",{"title":47,"path":48,"stem":49,"icon":50},"Pricing & Billing","\u002Fgetting-started\u002Fpricing-and-billing","1.getting-started\u002F8.pricing-and-billing","i-lucide-credit-card",{"title":52,"modifiedAt":53,"defaultOpen":54,"path":55,"stem":56,"children":57,"page":6},"Monitoring","2026-09-24T23:33:20.000Z",true,"\u002Fmonitoring","2.monitoring",[58,63,68,73],{"title":59,"path":60,"stem":61,"icon":62},"Activity","\u002Fmonitoring\u002Factivity","2.monitoring\u002F1.activity","i-lucide-activity",{"title":64,"path":65,"stem":66,"icon":67},"Lifecycle","\u002Fmonitoring\u002Flifecycle","2.monitoring\u002F2.lifecycle","i-lucide-recycle",{"title":69,"path":70,"stem":71,"icon":72},"Alerts","\u002Fmonitoring\u002Falerts","2.monitoring\u002F3.alerts","i-lucide-bell",{"title":74,"path":75,"stem":76,"icon":77},"Dynamic Detection","\u002Fmonitoring\u002Fdynamic-detection","2.monitoring\u002F4.dynamic-detection","i-lucide-hat-glasses",{"title":79,"modifiedAt":53,"defaultOpen":54,"path":80,"stem":81,"children":82,"page":6},"SDKs","\u002Fsdks","3.sdks",[83,88,109,134,150,181,224],{"title":84,"path":85,"stem":86,"icon":87},"Available SDKs","\u002Fsdks\u002Favailable-sdks","3.sdks\u002F1.available-sdks","i-lucide-list",{"title":89,"modifiedAt":53,"icon":90,"defaultOpen":6,"path":91,"stem":92,"children":93,"page":6},"Browser SDKs","i-lucide-monitor","\u002Fsdks\u002Fbrowser","3.sdks\u002F2.browser",[94,99,104],{"title":95,"path":96,"stem":97,"icon":98},"Javascript","\u002Fsdks\u002Fbrowser\u002Fjavascript","3.sdks\u002F2.browser\u002F1.javascript","cd-logos-javascript",{"title":100,"path":101,"stem":102,"icon":103},"React","\u002Fsdks\u002Fbrowser\u002Freact","3.sdks\u002F2.browser\u002F2.react","cd-logos-react-light",{"title":105,"path":106,"stem":107,"icon":108},"Vue","\u002Fsdks\u002Fbrowser\u002Fvue","3.sdks\u002F2.browser\u002F3.vue","cd-logos-vue",{"title":110,"modifiedAt":53,"icon":111,"defaultOpen":6,"path":112,"stem":113,"children":114,"page":6},"Mobile SDKs","i-lucide-smartphone","\u002Fsdks\u002Fmobile","3.sdks\u002F3.mobile",[115,119,124,129],{"title":116,"path":117,"stem":118,"icon":103},"React Native","\u002Fsdks\u002Fmobile\u002Freact-native","3.sdks\u002F3.mobile\u002F1.react-native",{"title":120,"path":121,"stem":122,"icon":123},"Flutter","\u002Fsdks\u002Fmobile\u002Fflutter","3.sdks\u002F3.mobile\u002F2.flutter","cd-logos-flutter",{"title":125,"path":126,"stem":127,"icon":128},"Swift","\u002Fsdks\u002Fmobile\u002Fswift","3.sdks\u002F3.mobile\u002F3.swift","cd-logos-swift",{"title":130,"path":131,"stem":132,"icon":133},"Android","\u002Fsdks\u002Fmobile\u002Fandroid","3.sdks\u002F3.mobile\u002F4.android","cd-logos-android",{"title":135,"modifiedAt":53,"icon":136,"defaultOpen":6,"path":137,"stem":138,"children":139,"page":6},"Meta-framework SDKs","i-lucide-monitor-smartphone","\u002Fsdks\u002Fmeta","3.sdks\u002F4.meta",[140,145],{"title":141,"path":142,"stem":143,"icon":144},"Next.js","\u002Fsdks\u002Fmeta\u002Fnextjs","3.sdks\u002F4.meta\u002F1.nextjs","cd-logos-nextjs",{"title":146,"path":147,"stem":148,"icon":149},"Nuxt","\u002Fsdks\u002Fmeta\u002Fnuxt","3.sdks\u002F4.meta\u002F2.nuxt","cd-logos-nuxt",{"title":151,"modifiedAt":53,"icon":152,"defaultOpen":6,"path":153,"stem":154,"children":155,"page":6},"Server SDKs","i-lucide-server","\u002Fsdks\u002Fserver","3.sdks\u002F5.server",[156,161,166,171,176],{"title":157,"path":158,"stem":159,"icon":160},"Node.js","\u002Fsdks\u002Fserver\u002Fnode-js","3.sdks\u002F5.server\u002F1.node-js","cd-logos-nodejs",{"title":162,"path":163,"stem":164,"icon":165},"Python","\u002Fsdks\u002Fserver\u002Fpython","3.sdks\u002F5.server\u002F2.python","cd-logos-python",{"title":167,"path":168,"stem":169,"icon":170},"Java","\u002Fsdks\u002Fserver\u002Fjava","3.sdks\u002F5.server\u002F3.java","cd-logos-java",{"title":172,"path":173,"stem":174,"icon":175},".NET","\u002Fsdks\u002Fserver\u002Fdotnet","3.sdks\u002F5.server\u002F4.dotnet","cd-logos-dotnet",{"title":177,"path":178,"stem":179,"icon":180},"Go","\u002Fsdks\u002Fserver\u002Fgo","3.sdks\u002F5.server\u002F5.go","cd-logos-go",{"title":182,"modifiedAt":53,"icon":183,"defaultOpen":6,"path":184,"stem":185,"children":186,"page":6},"OpenFeature Providers","cd-logos-openfeature","\u002Fsdks\u002Fopenfeature","3.sdks\u002F6.openfeature",[187,192,196,200,204,208,212,216,220],{"title":188,"path":189,"stem":190,"icon":183,"icons":191},"Web","\u002Fsdks\u002Fopenfeature\u002Fweb","3.sdks\u002F6.openfeature\u002F1.web",[183,98],{"title":125,"path":193,"stem":194,"icon":183,"icons":195},"\u002Fsdks\u002Fopenfeature\u002Fswift","3.sdks\u002F6.openfeature\u002F2.swift",[183,128],{"title":130,"path":197,"stem":198,"icon":183,"icons":199},"\u002Fsdks\u002Fopenfeature\u002Fandroid","3.sdks\u002F6.openfeature\u002F3.android",[183,133],{"title":120,"path":201,"stem":202,"icon":183,"icons":203},"\u002Fsdks\u002Fopenfeature\u002Fflutter","3.sdks\u002F6.openfeature\u002F4.flutter",[183,123],{"title":157,"path":205,"stem":206,"icon":183,"icons":207},"\u002Fsdks\u002Fopenfeature\u002Fnode-js","3.sdks\u002F6.openfeature\u002F5.node-js",[183,160],{"title":162,"path":209,"stem":210,"icon":183,"icons":211},"\u002Fsdks\u002Fopenfeature\u002Fpython","3.sdks\u002F6.openfeature\u002F6.python",[183,165],{"title":167,"path":213,"stem":214,"icon":183,"icons":215},"\u002Fsdks\u002Fopenfeature\u002Fjava","3.sdks\u002F6.openfeature\u002F7.java",[183,170],{"title":172,"path":217,"stem":218,"icon":183,"icons":219},"\u002Fsdks\u002Fopenfeature\u002Fdotnet","3.sdks\u002F6.openfeature\u002F8.dotnet",[183,175],{"title":177,"path":221,"stem":222,"icon":183,"icons":223},"\u002Fsdks\u002Fopenfeature\u002Fgo","3.sdks\u002F6.openfeature\u002F9.go",[183,180],{"title":225,"path":226,"stem":227,"icon":228},"Maven Repository","\u002Fsdks\u002Fmaven-repository","3.sdks\u002F7.maven-repository","i-lucide-package",{"title":230,"modifiedAt":53,"defaultOpen":54,"path":231,"stem":232,"children":233,"page":6},"Integrations","\u002Fintegrations","4.integrations",[234,239],{"title":235,"path":236,"stem":237,"icon":238},"Terraform","\u002Fintegrations\u002Fterraform","4.integrations\u002F1.terraform","cd-logos-terraform",{"title":240,"path":241,"stem":242,"icon":243},"MCP","\u002Fintegrations\u002Fmcp","4.integrations\u002F2.mcp","cd-logos-mcp",{"id":245,"title":246,"body":247,"description":1788,"extension":1789,"links":1790,"meta":1791,"navigation":1793,"path":241,"seo":1794,"stem":242,"__hash__":1795},"docs\u002F4.integrations\u002F2.mcp.md","MCP Server",{"type":248,"value":249,"toc":1774},"minimark",[250,254,259,263,274,290,293,297,366,377,380,384,555,561,564,582,585,589,604,666,680,831,842,846,861,957,960,964,974,1197,1204,1208,1217,1314,1318,1325,1374,1380,1384,1398,1496,1499,1537,1542,1546,1563,1713,1716,1720,1747,1751,1770],[251,252],"div",{"hidden":54,"dataTitleIcon":253},"mcp",[255,256,258],"h2",{"id":257},"introduction","Introduction",[260,261,262],"p",{},"The ConfigDirector MCP server allows AI coding assistants to read and update your projects, environments, configs, targeting rules, and segments. It runs as a hosted endpoint, so there is nothing to install:",[264,265,270],"pre",{"className":266,"code":268,"language":269},[267],"language-text","https:\u002F\u002Fmcp.configdirector.com\n","text",[271,272,268],"code",{"__ignoreMap":273},"",[260,275,276,277,285,286,289],{},"It speaks the ",[278,279,284],"a",{"href":280,"rel":281,"target":283},"https:\u002F\u002Fmodelcontextprotocol.io",[282],"noopener","_blank","Model Context Protocol"," over Streamable HTTP and authenticates with a ConfigDirector API token. Every update an assistant makes goes through the same validations as the dashboard and the Admin API. Updates to configs and segments show in the audit log with a source of ",[287,288,240],"strong",{},".",[260,291,292],{},"Code assistant tool calls count as Admin API requests in your organization's usage: one tool call counts as one Admin API request.",[255,294,296],{"id":295},"create-an-api-token","Create an API token",[298,299,300,308,353,356,359],"ol",{},[301,302,303,304,307],"li",{},"In the ConfigDirector dashboard, open ",[287,305,306],{},"API tokens"," and create a token.",[301,309,310,311,314,315,318,319,322,323,314,326,318,329,332,333,336,337,340,341,344,345,348,349,352],{},"Choose the permissions the assistant needs. For exploring and answering questions, ",[271,312,313],{},"Projects: Read",", ",[271,316,317],{},"Environments: Read",", and ",[271,320,321],{},"Configs: Read"," are enough. If you want the assistant to be able to create and update configs and flags, add ",[271,324,325],{},"Configs: Create",[271,327,328],{},"Configs: Update settings",[271,330,331],{},"Configs: Update targeting rules",". For ",[278,334,335],{"href":43},"segments",", add ",[271,338,339],{},"Segments: Read"," to read them, ",[271,342,343],{},"Segments: Create"," to create them, ",[271,346,347],{},"Segments: Update"," to change them, and ",[271,350,351],{},"Segments: Delete"," to delete them.",[301,354,355],{},"It's recommended that you set an expiration on the token since it will be stored on your workstation to configure your coding tool of choice.",[301,357,358],{},"Copy the token, and optionally save it into a password manager. Do not commit the token into source control.",[301,360,361,362,365],{},"The examples below use an environment variable named ",[271,363,364],{},"CONFIGDIRECTOR_TOKEN",", wherever the tool supports that, to provide the API token.",[260,367,368,369,372,373,376],{},"For the project tag catalog, choose ",[271,370,371],{},"Tags: Read"," for listing and lookup and ",[271,374,375],{},"Tags: Create"," for creation. These permissions are independent of config permissions. Existing tokens do not gain tag scopes automatically.",[260,378,379],{},"The MCP server only exposes the tools that match your token's permissions, so a read-only token produces a read-only assistant.",[255,381,383],{"id":382},"what-the-assistant-can-do","What the assistant can do",[385,386,387,400],"table",{},[388,389,390],"thead",{},[391,392,393,397],"tr",{},[394,395,396],"th",{},"Tools",[394,398,399],{},"What they do",[401,402,403,423,442,461,474,484,494,507,523,542],"tbody",{},[391,404,405,420],{},[406,407,408,314,411,314,414,314,417],"td",{},[271,409,410],{},"list_projects",[271,412,413],{},"get_project",[271,415,416],{},"create_project",[271,418,419],{},"update_project",[406,421,422],{},"Retrieve projects general information. Create and update projects in your organization.",[391,424,425,439],{},[406,426,427,314,430,314,433,314,436],{},[271,428,429],{},"list_environments",[271,431,432],{},"get_environment",[271,434,435],{},"create_environment",[271,437,438],{},"update_environment",[406,440,441],{},"Retrieve environments within a project. Create new environments, and update environments.",[391,443,444,455],{},[406,445,446,314,449,314,452],{},[271,447,448],{},"list_configs",[271,450,451],{},"get_config",[271,453,454],{},"get_config_activity",[406,456,457,458,460],{},"Retrieve Configs, their targeting rules per environment, and their most recent evaluations. ",[271,459,448],{}," can list only the configs that have any of the given tags, or only the configs without tags.",[391,462,463,471],{},[406,464,465,314,468],{},[271,466,467],{},"create_config",[271,469,470],{},"update_config_settings",[406,472,473],{},"Create configs, feature flags, kill switches, or experiments. Update their settings, for example, the allowed values in an enum.",[391,475,476,481],{},[406,477,478],{},[271,479,480],{},"update_targeting_rules",[406,482,483],{},"Update the targeting rules of a config in a given environment.",[391,485,486,491],{},[406,487,488],{},[271,489,490],{},"get_targeting_rules_reference",[406,492,493],{},"Retrieves the targeting rules format, operators, and target types. This is used by the assistant to write valid targeting rules",[391,495,496,504],{},[406,497,498,314,501],{},[271,499,500],{},"list_segments",[271,502,503],{},"get_segment",[406,505,506],{},"Retrieve the segments of a project, with their condition groups, environment overrides, and the configs that use them.",[391,508,509,520],{},[406,510,511,314,514,314,517],{},[271,512,513],{},"create_segment",[271,515,516],{},"update_segment",[271,518,519],{},"delete_segment",[406,521,522],{},"Create, update, and delete segments. A segment cannot be deleted while the targeting rules of a config use it.",[391,524,525,536],{},[406,526,527,314,530,314,533],{},[271,528,529],{},"list_tags",[271,531,532],{},"get_tag",[271,534,535],{},"find_tag_by_name",[406,537,538,539,289],{},"Browse the shared project tag catalog and resolve a stable ID by name. Requires ",[271,540,541],{},"tags:read",[391,543,544,549],{},[406,545,546],{},[271,547,548],{},"create_tag",[406,550,551,552,289],{},"Create a shared project tag with a trimmed, case-insensitively unique name of 1–50 characters. Requires ",[271,553,554],{},"tags:create",[260,556,557,558,560],{},"Tag names preserve display casing and allow spaces and punctuation. Name lookup ignores differences in casing and leading or trailing whitespace. Tags do not affect evaluation or appear in SDK payloads. Listing configs by tag needs only ",[271,559,321],{},". A tag that was deleted matches no config, so asking only for deleted tags lists no configs rather than all of them.",[260,562,563],{},"Things you can ask once connected:",[565,566,567,570,573,576,579],"ul",{},[301,568,569],{},"\"List the flags in the checkout project.\"",[301,571,572],{},"\"Create a kill switch called payments-v2 in the checkout project, off in all environments.\"",[301,574,575],{},"\"In production, roll new-search out to 10 percent of users, and to everyone whose email ends in @example.com.\"",[301,577,578],{},"\"Create a beta testers segment for everyone whose email ends in @example.com, and turn new-search on for it in staging.\"",[301,580,581],{},"\"Which configs in production have not been evaluated in the last week?\"",[260,583,584],{},"The assistant sees a short guide to ConfigDirector's vocabulary when it connects (roles, lifetimes, types, how targeting rules work, and segments), so you can talk about configs, feature flags, rollouts, and segments in plain terms.",[255,586,588],{"id":587},"claude-code","Claude Code",[260,590,591,592,595,596,599,600,603],{},"Add the server for yourself in the current project (the default), for yourself in every project with ",[271,593,594],{},"--scope user",", or for the whole team with ",[271,597,598],{},"--scope project",", which writes ",[271,601,602],{},".mcp.json"," in the project root:",[264,605,609],{"className":606,"code":607,"language":608,"meta":273,"style":273},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark","claude mcp add --transport http configdirector https:\u002F\u002Fmcp.configdirector.com \\\n  --header \"Authorization: Bearer ${CONFIGDIRECTOR_TOKEN}\"\n","bash",[271,610,611,644],{"__ignoreMap":273},[612,613,616,620,624,627,631,634,637,640],"span",{"class":614,"line":615},"line",1,[612,617,619],{"class":618},"sbgvK","claude",[612,621,623],{"class":622},"s_sjI"," mcp",[612,625,626],{"class":622}," add",[612,628,630],{"class":629},"stzsN"," --transport",[612,632,633],{"class":622}," http",[612,635,636],{"class":622}," configdirector",[612,638,639],{"class":622}," https:\u002F\u002Fmcp.configdirector.com",[612,641,643],{"class":642},"s_hVV"," \\\n",[612,645,647,650,654,657,660,663],{"class":614,"line":646},2,[612,648,649],{"class":629},"  --header",[612,651,653],{"class":652},"sjJ54"," \"",[612,655,656],{"class":622},"Authorization: Bearer ",[612,658,659],{"class":652},"${",[612,661,364],{"class":662},"su5hD",[612,664,665],{"class":652},"}\"\n",[260,667,668,669,671,672,675,676,679],{},"Or write ",[271,670,602],{}," by hand. Claude Code expands environment variables in the ",[271,673,674],{},"url"," and ",[271,677,678],{},"headers"," fields, so the token stays out of the repository:",[264,681,685],{"className":682,"code":683,"filename":602,"language":684,"meta":273,"style":273},"language-json shiki shiki-themes material-theme-lighter github-light github-dark","{\n  \"mcpServers\": {\n    \"configdirector\": {\n      \"type\": \"http\",\n      \"url\": \"https:\u002F\u002Fmcp.configdirector.com\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${CONFIGDIRECTOR_TOKEN}\"\n      }\n    }\n  }\n}\n","json",[271,686,687,693,712,728,752,772,785,807,813,819,825],{"__ignoreMap":273},[612,688,689],{"class":614,"line":615},[612,690,692],{"class":691},"sP7_E","{\n",[612,694,695,699,703,706,709],{"class":614,"line":646},[612,696,698],{"class":697},"s39Yj","  \"",[612,700,702],{"class":701},"sseR_","mcpServers",[612,704,705],{"class":697},"\"",[612,707,708],{"class":691},":",[612,710,711],{"class":691}," {\n",[612,713,715,718,722,724,726],{"class":614,"line":714},3,[612,716,717],{"class":697},"    \"",[612,719,721],{"class":720},"sZMiF","configdirector",[612,723,705],{"class":697},[612,725,708],{"class":691},[612,727,711],{"class":691},[612,729,731,734,738,740,742,744,747,749],{"class":614,"line":730},4,[612,732,733],{"class":697},"      \"",[612,735,737],{"class":736},"srdBf","type",[612,739,705],{"class":697},[612,741,708],{"class":691},[612,743,653],{"class":652},[612,745,746],{"class":622},"http",[612,748,705],{"class":652},[612,750,751],{"class":691},",\n",[612,753,755,757,759,761,763,765,768,770],{"class":614,"line":754},5,[612,756,733],{"class":697},[612,758,674],{"class":736},[612,760,705],{"class":697},[612,762,708],{"class":691},[612,764,653],{"class":652},[612,766,767],{"class":622},"https:\u002F\u002Fmcp.configdirector.com",[612,769,705],{"class":652},[612,771,751],{"class":691},[612,773,775,777,779,781,783],{"class":614,"line":774},6,[612,776,733],{"class":697},[612,778,678],{"class":736},[612,780,705],{"class":697},[612,782,708],{"class":691},[612,784,711],{"class":691},[612,786,788,791,795,797,799,801,804],{"class":614,"line":787},7,[612,789,790],{"class":697},"        \"",[612,792,794],{"class":793},"swQdS","Authorization",[612,796,705],{"class":697},[612,798,708],{"class":691},[612,800,653],{"class":652},[612,802,803],{"class":622},"Bearer ${CONFIGDIRECTOR_TOKEN}",[612,805,806],{"class":652},"\"\n",[612,808,810],{"class":614,"line":809},8,[612,811,812],{"class":691},"      }\n",[612,814,816],{"class":614,"line":815},9,[612,817,818],{"class":691},"    }\n",[612,820,822],{"class":614,"line":821},10,[612,823,824],{"class":691},"  }\n",[612,826,828],{"class":614,"line":827},11,[612,829,830],{"class":691},"}\n",[260,832,833,834,837,838,841],{},"Type ",[271,835,836],{},"\u002Fmcp"," inside Claude Code to check: the server should show as connected with its tools listed. From a terminal, ",[271,839,840],{},"claude mcp list"," shows the same.",[255,843,845],{"id":844},"cursor","Cursor",[260,847,848,849,852,853,856,857,860],{},"Create ",[271,850,851],{},".cursor\u002Fmcp.json"," in the project, or ",[271,854,855],{},"~\u002F.cursor\u002Fmcp.json"," for every project. Cursor expands ",[271,858,859],{},"${env:NAME}"," in this file:",[264,862,864],{"className":682,"code":863,"filename":851,"language":684,"meta":273,"style":273},"{\n  \"mcpServers\": {\n    \"configdirector\": {\n      \"url\": \"https:\u002F\u002Fmcp.configdirector.com\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${env:CONFIGDIRECTOR_TOKEN}\"\n      }\n    }\n  }\n}\n",[271,865,866,870,882,894,912,924,941,945,949,953],{"__ignoreMap":273},[612,867,868],{"class":614,"line":615},[612,869,692],{"class":691},[612,871,872,874,876,878,880],{"class":614,"line":646},[612,873,698],{"class":697},[612,875,702],{"class":701},[612,877,705],{"class":697},[612,879,708],{"class":691},[612,881,711],{"class":691},[612,883,884,886,888,890,892],{"class":614,"line":714},[612,885,717],{"class":697},[612,887,721],{"class":720},[612,889,705],{"class":697},[612,891,708],{"class":691},[612,893,711],{"class":691},[612,895,896,898,900,902,904,906,908,910],{"class":614,"line":730},[612,897,733],{"class":697},[612,899,674],{"class":736},[612,901,705],{"class":697},[612,903,708],{"class":691},[612,905,653],{"class":652},[612,907,767],{"class":622},[612,909,705],{"class":652},[612,911,751],{"class":691},[612,913,914,916,918,920,922],{"class":614,"line":754},[612,915,733],{"class":697},[612,917,678],{"class":736},[612,919,705],{"class":697},[612,921,708],{"class":691},[612,923,711],{"class":691},[612,925,926,928,930,932,934,936,939],{"class":614,"line":774},[612,927,790],{"class":697},[612,929,794],{"class":793},[612,931,705],{"class":697},[612,933,708],{"class":691},[612,935,653],{"class":652},[612,937,938],{"class":622},"Bearer ${env:CONFIGDIRECTOR_TOKEN}",[612,940,806],{"class":652},[612,942,943],{"class":614,"line":787},[612,944,812],{"class":691},[612,946,947],{"class":614,"line":809},[612,948,818],{"class":691},[612,950,951],{"class":614,"line":815},[612,952,824],{"class":691},[612,954,955],{"class":614,"line":821},[612,956,830],{"class":691},[260,958,959],{},"Open Cursor's MCP settings to confirm the server is enabled and its tools are listed. The variable has to be set in the environment Cursor was launched from.",[255,961,963],{"id":962},"vs-code-with-github-copilot","VS Code with GitHub Copilot",[260,965,848,966,969,970,973],{},[271,967,968],{},".vscode\u002Fmcp.json",". The ",[271,971,972],{},"inputs"," entry makes VS Code prompt for the token once and store it securely, so nothing sensitive goes in the file:",[264,975,977],{"className":682,"code":976,"filename":968,"language":684,"meta":273,"style":273},"{\n  \"inputs\": [\n    {\n      \"type\": \"promptString\",\n      \"id\": \"configdirector-token\",\n      \"description\": \"ConfigDirector API token\",\n      \"password\": true\n    }\n  ],\n  \"servers\": {\n    \"configdirector\": {\n      \"type\": \"http\",\n      \"url\": \"https:\u002F\u002Fmcp.configdirector.com\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${input:configdirector-token}\"\n      }\n    }\n  }\n}\n",[271,978,979,983,996,1001,1020,1040,1060,1074,1078,1083,1096,1108,1127,1146,1159,1177,1182,1187,1192],{"__ignoreMap":273},[612,980,981],{"class":614,"line":615},[612,982,692],{"class":691},[612,984,985,987,989,991,993],{"class":614,"line":646},[612,986,698],{"class":697},[612,988,972],{"class":701},[612,990,705],{"class":697},[612,992,708],{"class":691},[612,994,995],{"class":691}," [\n",[612,997,998],{"class":614,"line":714},[612,999,1000],{"class":691},"    {\n",[612,1002,1003,1005,1007,1009,1011,1013,1016,1018],{"class":614,"line":730},[612,1004,733],{"class":697},[612,1006,737],{"class":720},[612,1008,705],{"class":697},[612,1010,708],{"class":691},[612,1012,653],{"class":652},[612,1014,1015],{"class":622},"promptString",[612,1017,705],{"class":652},[612,1019,751],{"class":691},[612,1021,1022,1024,1027,1029,1031,1033,1036,1038],{"class":614,"line":754},[612,1023,733],{"class":697},[612,1025,1026],{"class":720},"id",[612,1028,705],{"class":697},[612,1030,708],{"class":691},[612,1032,653],{"class":652},[612,1034,1035],{"class":622},"configdirector-token",[612,1037,705],{"class":652},[612,1039,751],{"class":691},[612,1041,1042,1044,1047,1049,1051,1053,1056,1058],{"class":614,"line":774},[612,1043,733],{"class":697},[612,1045,1046],{"class":720},"description",[612,1048,705],{"class":697},[612,1050,708],{"class":691},[612,1052,653],{"class":652},[612,1054,1055],{"class":622},"ConfigDirector API token",[612,1057,705],{"class":652},[612,1059,751],{"class":691},[612,1061,1062,1064,1067,1069,1071],{"class":614,"line":787},[612,1063,733],{"class":697},[612,1065,1066],{"class":720},"password",[612,1068,705],{"class":697},[612,1070,708],{"class":691},[612,1072,1073],{"class":697}," true\n",[612,1075,1076],{"class":614,"line":809},[612,1077,818],{"class":691},[612,1079,1080],{"class":614,"line":815},[612,1081,1082],{"class":691},"  ],\n",[612,1084,1085,1087,1090,1092,1094],{"class":614,"line":821},[612,1086,698],{"class":697},[612,1088,1089],{"class":701},"servers",[612,1091,705],{"class":697},[612,1093,708],{"class":691},[612,1095,711],{"class":691},[612,1097,1098,1100,1102,1104,1106],{"class":614,"line":827},[612,1099,717],{"class":697},[612,1101,721],{"class":720},[612,1103,705],{"class":697},[612,1105,708],{"class":691},[612,1107,711],{"class":691},[612,1109,1111,1113,1115,1117,1119,1121,1123,1125],{"class":614,"line":1110},12,[612,1112,733],{"class":697},[612,1114,737],{"class":736},[612,1116,705],{"class":697},[612,1118,708],{"class":691},[612,1120,653],{"class":652},[612,1122,746],{"class":622},[612,1124,705],{"class":652},[612,1126,751],{"class":691},[612,1128,1130,1132,1134,1136,1138,1140,1142,1144],{"class":614,"line":1129},13,[612,1131,733],{"class":697},[612,1133,674],{"class":736},[612,1135,705],{"class":697},[612,1137,708],{"class":691},[612,1139,653],{"class":652},[612,1141,767],{"class":622},[612,1143,705],{"class":652},[612,1145,751],{"class":691},[612,1147,1149,1151,1153,1155,1157],{"class":614,"line":1148},14,[612,1150,733],{"class":697},[612,1152,678],{"class":736},[612,1154,705],{"class":697},[612,1156,708],{"class":691},[612,1158,711],{"class":691},[612,1160,1162,1164,1166,1168,1170,1172,1175],{"class":614,"line":1161},15,[612,1163,790],{"class":697},[612,1165,794],{"class":793},[612,1167,705],{"class":697},[612,1169,708],{"class":691},[612,1171,653],{"class":652},[612,1173,1174],{"class":622},"Bearer ${input:configdirector-token}",[612,1176,806],{"class":652},[612,1178,1180],{"class":614,"line":1179},16,[612,1181,812],{"class":691},[612,1183,1185],{"class":614,"line":1184},17,[612,1186,818],{"class":691},[612,1188,1190],{"class":614,"line":1189},18,[612,1191,824],{"class":691},[612,1193,1195],{"class":614,"line":1194},19,[612,1196,830],{"class":691},[260,1198,1199,1200,1203],{},"Run ",[287,1201,1202],{},"MCP: List Servers"," from the command palette to start the server and see its status. The tools appear in the Copilot chat tools picker in agent mode.",[255,1205,1207],{"id":1206},"windsurf","Windsurf",[260,1209,1210,1211,1214,1215,860],{},"Open the MCP settings from the Cascade panel, or edit ",[271,1212,1213],{},"~\u002F.codeium\u002Fwindsurf\u002Fmcp_config.json",". Windsurf expands ",[271,1216,859],{},[264,1218,1221],{"className":682,"code":1219,"filename":1220,"language":684,"meta":273,"style":273},"{\n  \"mcpServers\": {\n    \"configdirector\": {\n      \"serverUrl\": \"https:\u002F\u002Fmcp.configdirector.com\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${env:CONFIGDIRECTOR_TOKEN}\"\n      }\n    }\n  }\n}\n","mcp_config.json",[271,1222,1223,1227,1239,1251,1270,1282,1298,1302,1306,1310],{"__ignoreMap":273},[612,1224,1225],{"class":614,"line":615},[612,1226,692],{"class":691},[612,1228,1229,1231,1233,1235,1237],{"class":614,"line":646},[612,1230,698],{"class":697},[612,1232,702],{"class":701},[612,1234,705],{"class":697},[612,1236,708],{"class":691},[612,1238,711],{"class":691},[612,1240,1241,1243,1245,1247,1249],{"class":614,"line":714},[612,1242,717],{"class":697},[612,1244,721],{"class":720},[612,1246,705],{"class":697},[612,1248,708],{"class":691},[612,1250,711],{"class":691},[612,1252,1253,1255,1258,1260,1262,1264,1266,1268],{"class":614,"line":730},[612,1254,733],{"class":697},[612,1256,1257],{"class":736},"serverUrl",[612,1259,705],{"class":697},[612,1261,708],{"class":691},[612,1263,653],{"class":652},[612,1265,767],{"class":622},[612,1267,705],{"class":652},[612,1269,751],{"class":691},[612,1271,1272,1274,1276,1278,1280],{"class":614,"line":754},[612,1273,733],{"class":697},[612,1275,678],{"class":736},[612,1277,705],{"class":697},[612,1279,708],{"class":691},[612,1281,711],{"class":691},[612,1283,1284,1286,1288,1290,1292,1294,1296],{"class":614,"line":774},[612,1285,790],{"class":697},[612,1287,794],{"class":793},[612,1289,705],{"class":697},[612,1291,708],{"class":691},[612,1293,653],{"class":652},[612,1295,938],{"class":622},[612,1297,806],{"class":652},[612,1299,1300],{"class":614,"line":787},[612,1301,812],{"class":691},[612,1303,1304],{"class":614,"line":809},[612,1305,818],{"class":691},[612,1307,1308],{"class":614,"line":815},[612,1309,824],{"class":691},[612,1311,1312],{"class":614,"line":821},[612,1313,830],{"class":691},[255,1315,1317],{"id":1316},"openai-codex-cli","OpenAI Codex CLI",[260,1319,1320,1321,1324],{},"Add to ",[271,1322,1323],{},"~\u002F.codex\u002Fconfig.toml",". Codex reads the token from the named environment variable at startup:",[264,1326,1330],{"className":1327,"code":1328,"filename":1323,"language":1329,"meta":273,"style":273},"language-toml shiki shiki-themes material-theme-lighter github-light github-dark","[mcp_servers.configdirector]\nurl = \"https:\u002F\u002Fmcp.configdirector.com\"\nbearer_token_env_var = \"CONFIGDIRECTOR_TOKEN\"\n","toml",[271,1331,1332,1347,1361],{"__ignoreMap":273},[612,1333,1334,1337,1340,1342,1344],{"class":614,"line":615},[612,1335,1336],{"class":691},"[",[612,1338,1339],{"class":618},"mcp_servers",[612,1341,289],{"class":662},[612,1343,721],{"class":618},[612,1345,1346],{"class":691},"]\n",[612,1348,1349,1352,1355,1357,1359],{"class":614,"line":646},[612,1350,1351],{"class":662},"url ",[612,1353,1354],{"class":691},"=",[612,1356,653],{"class":652},[612,1358,767],{"class":622},[612,1360,806],{"class":652},[612,1362,1363,1366,1368,1370,1372],{"class":614,"line":714},[612,1364,1365],{"class":662},"bearer_token_env_var ",[612,1367,1354],{"class":691},[612,1369,653],{"class":652},[612,1371,364],{"class":622},[612,1373,806],{"class":652},[260,1375,1199,1376,1379],{},[271,1377,1378],{},"codex mcp list"," to confirm.",[255,1381,1383],{"id":1382},"gemini-cli","Gemini CLI",[260,1385,1320,1386,1389,1390,1393,1394,1397],{},[271,1387,1388],{},"~\u002F.gemini\u002Fsettings.json",", or to the project's ",[271,1391,1392],{},".gemini\u002Fsettings.json",". Gemini CLI expands ",[271,1395,1396],{},"$NAME"," in string values:",[264,1399,1402],{"className":682,"code":1400,"filename":1401,"language":684,"meta":273,"style":273},"{\n  \"mcpServers\": {\n    \"configdirector\": {\n      \"httpUrl\": \"https:\u002F\u002Fmcp.configdirector.com\",\n      \"headers\": {\n        \"Authorization\": \"Bearer $CONFIGDIRECTOR_TOKEN\"\n      }\n    }\n  }\n}\n","settings.json",[271,1403,1404,1408,1420,1432,1451,1463,1480,1484,1488,1492],{"__ignoreMap":273},[612,1405,1406],{"class":614,"line":615},[612,1407,692],{"class":691},[612,1409,1410,1412,1414,1416,1418],{"class":614,"line":646},[612,1411,698],{"class":697},[612,1413,702],{"class":701},[612,1415,705],{"class":697},[612,1417,708],{"class":691},[612,1419,711],{"class":691},[612,1421,1422,1424,1426,1428,1430],{"class":614,"line":714},[612,1423,717],{"class":697},[612,1425,721],{"class":720},[612,1427,705],{"class":697},[612,1429,708],{"class":691},[612,1431,711],{"class":691},[612,1433,1434,1436,1439,1441,1443,1445,1447,1449],{"class":614,"line":730},[612,1435,733],{"class":697},[612,1437,1438],{"class":736},"httpUrl",[612,1440,705],{"class":697},[612,1442,708],{"class":691},[612,1444,653],{"class":652},[612,1446,767],{"class":622},[612,1448,705],{"class":652},[612,1450,751],{"class":691},[612,1452,1453,1455,1457,1459,1461],{"class":614,"line":754},[612,1454,733],{"class":697},[612,1456,678],{"class":736},[612,1458,705],{"class":697},[612,1460,708],{"class":691},[612,1462,711],{"class":691},[612,1464,1465,1467,1469,1471,1473,1475,1478],{"class":614,"line":774},[612,1466,790],{"class":697},[612,1468,794],{"class":793},[612,1470,705],{"class":697},[612,1472,708],{"class":691},[612,1474,653],{"class":652},[612,1476,1477],{"class":622},"Bearer $CONFIGDIRECTOR_TOKEN",[612,1479,806],{"class":652},[612,1481,1482],{"class":614,"line":787},[612,1483,812],{"class":691},[612,1485,1486],{"class":614,"line":809},[612,1487,818],{"class":691},[612,1489,1490],{"class":614,"line":815},[612,1491,824],{"class":691},[612,1493,1494],{"class":614,"line":821},[612,1495,830],{"class":691},[260,1497,1498],{},"Or add it from the command line:",[264,1500,1502],{"className":606,"code":1501,"language":608,"meta":273,"style":273},"gemini mcp add --transport http configdirector https:\u002F\u002Fmcp.configdirector.com \\\n  --header \"Authorization: Bearer ${CONFIGDIRECTOR_TOKEN}\"\n",[271,1503,1504,1523],{"__ignoreMap":273},[612,1505,1506,1509,1511,1513,1515,1517,1519,1521],{"class":614,"line":615},[612,1507,1508],{"class":618},"gemini",[612,1510,623],{"class":622},[612,1512,626],{"class":622},[612,1514,630],{"class":629},[612,1516,633],{"class":622},[612,1518,636],{"class":622},[612,1520,639],{"class":622},[612,1522,643],{"class":642},[612,1524,1525,1527,1529,1531,1533,1535],{"class":614,"line":646},[612,1526,649],{"class":629},[612,1528,653],{"class":652},[612,1530,656],{"class":622},[612,1532,659],{"class":652},[612,1534,364],{"class":662},[612,1536,665],{"class":652},[260,1538,833,1539,1541],{},[271,1540,836],{}," in Gemini CLI to see the server and its tools.",[255,1543,1545],{"id":1544},"claude-desktop-and-other-tools-without-header-support","Claude Desktop and other tools without header support",[260,1547,1548,1549,1554,1555,1558,1559,1562],{},"Claude Desktop's custom connectors expect OAuth sign-in, which the ConfigDirector server does not offer yet. Until then, bridge it with ",[278,1550,1553],{"href":1551,"rel":1552,"target":283},"https:\u002F\u002Fgithub.com\u002Fgeelen\u002Fmcp-remote",[282],"mcp-remote",", which runs locally and forwards to the hosted server with your token. Edit ",[271,1556,1557],{},"claude_desktop_config.json"," (",[287,1560,1561],{},"Settings → Developer → Edit Config","):",[264,1564,1566],{"className":682,"code":1565,"filename":1557,"language":684,"meta":273,"style":273},"{\n  \"mcpServers\": {\n    \"configdirector\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-remote\", \"https:\u002F\u002Fmcp.configdirector.com\", \"--header\", \"Authorization:${AUTH_HEADER}\"],\n      \"env\": {\n        \"AUTH_HEADER\": \"Bearer \u003Cyour token>\"\n      }\n    }\n  }\n}\n",[271,1567,1568,1572,1584,1596,1616,1666,1679,1697,1701,1705,1709],{"__ignoreMap":273},[612,1569,1570],{"class":614,"line":615},[612,1571,692],{"class":691},[612,1573,1574,1576,1578,1580,1582],{"class":614,"line":646},[612,1575,698],{"class":697},[612,1577,702],{"class":701},[612,1579,705],{"class":697},[612,1581,708],{"class":691},[612,1583,711],{"class":691},[612,1585,1586,1588,1590,1592,1594],{"class":614,"line":714},[612,1587,717],{"class":697},[612,1589,721],{"class":720},[612,1591,705],{"class":697},[612,1593,708],{"class":691},[612,1595,711],{"class":691},[612,1597,1598,1600,1603,1605,1607,1609,1612,1614],{"class":614,"line":730},[612,1599,733],{"class":697},[612,1601,1602],{"class":736},"command",[612,1604,705],{"class":697},[612,1606,708],{"class":691},[612,1608,653],{"class":652},[612,1610,1611],{"class":622},"npx",[612,1613,705],{"class":652},[612,1615,751],{"class":691},[612,1617,1618,1620,1623,1625,1627,1630,1632,1634,1636,1639,1641,1643,1645,1647,1649,1652,1654,1656,1658,1661,1663],{"class":614,"line":754},[612,1619,733],{"class":697},[612,1621,1622],{"class":736},"args",[612,1624,705],{"class":697},[612,1626,708],{"class":691},[612,1628,1629],{"class":691}," [",[612,1631,705],{"class":652},[612,1633,1553],{"class":622},[612,1635,705],{"class":652},[612,1637,1638],{"class":691},",",[612,1640,653],{"class":652},[612,1642,767],{"class":622},[612,1644,705],{"class":652},[612,1646,1638],{"class":691},[612,1648,653],{"class":652},[612,1650,1651],{"class":622},"--header",[612,1653,705],{"class":652},[612,1655,1638],{"class":691},[612,1657,653],{"class":652},[612,1659,1660],{"class":622},"Authorization:${AUTH_HEADER}",[612,1662,705],{"class":652},[612,1664,1665],{"class":691},"],\n",[612,1667,1668,1670,1673,1675,1677],{"class":614,"line":774},[612,1669,733],{"class":697},[612,1671,1672],{"class":736},"env",[612,1674,705],{"class":697},[612,1676,708],{"class":691},[612,1678,711],{"class":691},[612,1680,1681,1683,1686,1688,1690,1692,1695],{"class":614,"line":787},[612,1682,790],{"class":697},[612,1684,1685],{"class":793},"AUTH_HEADER",[612,1687,705],{"class":697},[612,1689,708],{"class":691},[612,1691,653],{"class":652},[612,1693,1694],{"class":622},"Bearer \u003Cyour token>",[612,1696,806],{"class":652},[612,1698,1699],{"class":614,"line":809},[612,1700,812],{"class":691},[612,1702,1703],{"class":614,"line":815},[612,1704,818],{"class":691},[612,1706,1707],{"class":614,"line":821},[612,1708,824],{"class":691},[612,1710,1711],{"class":614,"line":827},[612,1712,830],{"class":691},[260,1714,1715],{},"The header value goes through an environment variable because some desktop clients split arguments on spaces. The same bridge works for any client that can only launch a local command.",[255,1717,1719],{"id":1718},"limits-and-billing","Limits and billing",[565,1721,1722,1730,1733,1741],{},[301,1723,1724,1725,1729],{},"Each tool call counts as one Admin API request against the monthly ",[278,1726,1728],{"href":1727},"\u002Fgetting-started\u002Fpricing-and-billing#the-free-allowance","free allowance",". Connecting and listing tools does not.",[301,1731,1732],{},"An organization can make up to 60 tool calls per minute across all of its tokens. If that limit is exceeded, the assistant receives a message asking it to wait until the next minute.",[301,1734,1735,1736,1740],{},"Any update the assistant makes is validated like any other: type constraints, JSON Schema, and the hourly ",[278,1737,1739],{"href":1738},"\u002Fgetting-started\u002Fjson-schema-validation#hourly-budgets-on-free","JSON Schema budgets"," on Free all apply, and the assistant receives the same messages you would see in the dashboard.",[301,1742,1743,1744,1746],{},"Every update appears in the audit log of the config or segment with the source ",[287,1745,240],{}," and the token owner's name.",[255,1748,1750],{"id":1749},"security-notes","Security notes",[565,1752,1753,1761,1764,1767],{},[301,1754,1755,1756,675,1758,1760],{},"Prefer environment variables or your editor's secret storage over tokens written into config files. Project-level files such as ",[271,1757,602],{},[271,1759,851],{}," are usually committed, do not add an API token to them.",[301,1762,1763],{},"Give each tool its own token with the smallest permission set needed. Revoke the token from the API tokens page when you are no longer using the tool.",[301,1765,1766],{},"You can rename a token or change its permissions from the API tokens page without replacing the token. Assistants see newly allowed tools after they reconnect.",[301,1768,1769],{},"The MCP server never returns SDK keys or API tokens.",[1771,1772,1773],"style",{},"html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .stzsN, html code.shiki .stzsN{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sseR_, html code.shiki .sseR_{--shiki-light:#9C3EDA;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .swQdS, html code.shiki .swQdS{--shiki-light:#E53935;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":273,"searchDepth":646,"depth":646,"links":1775},[1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787],{"id":257,"depth":646,"text":258},{"id":295,"depth":646,"text":296},{"id":382,"depth":646,"text":383},{"id":587,"depth":646,"text":588},{"id":844,"depth":646,"text":845},{"id":962,"depth":646,"text":963},{"id":1206,"depth":646,"text":1207},{"id":1316,"depth":646,"text":1317},{"id":1382,"depth":646,"text":1383},{"id":1544,"depth":646,"text":1545},{"id":1718,"depth":646,"text":1719},{"id":1749,"depth":646,"text":1750},"Manage projects, configs, targeting rules, and segments from AI coding tools through the Model Context Protocol","md",null,{"modifiedAt":1792},"2026-10-12T00:22:49.000Z",{"title":240,"icon":243},{"title":246,"description":1788},"qTTR8Lo9Fb2s7PJ_0cEJcRIqTMZLp1iwJWUJBmIlZhU",[1797,1790],{"title":235,"path":236,"stem":237,"description":1798,"icon":238,"children":-1},"Manage projects, environments, configs, tags, targeting rules, and segments as code with the ConfigDirector Terraform provider",1791783861096]