Skip to content

Commit cd31038

Browse files
committed
Addressing comments
1 parent 97b6993 commit cd31038

File tree

3 files changed

+180
-68
lines changed

3 files changed

+180
-68
lines changed

pydantic_ai_slim/pydantic_ai/models/anthropic.py

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -419,21 +419,21 @@ def _add_builtin_tools(
419419
tools = [tool for tool in tools if tool['name'] != 'memory']
420420
tools.append(BetaMemoryTool20250818Param(name='memory', type='memory_20250818'))
421421
beta_features.append('context-management-2025-06-27')
422-
if isinstance(tool, MCPServerTool) and tool.url:
423-
tool_configuration = BetaRequestMCPServerToolConfigurationParam(
424-
enabled=True,
425-
allowed_tools=tool.allowed_tools,
426-
)
427-
mcp_servers.append(
428-
BetaRequestMCPServerURLDefinitionParam(
429-
type='url',
430-
name=tool.label,
431-
url=tool.url,
432-
authorization_token=tool.authorization,
433-
tool_configuration=tool_configuration,
434-
)
422+
elif isinstance(tool, MCPServerTool) and tool.url:
423+
tool_configuration = BetaRequestMCPServerToolConfigurationParam(
424+
enabled=True,
425+
allowed_tools=tool.allowed_tools,
426+
)
427+
mcp_servers.append(
428+
BetaRequestMCPServerURLDefinitionParam(
429+
type='url',
430+
name=tool.label,
431+
url=tool.url,
432+
authorization_token=tool.authorization,
433+
tool_configuration=tool_configuration,
435434
)
436-
beta_features.append('mcp-client-2025-04-04')
435+
)
436+
beta_features.append('mcp-client-2025-04-04')
437437
else: # pragma: no cover
438438
raise UserError(
439439
f'`{tool.__class__.__name__}` is not supported by `AnthropicModel`. If it should be, please file an issue.'
@@ -545,13 +545,12 @@ async def _map_message(self, messages: list[ModelMessage]) -> tuple[str, list[Be
545545
)
546546
assistant_content_params.append(server_tool_use_block_param)
547547
elif response_part.tool_name == MCPServerTool.kind: # pragma: no branch
548-
args = response_part.args_as_dict()
549548
mcp_tool_use_block_param = BetaMCPToolUseBlockParam(
550549
id=tool_use_id,
551550
type='mcp_tool_use',
552-
name=response_part.tool_name,
553-
server_name=cast(str, args.get('server_name')),
554-
input=args.get('input'),
551+
name='mcp_server',
552+
server_name=response_part.tool_name,
553+
input=response_part.args_as_dict(),
555554
)
556555
assistant_content_params.append(mcp_tool_use_block_param)
557556
elif isinstance(response_part, BuiltinToolReturnPart):
@@ -886,7 +885,7 @@ def _map_mcp_server_use_block(item: BetaMCPToolUseBlock, provider_name: str) ->
886885
return BuiltinToolCallPart(
887886
provider_name=provider_name,
888887
tool_name=MCPServerTool.kind,
889-
args=cast(dict[str, Any], {'input': item.input, 'server_name': item.server_name}) or None,
888+
args=cast(dict[str, Any], item.input) or None,
890889
tool_call_id=item.id,
891890
)
892891

tests/models/test_anthropic.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3098,7 +3098,7 @@ async def test_anthropic_mcp_servers(allow_model_requests: None, anthropic_api_k
30983098
provider_name='anthropic',
30993099
),
31003100
BuiltinToolReturnPart(
3101-
tool_name='code_execution',
3101+
tool_name='mcp_server',
31023102
content=[{'citations': None, 'text': '["Lies of P","Bloodborne","Sekiro"]', 'type': 'text'}],
31033103
tool_call_id='mcptoolu_01TwwBu8ALMaffJS5riJmE8r',
31043104
timestamp=IsDatetime(),
@@ -3172,7 +3172,7 @@ async def test_anthropic_mcp_servers_stream(allow_model_requests: None, anthropi
31723172
provider_name='anthropic',
31733173
),
31743174
BuiltinToolReturnPart(
3175-
tool_name='code_execution',
3175+
tool_name='mcp_server',
31763176
content=[{'citations': None, 'text': '["Lies of P","Bloodborne","Sekiro"]', 'type': 'text'}],
31773177
tool_call_id='mcptoolu_01WaYLgtwyroxT1CQWGFfTTy',
31783178
timestamp=IsDatetime(),
@@ -3230,7 +3230,13 @@ async def test_anthropic_mcp_servers_stream(allow_model_requests: None, anthropi
32303230
PartDeltaEvent(
32313231
index=0, delta=ThinkingPartDelta(content_delta=' so I can call it directly.', provider_name='anthropic')
32323232
),
3233-
PartDeltaEvent(index=0, delta=ThinkingPartDelta(signature_delta=IsStr(), provider_name='anthropic')),
3233+
PartDeltaEvent(
3234+
index=0,
3235+
delta=ThinkingPartDelta(
3236+
signature_delta='Ev4CCkYICBgCKkC2CV8NXGK/AuQ4/m1/1qE91t9kn26YXfJqV4GLu+pQ5arslF66ul0lb2tjDaq6jEoScCgXONCbjVTTGXRgL31OEgz6Hf2+sxQphfOM0NsaDAGUIjrX8JtDLUHYCSIwDiCjhcg4JzBLobWmlquAlva+JlrB3yUlyWBCOe3z0GBxqs9MGtaEsmROBfy9w5bVKuUBPWfEKKcSIj57MWaQKquRHrl+EaaTVI2/dS3fU0opvd7HTbJ647RvWIKatcw1u3Q9WlNuGhts2TzwpqvzliIkheOjbv3URnfdW2vjka5WN6sntwoqdMrmmJTMD33PLXs2PZlnFUJ2BAS0lglihGbrOrIE1gRsTjZVrhXI8ZpJWPMYJ07FdtLwd+v0F3gf32z282QuQdNlaVliNjdcV+IvfJJL8BCF7coL+fKahuu8GCLVCjwmitJEIgC3ykzuVxCGT7U6hCuEM3Oe7UcLlay9n89O2jmW/FbQIuUpNmVFrrmM3Mn1GBgB',
3237+
provider_name='anthropic',
3238+
),
3239+
),
32343240
PartStartEvent(
32353241
index=1,
32363242
part=BuiltinToolCallPart(
@@ -3243,7 +3249,7 @@ async def test_anthropic_mcp_servers_stream(allow_model_requests: None, anthropi
32433249
PartStartEvent(
32443250
index=2,
32453251
part=BuiltinToolReturnPart(
3246-
tool_name='code_execution',
3252+
tool_name='mcp_server',
32473253
content=[{'citations': None, 'text': '["Lies of P","Bloodborne","Sekiro"]', 'type': 'text'}],
32483254
tool_call_id='mcptoolu_01WaYLgtwyroxT1CQWGFfTTy',
32493255
timestamp=IsDatetime(),
@@ -3268,16 +3274,16 @@ async def test_anthropic_mcp_servers_stream(allow_model_requests: None, anthropi
32683274
args='',
32693275
tool_call_id='mcptoolu_01WaYLgtwyroxT1CQWGFfTTy',
32703276
provider_name='anthropic',
3271-
)
3277+
),
32723278
),
32733279
BuiltinToolResultEvent( # pyright: ignore[reportDeprecated]
32743280
result=BuiltinToolReturnPart(
3275-
tool_name='code_execution',
3281+
tool_name='mcp_server',
32763282
content=[{'citations': None, 'text': '["Lies of P","Bloodborne","Sekiro"]', 'type': 'text'}],
32773283
tool_call_id='mcptoolu_01WaYLgtwyroxT1CQWGFfTTy',
32783284
timestamp=IsDatetime(),
32793285
provider_name='anthropic',
3280-
)
3286+
),
32813287
),
32823288
]
32833289
)

0 commit comments

Comments
 (0)