Skip to content

Symbia-Labs/mcpops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mcpops

Universal MCP operations CLI — manage any MCP gateway from one control plane.

mcpops is the Terraform of the MCP ecosystem. Instead of building another gateway, it manages them all through a provider-agnostic plugin architecture.

mcpops status # unified status across all backends mcpops tools list # discover tools across all instances mcpops connect factory edge --mode bridge # federate between gateways mcpops discover factory mqtt # discover IoT devices 

Why mcpops

The MCP gateway space is crowded — MetaMCP, Microsoft MCP Gateway, mcp-iot-gateway, and dozens more. Each has its own CLI, API, and management model. mcpops unifies them behind a single control plane.

  • Provider-agnostic: One CLI for all your MCP infrastructure
  • Config-as-code: YAML config for your entire MCP topology
  • Federation: Connect instances across providers (peer or bridge mode)
  • Discovery: Find tools and devices across all backends
  • Extensible: Add new providers with a simple TypeScript interface

Install

npm install -g mcpops

Or run directly:

npx mcpops --help

Quick Start

1. Add your gateways

# Add an IoT gateway mcpops provider add iot-gateway factory http://192.168.1.100:45678/mcp \ --auth-type api-key --auth-key igt_xxxx # Add a MetaMCP instance mcpops provider add metamcp staging http://localhost:12008 \ --auth-type api-key --auth-key sk_mt_xxxx

2. Check status

mcpops status
mcpops status INSTANCE PROVIDER STATUS TOOLS PEERS ────────────────────────────────────────────────────── factory iot-gateway ● connected 42 tools 3 peers staging metamcp ● connected 18 tools 5 peers 

3. Discover tools

mcpops tools list mcpops tools list --instance factory mcpops tools call factory iot_discover '{"connection":"mqtt"}'

4. Federate instances

mcpops connect factory staging --mode bridge --live

5. Discover devices

mcpops discover factory mqtt

Commands

Command Description
mcpops status [instance] Unified status across all instances
mcpops provider list List providers and configured instances
mcpops provider add <provider> <name> <url> Add a gateway instance
mcpops provider remove <name> Remove an instance
mcpops tools list [-i instance] List tools across instances
mcpops tools call <instance> <tool> [args] Call a tool
mcpops connect <from> <to> [--mode] Federate two instances
mcpops disconnect <from> <to> Remove federation
mcpops discover <instance> [scope] Discover devices/services
mcpops config show Display configuration
mcpops config export Export config as YAML
mcpops config validate Validate config file

Configuration

Config lives at ~/.config/mcpops/config.yaml:

version: 1 instances: factory: provider: iot-gateway url: http://192.168.1.100:45678/mcp auth: type: api-key key: igt_xxxx staging: provider: metamcp url: http://localhost:12008 auth: type: api-key key: sk_mt_xxxx federations: - from: factory to: staging mode: bridge

Override the config path:

MCPOPS_CONFIG=./my-config.yaml mcpops status

Providers

Built-in

Provider Description Federation Discovery
iot-gateway mcp-iot-gateway ✅ peer + bridge ✅ IoT devices
metamcp MetaMCP aggregator

Writing a Provider

Implement the Provider abstract class:

import { Provider } from "mcpops"; export class MyGatewayProvider extends Provider { readonly name = "my-gateway"; readonly version = "1.0.0"; readonly capabilities = { canFederate: false, canBridge: false, canDiscover: false, supportsAuth: true, supportsNamespaces: false, }; async connect(config) { /* ... */ } async disconnect(instanceId) { /* ... */ } async healthCheck(instanceId) { /* ... */ } async status(instanceId) { /* ... */ } listInstances() { /* ... */ } async listTools(instanceId) { /* ... */ } async callTool(instanceId, tool, args) { /* ... */ } async shutdown() { /* ... */ } }

License

MIT — Symbia Labs

About

Universal MCP operations CLI — manage any MCP gateway from one control plane

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors