Skip to content

Commit cd69f04

Browse files
sararobcopybara-github
authored andcommitted
feat: Add Agent Platform MCP support to async generate_content
PiperOrigin-RevId: 925359496
1 parent 7d1480a commit cd69f04

3 files changed

Lines changed: 79 additions & 9 deletions

File tree

Google.GenAI/Caches.cs

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,23 @@ internal JsonNode ListCachedContentsResponseFromVertex(JsonNode fromObject,
654654
return toObject;
655655
}
656656

657+
internal JsonNode McpServerToVertex(JsonNode fromObject, JsonObject parentObject) {
658+
JsonObject toObject = new JsonObject();
659+
660+
if (!Common.IsZero(Common.GetValueByPath(fromObject, new string[] { "name" }))) {
661+
throw new NotSupportedException(
662+
"name parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.");
663+
}
664+
665+
if (!Common.IsZero(
666+
Common.GetValueByPath(fromObject, new string[] { "streamableHttpTransport" }))) {
667+
throw new NotSupportedException(
668+
"streamableHttpTransport parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.");
669+
}
670+
671+
return toObject;
672+
}
673+
657674
internal JsonNode PartToMldev(JsonNode fromObject, JsonObject parentObject) {
658675
JsonObject toObject = new JsonObject();
659676

@@ -1011,9 +1028,15 @@ internal JsonNode ToolToVertex(JsonNode fromObject, JsonObject parentObject) {
10111028
Common.GetValueByPath(fromObject, new string[] { "urlContext" }));
10121029
}
10131030

1014-
if (!Common.IsZero(Common.GetValueByPath(fromObject, new string[] { "mcpServers" }))) {
1015-
throw new NotSupportedException(
1016-
"mcpServers parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.");
1031+
if (Common.GetValueByPath(fromObject, new string[] { "mcpServers" }) != null) {
1032+
JsonArray keyArray =
1033+
(JsonArray)Common.GetValueByPath(fromObject, new string[] { "mcpServers" });
1034+
JsonArray result = new JsonArray();
1035+
1036+
foreach (var record in keyArray) {
1037+
result.Add(McpServerToVertex(Common.ParseToJsonNode(record), toObject));
1038+
}
1039+
Common.SetValueByPath(toObject, new string[] { "mcpServers" }, result);
10171040
}
10181041

10191042
return toObject;

Google.GenAI/LiveConverters.cs

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1393,6 +1393,23 @@ internal JsonNode LiveServerMessageFromVertex(JsonNode fromObject, JsonObject pa
13931393
return toObject;
13941394
}
13951395

1396+
internal JsonNode McpServerToVertex(JsonNode fromObject, JsonObject parentObject) {
1397+
JsonObject toObject = new JsonObject();
1398+
1399+
if (!Common.IsZero(Common.GetValueByPath(fromObject, new string[] { "name" }))) {
1400+
throw new NotSupportedException(
1401+
"name parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.");
1402+
}
1403+
1404+
if (!Common.IsZero(
1405+
Common.GetValueByPath(fromObject, new string[] { "streamableHttpTransport" }))) {
1406+
throw new NotSupportedException(
1407+
"streamableHttpTransport parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.");
1408+
}
1409+
1410+
return toObject;
1411+
}
1412+
13961413
internal JsonNode PartToMldev(JsonNode fromObject, JsonObject parentObject) {
13971414
JsonObject toObject = new JsonObject();
13981415

@@ -1736,9 +1753,15 @@ internal JsonNode ToolToVertex(JsonNode fromObject, JsonObject parentObject) {
17361753
Common.GetValueByPath(fromObject, new string[] { "urlContext" }));
17371754
}
17381755

1739-
if (!Common.IsZero(Common.GetValueByPath(fromObject, new string[] { "mcpServers" }))) {
1740-
throw new NotSupportedException(
1741-
"mcpServers parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.");
1756+
if (Common.GetValueByPath(fromObject, new string[] { "mcpServers" }) != null) {
1757+
JsonArray keyArray =
1758+
(JsonArray)Common.GetValueByPath(fromObject, new string[] { "mcpServers" });
1759+
JsonArray result = new JsonArray();
1760+
1761+
foreach (var record in keyArray) {
1762+
result.Add(McpServerToVertex(Common.ParseToJsonNode(record), toObject));
1763+
}
1764+
Common.SetValueByPath(toObject, new string[] { "mcpServers" }, result);
17421765
}
17431766

17441767
return toObject;

Google.GenAI/Models.cs

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3200,6 +3200,24 @@ internal JsonNode MaskReferenceConfigToVertex(JsonNode fromObject, JsonObject pa
32003200
return toObject;
32013201
}
32023202

3203+
internal JsonNode McpServerToVertex(JsonNode fromObject, JsonObject parentObject,
3204+
JsonNode rootObject) {
3205+
JsonObject toObject = new JsonObject();
3206+
3207+
if (!Common.IsZero(Common.GetValueByPath(fromObject, new string[] { "name" }))) {
3208+
throw new NotSupportedException(
3209+
"name parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.");
3210+
}
3211+
3212+
if (!Common.IsZero(
3213+
Common.GetValueByPath(fromObject, new string[] { "streamableHttpTransport" }))) {
3214+
throw new NotSupportedException(
3215+
"streamableHttpTransport parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.");
3216+
}
3217+
3218+
return toObject;
3219+
}
3220+
32033221
internal JsonNode ModelFromMldev(JsonNode fromObject, JsonObject parentObject,
32043222
JsonNode rootObject) {
32053223
JsonObject toObject = new JsonObject();
@@ -4108,9 +4126,15 @@ internal JsonNode ToolToVertex(JsonNode fromObject, JsonObject parentObject,
41084126
Common.GetValueByPath(fromObject, new string[] { "urlContext" }));
41094127
}
41104128

4111-
if (!Common.IsZero(Common.GetValueByPath(fromObject, new string[] { "mcpServers" }))) {
4112-
throw new NotSupportedException(
4113-
"mcpServers parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.");
4129+
if (Common.GetValueByPath(fromObject, new string[] { "mcpServers" }) != null) {
4130+
JsonArray keyArray =
4131+
(JsonArray)Common.GetValueByPath(fromObject, new string[] { "mcpServers" });
4132+
JsonArray result = new JsonArray();
4133+
4134+
foreach (var record in keyArray) {
4135+
result.Add(McpServerToVertex(Common.ParseToJsonNode(record), toObject, rootObject));
4136+
}
4137+
Common.SetValueByPath(toObject, new string[] { "mcpServers" }, result);
41144138
}
41154139

41164140
return toObject;

0 commit comments

Comments
 (0)