Skip to content

Agent kinds parity

Configured agent kinds (merged cfg.Agents after SetupAgents) are exposed read-only through three surfaces with the same JSON envelope:

  • Native tool: list_agent_kinds
  • HTTP: GET /v1/agent-kinds (Bearer auth; bmo serve / bmo up)
  • MCP: bmo_list_agent_kinds (list in options.mcp_server.exposed_tools; requires coordinator-backed MCP runtime)

Top-level object:

{ "agent_kinds": [ ... ] }

Example shape:

{
"agent_kinds": [
{
"id": "coder",
"name": "Coder",
"model": "large",
"mesh_capabilities": ["code", "review"],
"allowed_tools": ["view", "grep", "bash"]
}
]
}

Field semantics mirror the user-facing Agent kinds overview. The feature page explains the registry view; this parity page keeps the cross-surface JSON envelope aligned.

  • The native tool is available inside agent runs when the active tool policy allows list_agent_kinds.
  • The HTTP route requires the BMO HTTP server and Bearer auth.
  • The MCP tool is opt-in through options.mcp_server.exposed_tools and requires the coordinator-backed MCP runtime.
  • All three surfaces are read-only snapshots of the effective merged config after agent setup. They do not create, update, or delete agent kinds.
  • HTTP handler: internal/server/routes_agent_kinds.go
  • MCP tool: internal/mcp/tools/agent_kinds.go
  • Native tool: internal/agent/tools/list_agent_kinds.go