Hi team! We’re exploring the best way to let folks...
# ask-ai
c
Hi team! We’re exploring the best way to let folks at my company use our internal ChatGPT (KAIT) to ask natural-language questions about GrowthBook (e.g., “what’s live?”, “show results for X”, “which variant is winning?”). I’ve seen the REST API and also the GrowthBook MCP server. From your experience, what’s the recommended architecture for a production setup? • MCP vs direct REST: which do you suggest for reliability/maintenance? • Auth: PAT vs service account, and any best practices for scoping read-only? • Data hygiene: default filters for archived / “to-be-deleted”, pagination, and rate limits? • Freshness: suggested caching window vs “force refresh” approach? • Interpretation: guidance for reporting “best performing” / significance in a simple, non-technical way? • Any sample configs, code snippets, or pitfalls to avoid (WAF/IP allow-list, timeouts, etc.)? Goal is something simple and stable that non-technical stakeholders can use. Thanks for any pointers or links!
s
Hey @cuddly-boots-38797 This is an interesting use case. I think MCP would be a good candidate here: • It uses the API(s) + context engineering under the hood • It's used totally locally • It can be used with PATs, which means permissions are user scoped by default • It can be set up in a few minutes for a POC Potential downsides • May not have all the functionality you need • Setup for non-technical users can be more complex • Requires a client like Claude Code or something that can use MCP Happy to chat more about this with you
c
Thank you so much for your reply Ryan. I have access to cursor and basic python coding knowledge. I am trying to learn and develop this for the business. Any help or suggestions would be really helpful.
@strong-mouse-55694, Thank you
s
Hey, hey! We have some instructions on how to install for Cursor here: https://docs.growthbook.io/integrations/mcp#cursor Note that you'll need Node installed on your system, too. If you run into issues, lmk. happy to help
c
Hi @strong-mouse-55694, I have added the MCP server to cursor...i also have node installed on my system...but when i try to get exp[eriments list...it feels like it is bringing some random experiments that aren't in our growthbook
s
That sounds weird. Can you share your configuration in Cursor (without the api key) and an example of the experiment that it brings back?
c
@strong-mouse-55694, { "mcpServers": { "growthbook": { "command": "cmd", "args": ["/c", "npx", "-y", "@growthbook/mcp@latest"], "env": { "GB_API_KEY": , "GB_API_URL": , "GB_APP_ORIGIN": , "GB_EMAIL": } } } This is one of the experiments it is bringing back which is not in our growthbook "experiments": [ { "id": "exp_1jjzy7tlpia3sd1", "trackingKey": "24233380772", "name": "play_gaming - next game maas", "type": "standard", "project": "", "hypothesis": "", "description": "", "tags": [ "imported-from-optimizely" ], "owner": "u_11q13mauloybe39w", "dateCreated": "2023-11-28T115248.470Z", "dateUpdated": "2023-11-28T115248.470Z", "archived": true, "status": "stopped", "autoRefresh": true, "hashAttribute": "id", "hashVersion": 2, "variations": [ { "variationId": "var_lpia38gs", "key": "24175812048", "name": "Original", "description": "", "screenshots": [] }, { "variationId": "var_lpia38gt", "key": "24231580690", "name": "Variation #1", "description": "", "screenshots": [] } ], "phases": [ { "name": "Main", "dateStarted": "2023-05-16T000000.000Z", "dateEnded": "2023-06-28T235900.000Z", "reasonForStopping": "", "seed": "24233380772", "coverage": 1, "trafficSplit": [ { "variationId": "var_lpia38gs", "weight": 0.5 }, { "variationId": "var_lpia38gt", "weight": 0.5 } ], "targetingCondition": "", "prerequisites": [], "savedGroupTargeting": [] } ], "settings": { "datasourceId": "ds_11q13mauloybkj5s", "assignmentQueryId": "tbl_lpcht3jk", "experimentId": "24233380772", "segmentId": "", "queryFilter": "", "inProgressConversions": "include", "attributionModel": "firstExposure", "statsEngine": "frequentist", "goals": [ { "metricId": "met_1jjzy7tlpi94jso", "overrides": {} } ], "secondaryMetrics": [], "guardrails": [], "regressionAdjustmentEnabled": false, "sequentialTestingEnabled": false, "sequentialTestingTuningParameter": 5000 }, "shareLevel": "organization", "linkedFeatures": [], "hasVisualChangesets": false, "hasURLRedirects": false, "customFields": {} },
s
Just noting the resolution here. Turned out to be an old experiment. Currently, the API returns oldest experiments first, which the MCP server also does. Looking into changing MCP Server this week, to return most recent experiments by default.