@aws/nx-plugin 0.112.1 → 0.113.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/LICENSE-THIRD-PARTY +957 -429
  2. package/package.json +1 -1
  3. package/src/py/project/generator.js +4 -0
  4. package/src/py/project/generator.js.map +1 -1
  5. package/src/py/strands-agent/__snapshots__/generator.spec.ts.snap +42 -20
  6. package/src/py/strands-agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +6 -13
  7. package/src/py/strands-agent/a2a-connection/generator.js +1 -1
  8. package/src/py/strands-agent/files/a2a/main.py.template +24 -3
  9. package/src/py/strands-agent/files/ag-ui/main.py.template +3 -2
  10. package/src/py/strands-agent/files/common/agent.py.template +1 -2
  11. package/src/py/strands-agent/files/http/main.py.template +32 -13
  12. package/src/py/strands-agent/generator.js +11 -0
  13. package/src/py/strands-agent/generator.js.map +1 -1
  14. package/src/py/strands-agent/mcp-connection/__snapshots__/generator.spec.ts.snap +66 -59
  15. package/src/py/strands-agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +6 -14
  16. package/src/py/strands-agent/mcp-connection/generator.js +3 -3
  17. package/src/ts/strands-agent/__snapshots__/generator.spec.ts.snap +17 -7
  18. package/src/ts/strands-agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +6 -14
  19. package/src/ts/strands-agent/a2a-connection/generator.js +2 -3
  20. package/src/ts/strands-agent/a2a-connection/generator.js.map +1 -1
  21. package/src/ts/strands-agent/files/a2a/index.ts.template +12 -2
  22. package/src/ts/strands-agent/files/common/agent.ts.template +2 -4
  23. package/src/ts/strands-agent/files/http/init.ts.template +12 -1
  24. package/src/ts/strands-agent/files/http/router.ts.template +3 -2
  25. package/src/ts/strands-agent/generator.js +7 -0
  26. package/src/ts/strands-agent/generator.js.map +1 -1
  27. package/src/ts/strands-agent/mcp-connection/__snapshots__/generator.spec.ts.snap +46 -71
  28. package/src/ts/strands-agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +8 -19
  29. package/src/ts/strands-agent/mcp-connection/generator.js +1 -1
  30. package/src/ts/strands-agent/mcp-connection/generator.js.map +1 -1
  31. package/src/utils/agent-connection/agent-connection.js +22 -0
  32. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  33. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client.ts.template +46 -57
  34. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-client.ts.template +35 -51
  35. package/src/utils/agent-connection/files/core-runtime-config/session-context.ts.template +21 -0
  36. package/src/utils/agent-connection/files/core-runtime-config/with-session-id.ts.template +27 -0
  37. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client.py.template +44 -15
  38. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_client.py.template +50 -43
  39. package/src/utils/agent-connection/files/py-core-runtime-config/session_context.py.template +22 -0
  40. package/src/utils/agent-connection/files/py-core-runtime-config/with_session_id.py.template +44 -0
  41. package/src/utils/bundle/bundle.js +1 -0
  42. package/src/utils/bundle/bundle.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws/nx-plugin",
