MCP dosya çıktıları
MCP sunucularının kaynaklar üzerinden ajan'a nasıl dosya sunduğunu öğrenin. ajan metin veya base64 verili MCP kaynak içeriğini indirilebilir dosya eklerine dönüştürür.
MCP spesifikasyonu kaynakları, MCP sunucularının dosyaları ve diğer bağlamsal verileri istemcilere sunmasının standart yolu olarak tanımlar. Kaynaklar uygulama odaklıdır: ana uygulama kullanıcıların bunları nasıl keşfedeceğini, seçeceğini, okuyacağını, önizleyeceğini veya ekleyeceğini kararlaştırır.
ajan'da MCP kaynakları, kullanıcıların önizleyebileceği, indirebileceği ve diğer araçlara iletebileceği düzenli dosya ekleri haline gelebilir.
Dosyalar için MCP kaynakları
Kaynaklar nasıl çalışır
Bir MCP sunucusu dosyaları kararlı URI'lerle kaynak olarak sunar. Bir istemci bunları resources/list ile keşfedebilir, ardından içeriğini resources/read ile alabilir.
Dosya çıktısı için önemli kısım resources/read yanıtıdır. Kaynak içerikleri metin olabilir:
{
"contents": [
{
"uri": "file:///reports/summary.md",
"mimeType": "text/markdown",
"text": "# Summary\n\nGenerated by my MCP server."
}
]
}Veya blob içinde base64 kodlanmış ikili veri:
{
"contents": [
{
"uri": "file:///reports/report.pdf",
"mimeType": "application/pdf",
"blob": ""
}
]
}ajan bu contents girdilerini okur ve aksiyon tarzı dosya çıktıları olarak saklar. uri dosya adını sağlar, mimeType ajan'a dosyayı nasıl işleyeceğini söyler ve text veya blob dosya içeriğini içerir.
Demo kaynak sunucusu
Bu minimal sunucu bir Markdown dosyasını MCP kaynağı olarak sunar:
server.registerResource(
"summary",
"file:///reports/summary.md",
{
title: "Generated Summary",
description: "A Markdown summary generated by the MCP server",
mimeType: "text/markdown",
},
async (uri) => ({
contents: [
{
uri: uri.href,
mimeType: "text/markdown",
text: "# Summary\n\nThis file came from an MCP resource.",
},
],
}),
);ajan bu kaynağı okuduğunda summary.md dosyasını konuşmaya ekler.
Gereksinimler
- Dosya verisini
contentsiçinde döndürün. mimeTypeekleyin; ajan'ın dosyayı doğru işlemesi için buna ihtiyacı vardır.- Anlamlı bir
uriekleyin; son yol segmenti dosya adı olur. - İkili dosyalar için data URI öneki olmadan base64 kodlanmış
blobkullanın. - Düz metin, Markdown, JSON, HTML ve diğer metin tabanlı dosyalar için
textkullanın.
Örnek kaynak çıktısı
{
"contents": [
{
"uri": "file:///example.txt",
"mimeType": "text/plain",
"text": "Hello world"
}
]
}ajan bunu bir ek olarak saklar. Araç sonucu orijinal contents dizisini tutar ve files altında dosya erişim meta verisi ekler:
{
"contents": [
{
"uri": "file:///example.txt",
"mimeType": "text/plain",
"text": "Hello world"
}
],
"files": {
"successful_files": [
{
"fileName": "example.txt",
"mimeType": "text/plain",
"status": "completed",
"access_methods": {
"document_search": false,
"file_input_actions": true,
"download_available": true
}
}
]
}
}text veya blob değeri, ajan dosyayı ek olarak sakladıktan sonra araç sonucunda kalır; bu nedenle kaynak içeriği modelin bağlam penceresine sayılır. İkili dosyalarda base64 blob kullanılabilir bağlamın büyük bir payını alabilir. Modelin konuşmanın geri kalanı için yer tutması adına kaynak içeriklerini küçük tutun.
İlgili belgeler
- ajan Cookbook - Dosya yüklemeleri dahil çalıştırılabilir MCP tarifleri
- MCP araçlarında dosya girişi - Kullanıcı dosyalarını MCP araçlarına iletme
- Model Context Protocol (MCP) - ajan'da MCP'ye genel bakış
- ajan Agent MCP sunucusu - ajan ajanlarınızı MCP araçları olarak sunma
SSS
Sonuç indirilebilir bir artefakt olarak daha iyi ele alındığında — üretilmiş belge, dönüştürülmüş dosya, rapor, dışa aktarım veya ikili varlık gibi — dosyayı kaynak olarak sunun. ajan kaynaklardan ekler oluşturur. Düzenli MCP araç sonuçlarındaki dosyalar ek olmaz.
MCP sunucusunun dosyayı desteklenen bir kaynak olarak sunduğunu, beklenen meta veriyi döndürdüğünü ve ajan'ın eke dönüştürebileceği bir biçim kullandığını kontrol edin. Kaynak okumasının başarıyla tamamlandığını da doğrulayın.