MCP'de kaynaklar; sunucunun sunduğu dosyalar, veritabanı kayıtları, oluşturulan belgeler veya dinamik API çıktıları gibi adreslenebilir veri nesnelerini temsil eder.
Bunlar istemci kontrollüdür, yani istemci hangi kaynağı talep edeceğine ve içeriği nasıl yorumlayacağına karar verebilir.
İlgili iki ana metot şunlardır:
- resources/list: Sunucunun sunduğu mevcut tüm kaynak tanımlarının listesini ister. TsgcWSAPIServer_MCP bileşeni tarafından dahili olarak işlenir.
- resources/read: Belirli bir kaynağın içeriğini ve isteğe bağlı meta verilerini alır. Sunucu tarafından yeni bir istek alındığında OnMCPRequestResource olayı çağrılır. Bir kaynak tipik olarak şunları içerir:
- uri: kaynak tanımlayıcısı.
- mimeType: içerik türü (text/plain, application/json, image/png vb.).
- data veya content: asıl yük (metin veya ikili).
Ayrıca, sunucu bildirilen yeteneklerinde resources.listChanged = true olarak ayarlarsa, kaynak kataloğu güncellendiğinde notifications/resources/list_changed gibi bildirimler gönderebilir.
Kaynak Listesi
Sunucu, kaynakların bellek içi bir kataloğunu TsgcAI_MCP_ResourcesList içinde tutar. Kaynakların uri'ye göre benzersiz olması garanti edilir, açıklamalar sunar ve belirtimin resources.list metoduna verilen yanıtta yayımlanan girdi uri'si gibi bir JSON Schema sağlar. Bir istemci resources.list'i çağırdığında, TsgcWSAPIServer_MCP isteği yükler, geçerli kataloğu serileştirir ve 200 HTTP durum koduyla geri gönderir.
Bir dosya kaynağı yayınlayan örnek kod:
procedure TMainForm.FormCreate(Sender: TObject);
begin
MCPServer.Resources.Clear;
MCPServer.Resources.AddResource(
'file:///project/src/main.rs', // URI
'main.rs', // Name
'Rust Software Application Main File', // Title
'Primary application entry point', // Description
'text/x-rust');
end;
Kaynak İsteği
Bir istemci bir resource.read JSON-RPC isteği yaptığında, TsgcWSAPIServer_MCP , OnMCPRequestResource olayını tetiklemeden önce güçlü bir şekilde türlendirilmiş istek nesnesini (uri kaynağı, ad ve sağlanan argümanlar dahil) doldurur. İşleyiciniz, daha sonra bir başarı HTTP durum koduyla birlikte istemciye geri serileştirilen yanıt yükünü doldurur.
Tipik bir işleyici şöyle görünür:
procedure OnMCPRequestResource(Sender: TObject;
const aSession: TsgcAI_MCP_Session; const aRequest: TsgcAI_MCP_Request_ResourcesRead;
const aResponse: TsgcAI_MCP_Response_ResourcesRead);
begin
if aRequest.Params.Uri = 'file:///project/src/main.rs' then
aResponse.Result.Contents.AddContentText('file:///project/src/main.rs',
'main.rs', 'Rust Software Application Main File', 'text/x-rust',
'fn main() {\n println!(\"Hello world!\");\n}');
end;
Daha Fazla Bilgi
Ayrıntılı belgeler ve bileşen referansı için ziyaret edin:
sgcWebSockets MCP Prompts Resources Kılavuzu
Aşağıda Windows için bir Delphi MCP Sunucusu Demosu bulabilirsiniz:
