MCP configuration management by CLI

Published Tue, April 1, 2025 ∙ Product, AI ∙ by George Anderson

Or, general grouchiness on the state of MCP hosts, and general excitement about MCPs more broadly

By George Anderson and Johanan Ottensooser

We were obviously pretty excited by MCPs when we started using them. But there remained a few barriers that kind of stymied our user experience. We didn't want the users of our CLI products to hit those same jagged edges.

In this blog post, I'll write about some of those jagged edges in the two clients we are supporting:

ComplaintAffectsFixed by our CLI
Setting up config JSONs can be annoyingClaude Desktop, Cursor (Project), Cursor (Global)
Keeping track of your config JSONs and updating them allClaude Desktop, Cursor (Project), Cursor (Global)
Global MCP configurations, project based MCPsClaude Desktop, Cursor (Global)
Updating your MCPs❗Claude Desktop, Cursor (Project), Cursor (Global)❌, we're just venting
Toggling Tool SelectionClaude Desktop, Cursor (Project), Cursor (Global)
PATH access❗Claude Desktop, Cursor (Project), Cursor (Global)🟠, Stay posted

General issues

Whilst there is a standard for mcp config JSON, the files live in different places for different clients, and can be fiddly

We allow you to create a project with our MCP pre-configured aurora init, and if you have an existing project, you can create a configuration for our MCP for it with aurora setup --mcp <MCP>.

Having to change each config JSON if you want to change your MCPs settings

Each of our MCP configurations managed by our CLI is logged in our CLI's config.toml, alongside the users selected configurations. If the user changes their configurations (e.g. chooses to enable experimental tools with aurora config tools experimental, then that change will be propagated to all MCPs tracked by our CLI.

Many CLI clients are globally configured, but many MCPs have a project or directory scope

Quite a few of the MCPs we use are (or should be) restricted in scope to a project or a directory. The one we're building is no different.

But many MCP clients are globally configured, so if I want to work on a different project, I need to edit the global config (and, in some cases, restart the software entirely: looking at you Claude!).

We love what Cursor is doing here, allowing project level configurations for your projects, but until then:

We've allowed our user's to change their configurations via CLI.

"Focus"

aurora config focus

This allows the user to easily toggle which project their global MCPs have in their scope.

If they change the "focus"; this will be propagated to each global MCP config set up by our CLI.

Tool choice

aurora config tools [EXPERIMENTAL_PREFERENCE]

This allows the user to select which tools they want to use—for now, we've kept the options pretty simple, our release tools (the Analytics Engineer suite of tools) and all the rest, which are experimental. In the future, we could add flags for any single tool or group of tools.

If you change your preference on tooling, this change will be propagated by the CLI to all MCPs configured by the CLI.

Client specific issues: Claude Desktop

"Have you tried turning it on and off again"

Claude does allow you to command + r refresh, but it seems, at best, to be temperamental. For real—Claude, would love a fix for this.

Our CLI doesn't fix this, just venting.

Reconfiguring your MCPs

Want to reconfigure your MCPs in Claude? 1. Claude > Settings > Developer > Edit Config, 2. open the file up in a code editor, 3. Edit, 4. restart Claude.

We don't fix all of these steps, but you can reconfigure our MCPs from our CLI (changing keys, toolset, "focus", models used by our agentic tools, and more. You'll still have to restart your Claude.

PATH inheritence

Unlike Cursor, Claude launched from the GUI does not inherit your full PATH, which means that the tools that defer to other programs may not be able to find them. We do the work of sourcing the absolute paths of necessary programs that our MCP needs and provides them to the mcp configuration file.

The only workaround right now that avoids the need to pass in the absolute paths is to open Claude from the directory that contains the project.

open -a Claude

Client specific issues: Cursor

Refreshing your MCPs

We really love what Cursor's doing with MCPs.

✅ Being able to toggle MCPs on and off (🟠 though no tool selection yet)

✅ Having project-specific MCP configs

✅ Being able to refresh your MCPs without restarting the whole program

The only real complaint we have, which is small, is that Cursor doesn't watch its config files. After we change a /.cursor/mcp.json file and save, that isn't picked up automatically by Cursor, we need to go to the MCP settings and refresh the MCP.

Postscript about the pace of AI

The AI world changes so much so quickly, these gripes are current as of 1 April 2025, and we assume that by next week they will be completely out of date!

Careers
We're hiring
2025 All rights reserved