Skip to content

Commit ed144a5

Browse files
committed
fix: update main.py files with gateway conditional imports
All 5 framework main.py files now use Handlebars conditionals to import the correct MCP client function based on hasGateway flag. Fix snakeCase helper to handle all special characters.
1 parent 7b014fa commit ed144a5

7 files changed

Lines changed: 137 additions & 11 deletions

File tree

src/assets/__tests__/__snapshots__/assets.snapshot.test.ts.snap

Lines changed: 68 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -918,7 +918,11 @@ from autogen_agentchat.agents import AssistantAgent
918918
from autogen_core.tools import FunctionTool
919919
from bedrock_agentcore.runtime import BedrockAgentCoreApp
920920
from model.load import load_model
921+
{{#if hasGateway}}
922+
from mcp_client.client import get_all_gateway_mcp_tools
923+
{{else}}
921924
from mcp_client.client import get_streamable_http_mcp_tools
925+
{{/if}}
922926
923927
app = BedrockAgentCoreApp()
924928
log = app.logger
@@ -943,7 +947,11 @@ async def invoke(payload, context):
943947
log.info("Invoking Agent.....")
944948
945949
# Get MCP Tools
950+
{{#if hasGateway}}
951+
mcp_tools = await get_all_gateway_mcp_tools()
952+
{{else}}
946953
mcp_tools = await get_streamable_http_mcp_tools()
954+
{{/if}}
947955
if mcp_tools is None:
948956
mcp_tools = []
949957
@@ -1617,7 +1625,11 @@ from google.adk.sessions import InMemorySessionService
16171625
from google.genai import types
16181626
from bedrock_agentcore.runtime import BedrockAgentCoreApp
16191627
from model.load import load_model
1628+
{{#if hasGateway}}
1629+
from mcp_client.client import get_all_gateway_mcp_toolsets
1630+
{{else}}
16201631
from mcp_client.client import get_streamable_http_mcp_client
1632+
{{/if}}
16211633
16221634
app = BedrockAgentCoreApp()
16231635
log = app.logger
@@ -1635,8 +1647,12 @@ def add_numbers(a: int, b: int) -> int:
16351647
16361648
16371649
# Get MCP Toolset
1650+
{{#if hasGateway}}
1651+
mcp_toolset = get_all_gateway_mcp_toolsets()
1652+
{{else}}
16381653
mcp_client = get_streamable_http_mcp_client()
16391654
mcp_toolset = [mcp_client] if mcp_client else []
1655+
{{/if}}
16401656
16411657
_credentials_loaded = False
16421658
@@ -1914,7 +1930,11 @@ from langgraph.prebuilt import create_react_agent
19141930
from langchain.tools import tool
19151931
from bedrock_agentcore.runtime import BedrockAgentCoreApp
19161932
from model.load import load_model
1933+
{{#if hasGateway}}
1934+
from mcp_client.client import get_all_gateway_mcp_client
1935+
{{else}}
19171936
from mcp_client.client import get_streamable_http_mcp_client
1937+
{{/if}}
19181938
19191939
app = BedrockAgentCoreApp()
19201940
log = app.logger
@@ -1944,7 +1964,11 @@ async def invoke(payload, context):
19441964
log.info("Invoking Agent.....")
19451965
19461966
# Get MCP Client
1967+
{{#if hasGateway}}
1968+
mcp_client = get_all_gateway_mcp_client()
1969+
{{else}}
19471970
mcp_client = get_streamable_http_mcp_client()
1971+
{{/if}}
19481972
19491973
# Load MCP Tools
19501974
mcp_tools = []
@@ -2315,13 +2339,22 @@ exports[`Assets Directory Snapshots > Python framework assets > python/python/op
23152339
from agents import Agent, Runner, function_tool
23162340
from bedrock_agentcore.runtime import BedrockAgentCoreApp
23172341
from model.load import load_model
2342+
{{#if hasGateway}}
2343+
from mcp_client.client import get_all_gateway_mcp_servers
2344+
{{else}}
23182345
from mcp_client.client import get_streamable_http_mcp_client
2346+
{{/if}}
23192347
23202348
app = BedrockAgentCoreApp()
23212349
log = app.logger
23222350
23232351
# Get MCP Server
2352+
{{#if hasGateway}}
2353+
mcp_servers = get_all_gateway_mcp_servers()
2354+
{{else}}
23242355
mcp_server = get_streamable_http_mcp_client()
2356+
mcp_servers = [mcp_server] if mcp_server else []
2357+
{{/if}}
23252358
23262359
_credentials_loaded = False
23272360
@@ -2343,8 +2376,28 @@ def add_numbers(a: int, b: int) -> int:
23432376
async def main(query):
23442377
ensure_credentials_loaded()
23452378
try:
2346-
if mcp_server:
2347-
async with mcp_server as server:
2379+
{{#if hasGateway}}
2380+
if mcp_servers:
2381+
agent = Agent(
2382+
name="{{ name }}",
2383+
model="gpt-4.1",
2384+
mcp_servers=mcp_servers,
2385+
tools=[add_numbers]
2386+
)
2387+
result = await Runner.run(agent, query)
2388+
return result
2389+
else:
2390+
agent = Agent(
2391+
name="{{ name }}",
2392+
model="gpt-4.1",
2393+
mcp_servers=[],
2394+
tools=[add_numbers]
2395+
)
2396+
result = await Runner.run(agent, query)
2397+
return result
2398+
{{else}}
2399+
if mcp_servers:
2400+
async with mcp_servers[0] as server:
23482401
active_servers = [server]
23492402
agent = Agent(
23502403
name="{{ name }}",
@@ -2363,6 +2416,7 @@ async def main(query):
23632416
)
23642417
result = await Runner.run(agent, query)
23652418
return result
2419+
{{/if}}
23662420
except Exception as e:
23672421
log.error(f"Error during agent execution: {e}", exc_info=True)
23682422
raise e
@@ -2621,7 +2675,11 @@ exports[`Assets Directory Snapshots > Python framework assets > python/python/st
26212675
"from strands import Agent, tool
26222676
from bedrock_agentcore.runtime import BedrockAgentCoreApp
26232677
from model.load import load_model
2678+
{{#if hasGateway}}
2679+
from mcp_client.client import get_all_gateway_mcp_clients
2680+
{{else}}
26242681
from mcp_client.client import get_streamable_http_mcp_client
2682+
{{/if}}
26252683
{{#if hasMemory}}
26262684
from memory.session import get_memory_session_manager
26272685
{{/if}}
@@ -2630,7 +2688,11 @@ app = BedrockAgentCoreApp()
26302688
log = app.logger
26312689
26322690
# Define a Streamable HTTP MCP Client
2633-
mcp_client = get_streamable_http_mcp_client()
2691+
{{#if hasGateway}}
2692+
mcp_clients = get_all_gateway_mcp_clients()
2693+
{{else}}
2694+
mcp_clients = [get_streamable_http_mcp_client()]
2695+
{{/if}}
26342696
26352697
# Define a collection of tools used by the model
26362698
tools = []
@@ -2643,8 +2705,9 @@ def add_numbers(a: int, b: int) -> int:
26432705
tools.append(add_numbers)
26442706
26452707
# Add MCP client to tools if available
2646-
if mcp_client:
2647-
tools.append(mcp_client)
2708+
for mcp_client in mcp_clients:
2709+
if mcp_client:
2710+
tools.append(mcp_client)
26482711
26492712
26502713
{{#if hasMemory}}

src/assets/python/autogen/base/main.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
from autogen_core.tools import FunctionTool
44
from bedrock_agentcore.runtime import BedrockAgentCoreApp
55
from model.load import load_model
6+
{{#if hasGateway}}
7+
from mcp_client.client import get_all_gateway_mcp_tools
8+
{{else}}
69
from mcp_client.client import get_streamable_http_mcp_tools
10+
{{/if}}
711

812
app = BedrockAgentCoreApp()
913
log = app.logger
@@ -28,7 +32,11 @@ async def invoke(payload, context):
2832
log.info("Invoking Agent.....")
2933

3034
# Get MCP Tools
35+
{{#if hasGateway}}
36+
mcp_tools = await get_all_gateway_mcp_tools()
37+
{{else}}
3138
mcp_tools = await get_streamable_http_mcp_tools()
39+
{{/if}}
3240
if mcp_tools is None:
3341
mcp_tools = []
3442

src/assets/python/googleadk/base/main.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
from google.genai import types
66
from bedrock_agentcore.runtime import BedrockAgentCoreApp
77
from model.load import load_model
8+
{{#if hasGateway}}
9+
from mcp_client.client import get_all_gateway_mcp_toolsets
10+
{{else}}
811
from mcp_client.client import get_streamable_http_mcp_client
12+
{{/if}}
913

1014
app = BedrockAgentCoreApp()
1115
log = app.logger
@@ -23,8 +27,12 @@ def add_numbers(a: int, b: int) -> int:
2327

2428

2529
# Get MCP Toolset
30+
{{#if hasGateway}}
31+
mcp_toolset = get_all_gateway_mcp_toolsets()
32+
{{else}}
2633
mcp_client = get_streamable_http_mcp_client()
2734
mcp_toolset = [mcp_client] if mcp_client else []
35+
{{/if}}
2836

2937
_credentials_loaded = False
3038

src/assets/python/langchain_langgraph/base/main.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44
from langchain.tools import tool
55
from bedrock_agentcore.runtime import BedrockAgentCoreApp
66
from model.load import load_model
7+
{{#if hasGateway}}
8+
from mcp_client.client import get_all_gateway_mcp_client
9+
{{else}}
710
from mcp_client.client import get_streamable_http_mcp_client
11+
{{/if}}
812

913
app = BedrockAgentCoreApp()
1014
log = app.logger
@@ -34,7 +38,11 @@ async def invoke(payload, context):
3438
log.info("Invoking Agent.....")
3539

3640
# Get MCP Client
41+
{{#if hasGateway}}
42+
mcp_client = get_all_gateway_mcp_client()
43+
{{else}}
3744
mcp_client = get_streamable_http_mcp_client()
45+
{{/if}}
3846

3947
# Load MCP Tools
4048
mcp_tools = []

src/assets/python/openaiagents/base/main.py

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,22 @@
22
from agents import Agent, Runner, function_tool
33
from bedrock_agentcore.runtime import BedrockAgentCoreApp
44
from model.load import load_model
5+
{{#if hasGateway}}
6+
from mcp_client.client import get_all_gateway_mcp_servers
7+
{{else}}
58
from mcp_client.client import get_streamable_http_mcp_client
9+
{{/if}}
610

711
app = BedrockAgentCoreApp()
812
log = app.logger
913

1014
# Get MCP Server
15+
{{#if hasGateway}}
16+
mcp_servers = get_all_gateway_mcp_servers()
17+
{{else}}
1118
mcp_server = get_streamable_http_mcp_client()
19+
mcp_servers = [mcp_server] if mcp_server else []
20+
{{/if}}
1221

1322
_credentials_loaded = False
1423

@@ -30,8 +39,28 @@ def add_numbers(a: int, b: int) -> int:
3039
async def main(query):
3140
ensure_credentials_loaded()
3241
try:
33-
if mcp_server:
34-
async with mcp_server as server:
42+
{{#if hasGateway}}
43+
if mcp_servers:
44+
agent = Agent(
45+
name="{{ name }}",
46+
model="gpt-4.1",
47+
mcp_servers=mcp_servers,
48+
tools=[add_numbers]
49+
)
50+
result = await Runner.run(agent, query)
51+
return result
52+
else:
53+
agent = Agent(
54+
name="{{ name }}",
55+
model="gpt-4.1",
56+
mcp_servers=[],
57+
tools=[add_numbers]
58+
)
59+
result = await Runner.run(agent, query)
60+
return result
61+
{{else}}
62+
if mcp_servers:
63+
async with mcp_servers[0] as server:
3564
active_servers = [server]
3665
agent = Agent(
3766
name="{{ name }}",
@@ -50,6 +79,7 @@ async def main(query):
5079
)
5180
result = await Runner.run(agent, query)
5281
return result
82+
{{/if}}
5383
except Exception as e:
5484
log.error(f"Error during agent execution: {e}", exc_info=True)
5585
raise e

src/assets/python/strands/base/main.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
from strands import Agent, tool
22
from bedrock_agentcore.runtime import BedrockAgentCoreApp
33
from model.load import load_model
4+
{{#if hasGateway}}
5+
from mcp_client.client import get_all_gateway_mcp_clients
6+
{{else}}
47
from mcp_client.client import get_streamable_http_mcp_client
8+
{{/if}}
59
{{#if hasMemory}}
610
from memory.session import get_memory_session_manager
711
{{/if}}
@@ -10,7 +14,11 @@
1014
log = app.logger
1115

1216
# Define a Streamable HTTP MCP Client
13-
mcp_client = get_streamable_http_mcp_client()
17+
{{#if hasGateway}}
18+
mcp_clients = get_all_gateway_mcp_clients()
19+
{{else}}
20+
mcp_clients = [get_streamable_http_mcp_client()]
21+
{{/if}}
1422

1523
# Define a collection of tools used by the model
1624
tools = []
@@ -23,8 +31,9 @@ def add_numbers(a: int, b: int) -> int:
2331
tools.append(add_numbers)
2432

2533
# Add MCP client to tools if available
26-
if mcp_client:
27-
tools.append(mcp_client)
34+
for mcp_client in mcp_clients:
35+
if mcp_client:
36+
tools.append(mcp_client)
2837

2938

3039
{{#if hasMemory}}

src/cli/templates/render.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Handlebars.registerHelper('includes', (array: unknown[], value: unknown) => {
99
return array.includes(value);
1010
});
1111
Handlebars.registerHelper('snakeCase', (str: string) => {
12-
return str.replace(/[- ]/g, '_').toLowerCase();
12+
return str.replace(/[^a-zA-Z0-9]/g, '_').toLowerCase();
1313
});
1414

1515
/**

0 commit comments

Comments
 (0)