3
- "version": "0.112.1",
3
+ "version": "0.113.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/awslabs/nx-plugin-for-aws.git",
@@ -98,6 +98,7 @@ const pyProjectGenerator = async (tree, schema) => {
98
98
  const buildTarget = projectConfiguration.targets.build;
99
99
  projectConfiguration.targets.compile = {
100
100
  ...buildTarget,
101
+ inputs: ['default', '^production'],
101
102
  outputs: [buildOutputPath],
102
103
  options: {
103
104
  ...buildTarget.options,
@@ -106,6 +107,7 @@ const pyProjectGenerator = async (tree, schema) => {
106
107
  };
107
108
  projectConfiguration.targets.typecheck = {
108
109
  cache: true,
110
+ inputs: ['default', '^production'],
109
111
  executor: '@nxlv/python:run-commands',
110
112
  options: {
111
113
  command: 'uv run ty check',
@@ -113,6 +115,7 @@ const pyProjectGenerator = async (tree, schema) => {
113
115
  },
114
116
  };
115
117
  projectConfiguration.targets.build = {
118
+ inputs: ['default', '^production'],
116
119
  dependsOn: [
117
120
  'lint',
118
121
  'compile',
@@ -137,6 +140,7 @@ const pyProjectGenerator = async (tree, schema) => {
137
140
  projectConfiguration.targets.lint = {
138
141
  ...projectConfiguration.targets.lint,
139
142
  cache: true,
143
+ inputs: ['default', '^production'],
140
144
  dependsOn: [
141
145
  ...(projectConfiguration.targets.lint?.dependsOn ?? []).filter((d) => d !== 'format'),
142
146
  'format',
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/project/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/project/generator.ts"],"names":[],"mappings":"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"}
@@ -635,14 +635,13 @@ from strands import Agent, tool
635
635
  from strands_tools import current_time
636
636
 
637
637
 
638
- # Define a custom tool
639
638
  @tool
640
639
  def subtract(a: int, b: int) -> int:
641
640
  return a - b
642
641
 
643
642
 
644
643
  @contextmanager
645
- def get_agent(session_id: str):
644
+ def get_agent():
646
645
  yield Agent(
647
646
  name="SnapshotAgent",
648
647
  description="SnapshotAgent Strands Agent",
@@ -663,12 +662,21 @@ import uvicorn
663
662
  from bedrock_agentcore.runtime.models import PingStatus
664
663
  from fastapi import Request
665
664
  from pydantic import BaseModel
665
+ from starlette.middleware.base import BaseHTTPMiddleware
666
+ from proj_agent_connection import session_id_context, with_session_id
666
667
 
667
668
  from .agent import get_agent
668
669
  from .init import JsonStreamingResponse, app
669
670
 
670
671
  SESSION_ID_HEADER = "x-amzn-bedrock-agentcore-runtime-session-id"
671
672
 
673
+ _agent_ctx = with_session_id(
674
+ get_agent,
675
+ name="SnapshotAgent",
676
+ description="A Strands Agent exposed via HTTP streaming.",
677
+ )
678
+ _agent = _agent_ctx.__enter__()
679
+
672
680
 
673
681
  class InvokeInput(BaseModel):
674
682
  message: str
@@ -678,22 +686,21 @@ class StreamChunk(BaseModel):
678
686
  content: str
679
687
 
680
688
 
681
- async def handle_invoke(input: InvokeInput, session_id: str):
689
+ async def handle_invoke(input: InvokeInput):
682
690
  """Streaming handler for agent invocation"""
683
- with get_agent(session_id=session_id) as agent:
684
- stream = agent.stream_async(input.message)
685
- async for event in stream:
686
- print(event)
687
- text = (
688
- event.get("event", {})
689
- .get("contentBlockDelta", {})
690
- .get("delta", {})
691
- .get("text")
692
- )
693
- if text is not None:
694
- yield StreamChunk(content=text)
695
- elif event.get("event", {}).get("messageStop") is not None:
696
- yield StreamChunk(content="\\n")
691
+ stream = _agent.stream_async(input.message)
692
+ async for event in stream:
693
+ print(event)
694
+ text = (
695
+ event.get("event", {})
696
+ .get("contentBlockDelta", {})
697
+ .get("delta", {})
698
+ .get("text")
699
+ )
700
+ if text is not None:
701
+ yield StreamChunk(content=text)
702
+ elif event.get("event", {}).get("messageStop") is not None:
703
+ yield StreamChunk(content="\\n")
697
704
 
698
705
 
699
706
  @app.post(
@@ -705,10 +712,21 @@ async def handle_invoke(input: InvokeInput, session_id: str):
705
712
  )
706
713
  },
707
714
  )
708
- async def invoke(input: InvokeInput, request: Request) -> JsonStreamingResponse:
715
+ async def invoke(input: InvokeInput) -> JsonStreamingResponse:
709
716
  """Entry point for agent invocation"""
710
- session_id = request.headers.get(SESSION_ID_HEADER) or str(uuid.uuid4())
711
- return JsonStreamingResponse(handle_invoke(input, session_id))
717
+ return JsonStreamingResponse(handle_invoke(input))
718
+
719
+
720
+ class _SessionIdMiddleware(BaseHTTPMiddleware):
721
+ """Bind the inbound session (or a fresh UUID) to async context."""
722
+
723
+ async def dispatch(self, request: Request, call_next):
724
+ session_id = request.headers.get(SESSION_ID_HEADER) or str(uuid.uuid4())
725
+ with session_id_context(session_id):
726
+ return await call_next(request)
727
+
728
+
729
+ app.add_middleware(_SessionIdMiddleware)
712
730
 
713
731
 
714
732
  @app.get("/ping")
@@ -727,6 +745,7 @@ exports[`py#strands-agent generator > should match snapshot for generated files
727
745
  name = "proj.test_project"
728
746
  version = "0.1.0"
729
747
  dependencies = [
748
+ "proj.agent_connection",
730
749
  "aws-lambda-powertools==3.28.0",
731
750
  "aws-opentelemetry-distro==0.17.0",
732
751
  "bedrock-agentcore==1.8.0",
@@ -743,5 +762,8 @@ dev = [ "fastapi[standard]==0.136.1" ]
743
762
 
744
763
  [tool.uv]
745
764
  dev-dependencies = [ ]
765
+
766
+ [tool.uv.sources."proj.agent_connection"]
767
+ workspace = true
746
768
  "
747
769
  `;
@@ -9,21 +9,14 @@ from <%- agentConnectionModuleName %>.core.runtime_config import (
9
9
 
10
10
 
11
11
  class <%- targetAgentClassName %>Client:
12
- """Client for connecting to the <%- targetAgentClassName %> A2A agent.
13
-
14
- In deployed mode: resolves the AgentCore runtime ARN from runtime config
15
- and uses a SigV4-authenticated A2A transport.
16
-
17
- In local mode (SERVE_LOCAL env var set): connects directly to the local
18
- A2A server over plain HTTP.
19
- """
12
+ """Client for the <%- targetAgentClassName %> A2A agent."""
20
13
 
21
14
  @staticmethod
22
- def create(session_id: str) -> A2AAgent:
15
+ def create() -> A2AAgent:
23
16
  if os.environ.get("SERVE_LOCAL") == "true":
24
- return A2AAgent(endpoint="http://localhost:<%- targetAgentPort %>/")
25
-
17
+ return AgentCoreA2aClient.without_auth(
18
+ "http://localhost:<%- targetAgentPort %>/"
19
+ )
26
20
  return AgentCoreA2aClient.with_iam_auth(
27
- agent_runtime_arn=get_connected_agent_runtime_arn("<%- targetAgentClassName %>"),
28
- session_id=session_id,
21
+ get_connected_agent_runtime_arn("<%- targetAgentClassName %>")
29
22
  )
@@ -138,7 +138,7 @@ const addClientToolToGetAgent = async (tree, filePath, clientClassName, clientVa
138
138
  // The tool function we'll insert. Strands tools in Python are just
139
139
  // @tool-decorated callables, so we define them inline in get_agent.
140
140
  // A2AAgent is directly callable (syncs over invoke_async internally).
141
- const toolBlock = `${clientVarName} = ${clientClassName}.create(session_id=session_id)
141
+ const toolBlock = `${clientVarName} = ${clientClassName}.create()
142
142
 
143
143
  @tool
144
144
  def ${toolName}(prompt: str) -> str:
@@ -1,18 +1,25 @@
1
1
  import logging
2
2
  import os
3
+ import uuid
3
4
 
4
- from fastapi import FastAPI
5
+ from fastapi import FastAPI, Request
6
+ from starlette.middleware.base import BaseHTTPMiddleware
5
7
  from strands.multiagent.a2a import A2AServer
8
+ from <%- agentConnectionModuleName %> import session_id_context, with_session_id
6
9
 
7
10
  from .agent import get_agent
8
11
 
9
12
  logging.basicConfig(level=logging.INFO)
10
13
 
11
14
  PORT = int(os.environ.get("PORT", "9000"))
12
-
13
15
  RUNTIME_URL = os.environ.get("AGENTCORE_RUNTIME_URL", f"http://localhost:{PORT}/")
16
+ SESSION_ID_HEADER = "x-amzn-bedrock-agentcore-runtime-session-id"
14
17
 
15
- _agent_ctx = get_agent(session_id="default")
18
+ _agent_ctx = with_session_id(
19
+ get_agent,
20
+ name="<%= agentNameClassName %>",
21
+ description="A Strands Agent exposed via the Agent-to-Agent (A2A) protocol.",
22
+ )
16
23
  _agent = _agent_ctx.__enter__()
17
24
 
18
25
  a2a_server = A2AServer(
@@ -20,9 +27,23 @@ a2a_server = A2AServer(
20
27
  port=PORT,
21
28
  http_url=RUNTIME_URL,
22
29
  serve_at_root=True,
30
+ # Skip tool-registry introspection for the agent card — the per-session
31
+ # agents aren't constructed yet at import time.
32
+ skills=[],
23
33
  )
24
34
 
35
+
36
+ class _SessionIdMiddleware(BaseHTTPMiddleware):
37
+ """Bind the inbound session (or a fresh UUID) to async context."""
38
+
39
+ async def dispatch(self, request: Request, call_next):
40
+ session_id = request.headers.get(SESSION_ID_HEADER) or str(uuid.uuid4())
41
+ with session_id_context(session_id):
42
+ return await call_next(request)
43
+
44
+
25
45
  app = FastAPI()
46
+ app.add_middleware(_SessionIdMiddleware)
26
47
 
27
48
 
28
49
  @app.get("/ping")
@@ -1,12 +1,13 @@
1
1
  import logging
2
2
 
3
- from .agent import get_agent
4
3
  from ag_ui_strands import StrandsAgent, create_strands_app
5
4
 
5
+ from .agent import get_agent
6
+
6
7
  logging.basicConfig(level=logging.INFO)
7
8
 
8
9
  # Create AG-UI agent wrapper
9
- _agent_ctx = get_agent(session_id="default")
10
+ _agent_ctx = get_agent()
10
11
  _agent = _agent_ctx.__enter__()
11
12
 
12
13
  agui_agent = StrandsAgent(
@@ -4,14 +4,13 @@ from strands import Agent, tool
4
4
  from strands_tools import current_time
5
5
 
6
6
 
7
- # Define a custom tool
8
7
  @tool
9
8
  def subtract(a: int, b: int) -> int:
10
9
  return a - b
11
10
 
12
11
 
13
12
  @contextmanager
14
- def get_agent(session_id: str):
13
+ def get_agent():
15
14
  yield Agent(
16
15
  name="<%= agentNameClassName %>",
17
16
  description="<%= agentNameClassName %> Strands Agent",
@@ -4,12 +4,21 @@ import uvicorn
4
4
  from bedrock_agentcore.runtime.models import PingStatus
5
5
  from fastapi import Request
6
6
  from pydantic import BaseModel
7
+ from starlette.middleware.base import BaseHTTPMiddleware
8
+ from <%- agentConnectionModuleName %> import session_id_context, with_session_id
7
9
 
8
10
  from .agent import get_agent
9
11
  from .init import JsonStreamingResponse, app
10
12
 
11
13
  SESSION_ID_HEADER = "x-amzn-bedrock-agentcore-runtime-session-id"
12
14
 
15
+ _agent_ctx = with_session_id(
16
+ get_agent,
17
+ name="<%= agentNameClassName %>",
18
+ description="A Strands Agent exposed via HTTP streaming.",
19
+ )
20
+ _agent = _agent_ctx.__enter__()
21
+
13
22
 
14
23
  class InvokeInput(BaseModel):
15
24
  message: str
@@ -19,17 +28,16 @@ class StreamChunk(BaseModel):
19
28
  content: str
20
29
 
21
30
 
22
- async def handle_invoke(input: InvokeInput, session_id: str):
31
+ async def handle_invoke(input: InvokeInput):
23
32
  """Streaming handler for agent invocation"""
24
- with get_agent(session_id=session_id) as agent:
25
- stream = agent.stream_async(input.message)
26
- async for event in stream:
27
- print(event)
28
- text = event.get("event", {}).get("contentBlockDelta", {}).get("delta", {}).get("text")
29
- if text is not None:
30
- yield StreamChunk(content=text)
31
- elif event.get("event", {}).get("messageStop") is not None:
32
- yield StreamChunk(content="\n")
33
+ stream = _agent.stream_async(input.message)
34
+ async for event in stream:
35
+ print(event)
36
+ text = event.get("event", {}).get("contentBlockDelta", {}).get("delta", {}).get("text")
37
+ if text is not None:
38
+ yield StreamChunk(content=text)
39
+ elif event.get("event", {}).get("messageStop") is not None:
40
+ yield StreamChunk(content="\n")
33
41
 
34
42
 
35
43
  @app.post(
@@ -37,10 +45,21 @@ async def handle_invoke(input: InvokeInput, session_id: str):
37
45
  response_class=JsonStreamingResponse,
38
46
  responses={200: JsonStreamingResponse.openapi_response(StreamChunk, "Stream of agent response chunks")},
39
47
  )
40
- async def invoke(input: InvokeInput, request: Request) -> JsonStreamingResponse:
48
+ async def invoke(input: InvokeInput) -> JsonStreamingResponse:
41
49
  """Entry point for agent invocation"""
42
- session_id = request.headers.get(SESSION_ID_HEADER) or str(uuid.uuid4())
43
- return JsonStreamingResponse(handle_invoke(input, session_id))
50
+ return JsonStreamingResponse(handle_invoke(input))
51
+
52
+
53
+ class _SessionIdMiddleware(BaseHTTPMiddleware):
54
+ """Bind the inbound session (or a fresh UUID) to async context."""
55
+
56
+ async def dispatch(self, request: Request, call_next):
57
+ session_id = request.headers.get(SESSION_ID_HEADER) or str(uuid.uuid4())
58
+ with session_id_context(session_id):
59
+ return await call_next(request)
60
+
61
+
62
+ app.add_middleware(_SessionIdMiddleware)
44
63
 
45
64
 
46
65
  @app.get("/ping")
@@ -15,6 +15,8 @@ const format_1 = require("../../utils/format");
15
15
  const names_1 = require("../../utils/names");
16
16
  const py_1 = require("../../utils/py");
17
17
  const agent_core_constructs_1 = require("../../utils/agent-core-constructs/agent-core-constructs");
18
+ const agent_connection_1 = require("../../utils/agent-connection/agent-connection");
19
+ const py_2 = require("../../utils/py");
18
20
  const bundle_1 = require("../../utils/bundle/bundle");
19
21
  const fs_1 = require("../../utils/fs");
20
22
  const npm_scope_1 = require("../../utils/npm-scope");
@@ -45,11 +47,20 @@ const pyStrandsAgentGenerator = async (tree, options) => {
45
47
  const computeType = options.computeType ?? 'BedrockAgentCoreRuntime';
46
48
  const auth = options.auth ?? 'IAM';
47
49
  const protocol = options.protocol ?? 'HTTP';
50
+ // Ensure the shared agent-connection project exists so the server entry
51
+ // point can import `session_id_context` and propagate the AgentCore
52
+ // session ID to any downstream MCP / A2A clients a later connection
53
+ // generator wires into this agent.
54
+ await (0, agent_connection_1.ensurePythonAgentConnectionProject)(tree);
55
+ const agentConnectionModuleName = (0, agent_connection_1.getPythonAgentConnectionModuleName)(tree);
56
+ const agentConnectionPackageName = (0, agent_connection_1.getPythonAgentConnectionPackageName)(tree);
57
+ (0, py_2.addWorkspaceDependencyToPyProject)(tree, project.root, agentConnectionPackageName);
48
58
  const templateContext = {
49
59
  name,
50
60
  agentNameSnakeCase,
51
61
  agentNameClassName,
52
62
  moduleName,
63
+ agentConnectionModuleName,
53
64
  };
54
65
  // Generate common files shared by both protocols
55
66
  (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'common'), targetSourceDir, templateContext, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/strands-agent/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/strands-agent/generator.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,19 @@
3
3
  exports[`py#strands-agent#mcp-connection generator > should match snapshot for generated files > agent-connection-init.py 1`] = `
4
4
  """"Automatically generated by Nx."""
5
5
 
6
+ from .core.session_context import get_current_session_id, session_id_context
7
+
6
8
  from .app.inventory_mcp_client import InventoryMcpClient
7
9
 
8
- __all__ = ["InventoryMcpClient"]
10
+ from .core.with_session_id import with_session_id
11
+
12
+
13
+ __all__ = [
14
+ "get_current_session_id",
15
+ "session_id_context",
16
+ "with_session_id",
17
+ "InventoryMcpClient",
18
+ ]
9
19
  "
10
20
  `;
11
21
 
@@ -18,10 +28,32 @@ from mcp.client.streamable_http import streamablehttp_client
18
28
  from strands.tools.mcp.mcp_client import MCPClient
19
29
 
20
30
  from .auth import SigV4HTTPXAuth
31
+ from .session_context import get_current_session_id
32
+
33
+ SESSION_HEADER = "X-Amzn-Bedrock-AgentCore-Runtime-Session-Id"
34
+
35
+
36
+ class _SessionHeaderAuth(httpx.Auth):
37
+ """Stamps the AgentCore session header from the current async context."""
38
+
39
+ requires_request_body = True
40
+ requires_response_body = True
41
+
42
+ def __init__(self, inner: httpx.Auth | None = None):
43
+ self._inner = inner
44
+
45
+ def auth_flow(self, request: httpx.Request): # type: ignore[override]
46
+ sid = get_current_session_id()
47
+ if sid:
48
+ request.headers[SESSION_HEADER] = sid
49
+ if self._inner is None:
50
+ yield request
51
+ return
52
+ yield from self._inner.auth_flow(request)
21
53
 
22
54
 
23
55
  class AgentCoreMCPClient:
24
- """Factory for clients to call MCP servers hosted on Bedrock AgentCore Runtime."""
56
+ """Factory for MCP clients that forward the current async-context session."""
25
57
 
26
58
  @staticmethod
27
59
  def _build_url(agent_runtime_arn: str) -> tuple[str, str]:
@@ -31,74 +63,58 @@ class AgentCoreMCPClient:
31
63
  """
32
64
  region = agent_runtime_arn.split(":")[3]
33
65
  encoded_arn = agent_runtime_arn.replace(":", "%3A").replace("/", "%2F")
34
- url = f"https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{encoded_arn}/invocations?qualifier=DEFAULT"
66
+ url = (
67
+ f"https://bedrock-agentcore.{region}.amazonaws.com/runtimes/"
68
+ f"{encoded_arn}/invocations?qualifier=DEFAULT"
69
+ )
35
70
  return region, url
36
71
 
37
72
  @staticmethod
38
- def _create(
39
- agent_runtime_arn: str,
40
- session_id: str,
41
- headers: dict | None = None,
42
- auth_handler: httpx.Auth | None = None,
43
- ) -> MCPClient:
44
- _, url = AgentCoreMCPClient._build_url(agent_runtime_arn)
73
+ def _create(url: str, auth: httpx.Auth | None = None) -> MCPClient:
45
74
  return MCPClient(
46
75
  lambda: streamablehttp_client(
47
76
  url,
48
- auth=auth_handler,
77
+ auth=_SessionHeaderAuth(auth),
49
78
  timeout=120,
50
79
  terminate_on_close=False,
51
- headers={
52
- "X-Amzn-Bedrock-AgentCore-Runtime-Session-Id": session_id,
53
- **(headers if headers is not None else {}),
54
- },
55
80
  )
56
81
  )
57
82
 
58
83
  @staticmethod
59
- def with_iam_auth(agent_runtime_arn: str, session_id: str) -> MCPClient:
60
- """Create an MCP client with IAM (SigV4) authentication.
61
-
62
- Region and credentials are derived automatically from the ARN
63
- and the default credential provider chain.
64
- """
65
- region, _ = AgentCoreMCPClient._build_url(agent_runtime_arn)
66
- boto_session = boto3.Session(region_name=region)
67
- credentials = boto_session.get_credentials()
84
+ def with_iam_auth(agent_runtime_arn: str) -> MCPClient:
85
+ """SigV4-authenticated client for a Bedrock AgentCore runtime."""
86
+ region, url = AgentCoreMCPClient._build_url(agent_runtime_arn)
87
+ credentials = boto3.Session(region_name=region).get_credentials()
68
88
  return AgentCoreMCPClient._create(
69
- agent_runtime_arn=agent_runtime_arn,
70
- session_id=session_id,
71
- auth_handler=SigV4HTTPXAuth(credentials, "bedrock-agentcore", region),
89
+ url, SigV4HTTPXAuth(credentials, "bedrock-agentcore", region)
72
90
  )
73
91
 
74
92
  @staticmethod
75
93
  def with_jwt_auth(
76
- agent_runtime_arn: str,
77
- access_token_provider: Callable[[], str],
78
- session_id: str,
94
+ agent_runtime_arn: str, access_token_provider: Callable[[], str]
79
95
  ) -> MCPClient:
80
- """Create an MCP client with JWT authentication.
81
-
82
- Args:
83
- agent_runtime_arn: The ARN of the AgentCore runtime.
84
- access_token_provider: A callable that returns the JWT access token.
85
- session_id: Session ID for the connection.
86
- """
87
- access_token = access_token_provider()
88
- return AgentCoreMCPClient._create(
89
- agent_runtime_arn=agent_runtime_arn,
90
- session_id=session_id,
91
- headers={
92
- "Authorization": f"Bearer {access_token}",
93
- },
96
+ """Bearer-authenticated client for a Bedrock AgentCore runtime."""
97
+ _, url = AgentCoreMCPClient._build_url(agent_runtime_arn)
98
+ return MCPClient(
99
+ lambda: streamablehttp_client(
100
+ url,
101
+ auth=_SessionHeaderAuth(),
102
+ headers={"Authorization": f"Bearer {access_token_provider()}"},
103
+ timeout=120,
104
+ terminate_on_close=False,
105
+ )
94
106
  )
107
+
108
+ @staticmethod
109
+ def without_auth(url: str) -> MCPClient:
110
+ """Plain-HTTP client — for local dev."""
111
+ return AgentCoreMCPClient._create(url)
95
112
  "
96
113
  `;
97
114
 
98
115
  exports[`py#strands-agent#mcp-connection generator > should match snapshot for generated files > inventory_mcp_client.py 1`] = `
99
116
  "import os
100
117
 
101
- from mcp.client.streamable_http import streamablehttp_client
102
118
  from strands.tools.mcp.mcp_client import MCPClient
103
119
 
104
120
  from proj_agent_connection.core.agentcore_mcp_client import AgentCoreMCPClient
@@ -108,23 +124,14 @@ from proj_agent_connection.core.runtime_config import (
108
124
 
109
125
 
110
126
  class InventoryMcpClient:
111
- """Client for connecting to the InventoryMcp MCP server.
112
-
113
- In deployed mode: resolves the AgentCore runtime ARN from runtime config
114
- and uses SigV4-authenticated AgentCore transport.
115
-
116
- In local mode (SERVE_LOCAL env var set): connects directly
117
- to the local MCP server via Streamable HTTP.
118
- """
127
+ """Client for the InventoryMcp MCP server."""
119
128
 
120
129
  @staticmethod
121
- def create(session_id: str) -> MCPClient:
130
+ def create() -> MCPClient:
122
131
  if os.environ.get("SERVE_LOCAL") == "true":
123
- return MCPClient(lambda: streamablehttp_client("http://localhost:8082/mcp"))
124
-
132
+ return AgentCoreMCPClient.without_auth("http://localhost:8082/mcp")
125
133
  return AgentCoreMCPClient.with_iam_auth(
126
- agent_runtime_arn=get_connected_agent_runtime_arn("InventoryMcp"),
127
- session_id=session_id,
134
+ get_connected_agent_runtime_arn("InventoryMcp")
128
135
  )
129
136
  "
130
137
  `;
@@ -145,7 +152,7 @@ def subtract(a: int, b: int) -> int:
145
152
 
146
153
  @contextmanager
147
154
  def get_agent(session_id: str):
148
- inventory_mcp = InventoryMcpClient.create(session_id=session_id)
155
+ inventory_mcp = InventoryMcpClient.create()
149
156
  with (
150
157
  inventory_mcp,
151
158
  ):