mcpConnectorsFromRoomServices function

List<Connector> mcpConnectorsFromRoomServices({
  1. required Iterable<ServiceSpec> services,
  2. String? agentName,
})

Implementation

List<Connector> mcpConnectorsFromRoomServices({required Iterable<ServiceSpec> services, String? agentName}) {
  final connectors = <Connector>[];

  for (final service in services) {
    final filter = service.metadata.annotations["meshagent.agent.filter"];
    if (filter != null && filter != agentName) {
      continue;
    }

    for (final port in service.ports) {
      for (final endpoint in port.endpoints) {
        final mcp = endpoint.mcp;
        if (mcp == null) {
          continue;
        }

        connectors.add(
          Connector(
            name: mcp.label,
            server: MCPServer(
              serverLabel: mcp.label,
              serverUrl: _roomServiceMcpServerUrl(service: service, port: port, endpoint: endpoint),
              headers: _headersFromEndpointSpec(mcp.headers),
              requireApproval: mcp.requireApproval,
              openaiConnectorId: mcp.openaiConnectorId,
            ),
            oauth: mcp.oauth,
          ),
        );
      }
    }
  }

  return connectors;
}