summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrey Taranov <[email protected]>2026-01-12 03:39:42 +0000
committerGitHub <[email protected]>2026-01-11 21:39:42 -0600
commit8b9a85b7e7278813cd6be733d7cd67ef3ea24972 (patch)
treec280f3b9f1e712e34513e9be981462baa4de9498
parent7cbec9a1a78d8c42b83ca0fd0d0efdbc69f813b7 (diff)
downloadopencode-8b9a85b7e7278813cd6be733d7cd67ef3ea24972.tar.gz
opencode-8b9a85b7e7278813cd6be733d7cd67ef3ea24972.zip
fix(mcp): support `resource` content type in MCP tool output (#7879)
-rw-r--r--packages/opencode/src/session/prompt.ts17
1 files changed, 16 insertions, 1 deletions
diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts
index f89161227..34596e629 100644
--- a/packages/opencode/src/session/prompt.ts
+++ b/packages/opencode/src/session/prompt.ts
@@ -777,8 +777,23 @@ export namespace SessionPrompt {
mime: contentItem.mimeType,
url: `data:${contentItem.mimeType};base64,${contentItem.data}`,
})
+ } else if (contentItem.type === "resource") {
+ const { resource } = contentItem
+ if (resource.text) {
+ textParts.push(resource.text)
+ }
+ if (resource.blob) {
+ attachments.push({
+ id: Identifier.ascending("part"),
+ sessionID: input.session.id,
+ messageID: input.processor.message.id,
+ type: "file",
+ mime: resource.mimeType ?? "application/octet-stream",
+ url: `data:${resource.mimeType ?? "application/octet-stream"};base64,${resource.blob}`,
+ filename: resource.uri,
+ })
+ }
}
- // Add support for other types if needed
}
return {