API → MCP Bridge

The API → MCP Bridge (MCP Tool Gateway) lets you expose any REST API as an agent-callable MCP tool. Tool definitions are written in YAML and can be hot-reloaded without restarting the server. The gateway supports internal Elixir handlers and external HTTP endpoints.

How It Works

Tool definitions are stored as YAML files in the acs/acstools/ directory. Each definition specifies the tool name, input schema, handler type (internal Elixir module or external REST endpoint), and access level. The gateway routes incoming tool calls to the appropriate handler.

Key Capabilities

  • YAML-defined — Tool definitions are plain YAML files. No code changes needed to add or modify tools.
  • Hot-reloadable — Tools can be added, removed, or modified without restarting the server. Changes are picked up instantly.
  • Two handler types — Internal Elixir modules for compiled handlers, and REST endpoints for bridging external APIs.
  • Access control — Each tool has an access level for fine-grained permission management.

Example Tool Definition

acs.yaml
tools:
  acs_create_work:
    description: "Create a new work unit"
    input:
      type: "object"
      properties:
        agent_id:
          type: "string"
          description: "ID of the agent creating the work"
        title:
          type: "string"
          description: "Title of the work unit"
    handler:
      type: "internal"
      module: "StewardACS.TaskManager"
    access: "agent"

Cluster Coordination

Steward supports multiple independent clusters, each identified by a cluster name. Operations are scoped by cluster, enabling separate environments for development, staging, and production — or independent clusters per team.

  • Multi-cluster support with isolated namespaces
  • Operations scoped by ACS_CLUSTER_NAME
  • Independent environments per team or stage
  • Clusters share the same binary but maintain separate state

MCP Tools

ToolDescription
acs_refresh_toolsHot-reload tool definitions from YAML files
acs_app_configureConfigure an external app at runtime
acs_app_listList all configured external apps
acs_app_removeRemove a configured external app
---