DEV Community

ShellSage AI
ShellSage AI

Posted on • Originally published at shellsageai.com

How I automate mcp registry complete kit for AI agent workflows

Building and Managing MCP Servers Without Losing Your Mind

If you've been working with Claude's Model Context Protocol lately, you've probably hit the same wall I did around week two. You build a working MCP server, get it registered, things look fine — then you need to add another one. Then another. Suddenly you're juggling JSON config files across three different machines, manually tracking which servers are running, and debugging why Claude can't find a tool that you know you registered yesterday. The mental overhead compounds fast.

The deeper problem is that MCP is still young infrastructure. The protocol itself is solid, but the tooling around managing MCP servers at any meaningful scale is basically nonexistent in the official docs. You get the spec, some examples, and then you're on your own figuring out how to version your server definitions, handle environment-specific configs, or recover when your registry gets out of sync with what's actually running.

What Most Developers Try First

The typical approach is a folder of shell scripts and a manually maintained claude_desktop_config.json. That works fine for one or two servers. Some developers move to a spreadsheet tracking server names, ports, and capabilities. Others try to shoehorn this into their existing service registry (Consul, etcd) which is massive overkill and introduces its own dependency chain. None of these approaches give you a coherent way to define, validate, register, and audit MCP servers from a single workflow — you're always stitching together partial solutions.

A More Structured Approach

The MCP Registry Complete Kit is a set of templates, scripts, and configuration schemas that give you a consistent structure for managing multiple MCP servers. The core of it is a registry.yaml schema that acts as your source of truth — every server definition lives there with its name, transport type, command, environment requirements, and tool manifest. From that single file, generation scripts produce the correct claude_desktop_config.json format automatically.

servers:
  filesystem-local:
    transport: stdio
    command: npx
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/Users/dev/projects"]
    env:
      NODE_ENV: production
    tools:
      - read_file
      - write_file
      - list_directory
Enter fullscreen mode Exit fullscreen mode

The kit also includes validation tooling that checks your registry against the MCP spec before you attempt registration. This catches the annoying class of errors where a malformed args array or missing environment variable causes a silent failure — Claude just reports the tool as unavailable and you spend 40 minutes reading logs. The validator runs as a pre-commit hook or standalone CLI command, your choice.

There's also a set of environment profile templates (local dev, staging, production) that let you maintain one logical server definition while swapping out paths, credentials, and transport configs per environment. This matters more than it sounds when you're developing an MCP server on your laptop that will eventually run in a team setup where everyone has different home directories and different Node versions. The profile system handles variable substitution so you're not maintaining three copies of the same server config with minor differences.

Getting Started

  • Clone the kit and copy registry.template.yaml to registry.yaml in your project root
  • Define your servers using the schema — start with one server you already have working
  • Run ./scripts/validate.sh registry.yaml to check for spec compliance issues
  • Run ./scripts/generate-config.sh --profile local to produce your claude_desktop_config.json
  • Copy or symlink the generated config to ~/Library/Application Support/Claude/ (macOS) or the equivalent path on your OS
  • Restart Claude Desktop and verify your tools appear — then commit your registry.yaml as the canonical source

The audit script (./scripts/audit.sh) is worth running after setup. It compares your registry against what's currently in Claude's config file and flags any drift — servers defined in config but not in your registry, or registry entries that never made it into config.

Once you're managing more than two or three MCP servers, having this kind of structured approach saves real time. The ad-hoc config editing phase is where most people introduce subtle bugs that are genuinely hard to trace. A registry-first workflow makes the whole thing reproducible and version-controllable, which is what you actually need when MCP servers start becoming a real part of your development infrastructure.


Full toolkit at ShellSage AI

claude #ai #developer-tools

Top comments (0)