Skip to content

Commit 749c71d

Browse files
committed
Fix ResourceLink MCP types
1 parent 7d98900 commit 749c71d

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

docs/graph.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ stateDiagram-v2
352352
Feedback --> [*]
353353
```
354354

355-
```python {title="genai_email_feedback.py" py="3.10"}
355+
```python {title="genai_email_feedback.py" py="3.10" test="skip"}
356356
from __future__ import annotations as _annotations
357357

358358
from dataclasses import dataclass, field

docs/models/google.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ To use Vertex AI, you may need to set up [application default credentials](https
5858

5959
If you have the [`gcloud` CLI](https://cloud.google.com/sdk/gcloud) installed and configured, you can use:
6060

61-
```python
61+
```python {test="skip"}
6262
from pydantic_ai import Agent
6363
from pydantic_ai.models.google import GoogleModel
6464
from pydantic_ai.providers.google import GoogleProvider

pydantic_ai_slim/pydantic_ai/mcp.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -240,12 +240,17 @@ def _map_tool_result_part(
240240
else:
241241
assert_never(resource)
242242
elif isinstance(part, mcp_types.ResourceLink):
243-
return {
244-
'type': 'resource_link',
245-
'uri': part.uri,
246-
'name': part.name,
247-
'mimeType': part.mimeType,
248-
}
243+
resource_result: mcp_types.ReadResourceResult = anyio.run(lambda: self._client.read_resource(part.uri))
244+
content = resource_result.contents[0]
245+
if isinstance(content, mcp_types.TextResourceContents):
246+
return content.text
247+
elif isinstance(content, mcp_types.BlobResourceContents):
248+
return messages.BinaryContent(
249+
data=base64.b64decode(content.blob), media_type=content.mimeType or 'application/octet-stream'
250+
)
251+
else:
252+
assert_never(content)
253+
249254
else:
250255
assert_never(part)
251256

0 commit comments

Comments
 (0)