{
  "name": "grpcb_add_sum",
  "display_name": "Add Numbers (grpcb.in)",
  "category": "math",
  "protocol": "grpc",
  "target": {
    "kind": "grpc",
    "server_addr": "http://grpcb.in:9000",
    "package": "addsvc",
    "service": "Add",
    "method": "Sum",
    "descriptor_ref": "desc_addsvc_grpcb",
    "descriptor_set_b64": "CqQKCgxhZGRzdmMucHJvdG8SBmFkZHN2YyIoCgpTdW1SZXF1ZXN0EgwKAWEYASABKANSAWESDAoBYhgCIAEoA1IBYiIqCghTdW1SZXBseRIMCgF2GAEgASgDUgF2EhAKA2VychgCIAEoCVIDZXJyIisKDUNvbmNhdFJlcXVlc3QSDAoBYRgBIAEoCVIBYRIMCgFiGAIgASgJUgFiIi0KC0NvbmNhdFJlcGx5EgwKAXYYASABKAlSAXYSEAoDZXJyGAIgASgJUgNlcnIybAoDQWRkEi0KA1N1bRISLmFkZHN2Yy5TdW1SZXF1ZXN0GhAuYWRkc3ZjLlN1bVJlcGx5IgASNgoGQ29uY2F0EhUuYWRkc3ZjLkNvbmNhdFJlcXVlc3QaEy5hZGRzdmMuQ29uY2F0UmVwbHkiAErjBwoGEgQAACMBCggKAQwSAwAAEgoICgECEgMCAA8KKQoCBgASBAUACwEaHSBUaGUgQWRkIHNlcnZpY2UgZGVmaW5pdGlvbi4KCgoKAwYAARIDBQgLCiEKBAYAAgASAwcCLBoUIFN1bXMgdHdvIGludGVnZXJzLgoKDAoFBgACAAESAwcGCQoMCgUGAAIAAhIDBwsVCgwKBQYAAgADEgMHICgKJwoEBgACARIDCgI1GhogQ29uY2F0ZW5hdGVzIHR3byBzdHJpbmdzCgoMCgUGAAIBARIDCgYMCgwKBQYAAgECEgMKDhsKDAoFBgACAQMSAwomMQo2CgIEABIEDgARARoqIFRoZSBzdW0gcmVxdWVzdCBjb250YWlucyB0d28gcGFyYW1ldGVycy4KCgoKAwQAARIDDggSCgsKBAQAAgASAw8CDgoMCgUEAAIABRIDDwIHCgwKBQQAAgABEgMPCAkKDAoFBAACAAMSAw8MDQoLCgQEAAIBEgMQAg4KDAoFBAACAQUSAxACBwoMCgUEAAIBARIDEAgJCgwKBQQAAgEDEgMQDA0KRgoCBAESBBQAFwEaOiBUaGUgc3VtIHJlc3BvbnNlIGNvbnRhaW5zIHRoZSByZXN1bHQgb2YgdGhlIGNhbGN1bGF0aW9uLgoKCgoDBAEBEgMUCBAKCwoEBAECABIDFQIOCgwKBQQBAgAFEgMVAgcKDAoFBAECAAESAxUICQoMCgUEAQIAAxIDFQwNCgsKBAQBAgESAxYCEQoMCgUEAQIBBRIDFgIICgwKBQQBAgEBEgMWCQwKDAoFBAECAQMSAxYPEAo5CgIEAhIEGgAdARotIFRoZSBDb25jYXQgcmVxdWVzdCBjb250YWlucyB0d28gcGFyYW1ldGVycy4KCgoKAwQCARIDGggVCgsKBAQCAgASAxsCDwoMCgUEAgIABRIDGwIICgwKBQQCAgABEgMbCQoKDAoFBAICAAMSAxsNDgoLCgQEAgIBEgMcAg8KDAoFBAICAQUSAxwCCAoMCgUEAgIBARIDHAkKCgwKBQQCAgEDEgMcDQ4KSwoCBAMSBCAAIwEaPyBUaGUgQ29uY2F0IHJlc3BvbnNlIGNvbnRhaW5zIHRoZSByZXN1bHQgb2YgdGhlIGNvbmNhdGVuYXRpb24uCgoKCgMEAwESAyAIEwoLCgQEAwIAEgMhAg8KDAoFBAMCAAUSAyECCAoMCgUEAwIAARIDIQkKCgwKBQQDAgADEgMhDQ4KCwoEBAMCARIDIgIRCgwKBQQDAgEFEgMiAggKDAoFBAMCAQESAyIJDAoMCgUEAwIBAxIDIg8QYgZwcm90bzM="
  },
  "input_schema": {
    "type": "object",
    "required": true,
    "fields": {
      "a": {
        "type": "integer",
        "required": true
      },
      "b": {
        "type": "integer",
        "required": true
      }
    }
  },
  "output_schema": {
    "type": "object",
    "required": true,
    "fields": {
      "sum": {
        "type": "integer",
        "required": true
      },
      "error_message": {
        "type": "string",
        "required": false
      }
    }
  },
  "input_mapping": {
    "rules": [
      {
        "source": "$.mcp.a",
        "target": "$.request.grpc.a",
        "required": true
      },
      {
        "source": "$.mcp.b",
        "target": "$.request.grpc.b",
        "required": true
      }
    ]
  },
  "output_mapping": {
    "rules": [
      {
        "source": "$.response.data.v",
        "target": "$.output.sum",
        "required": true,
        "transform": {
          "kind": "to_number"
        }
      },
      {
        "source": "$.response.data.err",
        "target": "$.output.error_message",
        "required": false
      }
    ]
  },
  "execution_config": {
    "timeout_ms": 5000,
    "headers": {},
    "protocol_options": {
      "grpc": {
        "use_tls": false
      }
    }
  },
  "tool_description": {
    "title": "Add Numbers (grpcb.in)",
    "description": "Call the public grpcb.in addsvc.Add/Sum unary RPC through Crank.",
    "tags": [
      "grpc",
      "math",
      "smoke"
    ],
    "examples": [
      {
        "input": {
          "a": 7,
          "b": 5
        }
      }
    ]
  }
}
