Günlük diziniDockup / saha notu
Note / agent-skills-vs-mcp

Güvenilir Araç Kullanan Agent'lar için Agent Skills ve MCP

Agent skills ve MCP'yi açıklıyoruz: talimatları, tool bağlantılarını, güvenlik sınırlarını ve versioning süreçlerini karşılaştırın; güvenilir AI agent'lar için ikisini ne zaman birlikte kullanmanız gerektiğini öğrenin.

agent skills ve MCP seçimi çoğu zaman “bir AI'a araç vermenin” iki farklı yolu arasındaki rekabet olarak ele alınır. Bu bakış açısı eksiktir. Bir skill ile Model Context Protocol server, problemin farklı katmanlarını çözer: Biri agent'a bir alanda nasıl çalışacağını öğretirken diğeri standartlaştırılmış bir bağlantı üzerinden yetenekleri ve context'i sunar.

Dockup, bir SKILL.md kullanır; çünkü temel arayüzü mevcut bir command-line tool'dur. Skill, Claude Code ve Codex'e bu CLI'ı güvenli şekilde kullanmayı öğretir: her zaman JSON istemek, non-interactive şekilde authenticate olmak, hedefleri tam olarak belirlemek, terminal deployment state'lerini beklemek ve destructive işlemlerden önce durmak.

Agent skill nedir ve SKILL.md neden önemlidir?

Agent skill, bir görevin amacı skill'in amacıyla eşleştiğinde agent'ın yükleyebileceği işletim talimatlarını ve destekleyici referansları içeren bir directory'dir. SKILL.md giriş noktasıdır: frontmatter bölümü capability'yi açıklar; gövdesi ise workflow'ları, kısıtlamaları, örnekleri ve karar kurallarını anlatır.

Çalıştırılabilir arayüz zaten mevcut olduğunda skill özellikle kullanışlıdır. Agent'ın iyi tasarlanmış bir CLI'ı çalıştırmak için yeni bir protocol adapter'a ihtiyacı yoktur. İhtiyacı olan şey, aşağıdaki konularda doğru bilgidir:

  • Hangi command'lerin authoritative olduğu.
  • Machine use için hangi flag'lerin gerekli olduğu.
  • Bir sandbox'ta authentication'ın nasıl çalıştığı.
  • Hangi çıktıların başarıyı kanıtladığı.
  • Hangi işlemlerde bir insanın gerektiği.
  • Secret'ların nerelerde görünebileceği.
  • Yaygın hataların nasıl teşhis edileceği.

Dockup kurulumu bilerek basit tutulmuştur:

npm install -g dockup-cli
dockup skill install
dockup skill status --json

Tek bir canonical kopya ~/.agents/skills/dockup/ konumuna yazılır ve hem Claude Code hem de Codex'e linklenir. Skill, CLI package içinde gelir ve dockup update ikisini birlikte günceller. Bu packaging kararı, yaygın bir hata durumunu önler: kurulu binary'nin desteklemediği command'leri açıklayan talimatlar.

Skill deployment engine değildir. CLI işlemleri gerçekleştirir, JSON üretir ve exit code'lar döndürür. Skill, agent'ın izlediği kullanım kılavuzudur.

Model Context Protocol nedir?

Yaygın olarak MCP adıyla anılan Model Context Protocol, bir AI uygulamasını client-server architecture üzerinden harici tool'lara, resource'lara ve prompt'lara bağlayan açık bir protocol'dür. Bir MCP server, çağrılabilir tool'lar, okunabilir resource'lar ve yeniden kullanılabilir prompt'lar sunabilir. Agent host içindeki MCP client bu capability'leri keşfeder ve çağırır.

MCP, local shell execution yerine kalıcı bir protocol boundary gerektiğinde değerlidir. Örnekler:

  • Dikkatle type edilmiş operasyonları sunması gereken remote bir SaaS API.
  • Göz atılabilir resource'lar sağlayan bir data source.
  • CLI göndermeden tool discovery özelliği sunmak isteyen bir desktop application.
  • Birçok agent host ve işletim sistemi tarafından kullanılan merkezi bir service.
  • Server'ın credential'ları ve policy'yi yönetmesi gereken bir integration.

Server, her tool'un arkasındaki implementation'ı kontrol eder. Agent host; tanımlanan adı, description'ı, input schema'yı ve output'u görür. Transport, lifecycle ve authorization, seçilen MCP kurulumuna bağlıdır.

MCP, domain judgment'ı otomatik olarak sağlamaz. Bir server delete_service sunabilir; ancak agent'ın silmenin ne zaman uygun olduğuna ilişkin bir policy'ye yine de ihtiyacı vardır. Buna karşılık bir skill bir workflow'u açıklayabilir, ancak temel CLI veya API'de bulunmayan capability'ler oluşturamaz.

Agent skills ve MCP pratikte nasıl farklılaşır?

En net karşılaştırma, sorumluluklar üzerinden yapılabilir:

BoyutAgent skill / SKILL.mdMCP server
Temel görevWorkflow'ları ve kısıtlamaları öğretmekTool'ları, resource'ları ve prompt'ları sunmak
ExecutionMevcut CLI, file'lar, API'ler veya application'ları kullanırServer çağrılabilir capability'leri implementation eder
DiscoveryAgent eşleşen skill talimatlarını yüklerClient server capability'lerini keşfeder
DeploymentGenellikle package ile kurulan bir folderLocal veya remote bir server process'i
Version riskiTalimatlar tool'dan drift edebilirServer schema'sı backend davranışından drift edebilir
En uygun kullanımMevcut arayüzün uzman kullanım rehberine ihtiyaç duymasıCapability'nin standartlaştırılmış bir protocol boundary'ye ihtiyaç duyması
Güvenlik odağıDavranış kuralları ve command güvenliğiConnection, server trust, scope'lar ve tool authorization
Offline/local kullanımLocal CLI'larla mükemmelLocal MCP server ile mümkün
Birden fazla client'ta yeniden kullanımSkill'i her host için kopyalamak veya package'lamakTek bir server, birden fazla uyumlu client'ı destekleyebilir

Her iki sütun da doğası gereği daha “agentic” değildir. Güvenilirlik, arayüzü sistemle eşleştirmekten gelir.

Dockup için CLI'da zaten 135 command, structured JSON, gerçek exit code'lar, 900 saniyelik varsayılan deploy timeout'u, secret masking ve confirmation gate'leri bulunur. Her command'i başka bir local server içinde sarmalamak, temel deployment truth'u değiştirmeden bir translation layer ekler. Skill, zaten mevcut olan executable contract'ın agent tarafından nasıl kullanılacağını öğrettiği için doğrudan uygun çözümdür.

CLI'ı olmayan remote bir platform bunun tam tersine karar verebilir. Bir MCP server, eksik olan typed tool surface'i sağlayabilir ve API credential'larını agent'ın shell environment'ının dışında tutabilir.

Ne zaman skill, MCP veya ikisini birlikte kullanmalısınız?

Aşağıdaki koşulların tümü geçerliyse yalnızca skill kullanın:

  1. Olgun bir CLI veya local application gerekli capability'yi zaten sunuyor.
  2. Agent host'un bunu çalıştırmasına izin veriliyor.
  3. Machine-readable output ve exit semantics yeterli.
  4. Temel eksik connectivity değil, procedural knowledge.
  5. Packaging, talimatları executable ile uyumlu tutabiliyor.

Agent'ın protocol-native bir connection'a ihtiyaç duyduğu ve server'ın kendisinin güvenli çalışma için yeterli context'i sağlayabildiği durumlarda yalnızca MCP kullanın. Bu yaklaşım; read-heavy data access, remote service'ler ve stable bir cross-client tool interface isteyen application'lar için yaygındır.

Protocol tool'larının daha kapsamlı bir operating playbook'a ihtiyaç duyduğu durumlarda ikisini birlikte kullanın. Bir MCP server güvenli ve type edilmiş primitive'ler sunabilirken skill multi-step business workflow'unu, escalation rule'larını ve validation criteria'larını açıklayabilir. Skill, agent'a her MCP tool'unu ne zaman ve neden çağıracağını söyleyebilir.

Birleşik architecture şu şekilde görünebilir:

User request
    ↓
Skill: workflow, policy, validation rules
    ↓
MCP client: discovers typed capabilities
    ↓
MCP server: authenticates and executes
    ↓
External system

CLI merkezli bir architecture daha basittir:

User request
    ↓
Skill: workflow, policy, validation rules
    ↓
CLI: JSON output + exit code + wait semantics
    ↓
Platform API

Complexity, iyileştirdiği bir boundary ile gerekçelendirilmelidir. Sırf moda olduğu için MCP eklemek; deploy edilmesi, authenticate edilmesi, monitor edilmesi ve version'lanması gereken başka bir process oluşturabilir.

Karar örnekleri

DurumDaha iyi başlangıç noktasıNeden
JSON output sunan local deployment CLISkillConnectivity zaten mevcut
Structured resource'lara sahip company knowledge baseMCPResource discovery merkezi öneme sahip
CLI'ı olmayan database administration APIMCPTyped remote operation'lar kullanışlı
Mevcut tool'lar arasında karmaşık release runbook'uSkillTemel ihtiyaç cross-tool procedure
Ayrıntılı policy gerektiren regulated remote operation'larİkisi birlikteServer scope'u uygular; skill davranışı yönlendirir
Tek seferlik personal automationSkill veya doğrudan CLIEn düşük operational overhead

Doğru yanıt zaman içinde değişebilir. Bir ekip CLI etrafında bir skill ile başlayabilir; ardından remote multi-client access veya merkezi credential mediation önem kazandığında bir MCP server ekleyebilir.

Güvenlik ve trust boundary'leri nasıl karşılaştırılır?

Skill'ler talimatlardan oluştuğu için trust riski, operational influence'a sahip code documentation riskine benzer. Kötü niyetli veya dikkatsiz bir skill, agent'a secret'ları açığa çıkarmasını, safeguard'ları devre dışı bırakmasını ya da destructive command'ler çalıştırmasını söyleyebilir. Yalnızca başlığını değil, directory'nin tamamını inceleyin.

Skill incelemesinde şu soruları sorun:

  • Kim yayınladı?
  • Belirtilen amacı dışındaki command'leri çağırıyor mu?
  • Agent'a token'ları veya credential'ları yazdırmasını söylüyor mu?
  • Confirmation'ları bypass ediyor mu?
  • Command örnekleri kurulu version'dan mı türetilmiş?
  • Güncellemeler skill'i review olmadan değiştirebilir mi?
  • Skill, sınırları belirlenmiş bir target-discovery process tanımlıyor mu?

MCP bir server trust boundary'si oluşturur. Client, hangi server'a bağlandığını, server'ın hangi tool'ları sunduğunu, hangi verilerin machine dışına çıktığını ve authorization'ın nasıl scope edildiğini bilmelidir. Server, sabit bir tool adı arkasındaki davranışı değiştirebilir; bu nedenle deployment provenance ve server versioning önemlidir.

MCP incelemesinde şu soruları sorun:

  • Server local mi remote mu?
  • Server'ı kim işletiyor?
  • Credential'lar nasıl saklanıyor ve rotate ediliyor?
  • Hangi tool call'ları data mutate edebilir veya silebilir?
  • Tool input'ları server-side validate ediliyor mu?
  • Output'lar untrusted content olarak mı ele alınıyor?
  • Her call audit edilebiliyor mu?
  • Client kullanılabilir tool'ları kısıtlayabilir mi?

Agent host, “MCP üzerinden keşfedildi” ifadesini “güvenli” olarak değerlendirmemelidir. Protocol standardization interoperability'yi geliştirir; her server'ın güvenilirliğini garanti etmez.

Dockup'ın skill'i çeşitli safety rule'ları kodlar: interactive login yerine DOCKUP_TOKEN kullanmak, credential'ları asla yazdırmamak, dockup services --json ile target'ları keşfetmek, --wait kullanmak ve needs_confirm durumunda durmak. CLI, secret'ları mask'leyerek ve explicit approval olmadan destructive operation'ları reddederek bu talimatları güçlendirir. Bu defense-in-depth model AI agent'lar için production guardrail'leri makalesinde açıklanmıştır.

Versioning ve failure recovery nasıl çalışmalı?

Version drift her iki yaklaşımda da mümkündür; ancak farklı şekillerde ortaya çıkar.

Dokümante edilen command değiştiğinde skill outdated olabilir. En güçlü mitigation, skill'i executable ile package'lamak ve ikisini tek bir release process'i üzerinden güncellemektir. Dockup bu modeli izler. Agent, kurulu skill'i kontrol edebilir:

dockup skill status --json

Bir update, CLI'ı ve bundled skill'i birlikte yeniler:

dockup update

Bir MCP client, server'ın güncel tool schema'larını keşfedebilir; ancak schema compatibility semantic compatibility'yi garanti etmez. Bir tool aynı input'ları korurken authorization'ı, side effect'leri, latency'yi veya output yorumunu değiştirebilir. Server version yayınlamalı, mümkün olduğunda backward compatibility'yi korumalı ve structured error'lar döndürmelidir.

Failure handling de farklıdır. CLI doğal olarak process exit code'ları sunar. Bir MCP tool call da aynı derecede net bir application-level result sağlamalıdır. Her iki durumda da agent, transport-level acknowledgment'dan başarı sonucu çıkarmamalıdır.

Kullanışlı bir reliability checklist'i şöyledir:

GereksinimSkill + CLI implementationMCP implementation
Capability discoveryCLI schemaServer tool list
Structured outputJSON/NDJSONTyped tool result
Failure signalNon-zero exit + codeExplicit error result
Long operation--wait / documented streamProgress veya completion protocol
Secret protectionMasking ve stderr disciplineServer-side redaction
Destructive approvalCLI confirmation gateServer policy veya client confirmation
AuditPlatform audit logServer ve backend audit log'ları
Version checkSkill/binary statusServer metadata ve schema'lar

Arayüz, failure'ın success olarak yanlış raporlanmasını success'in yanlış raporlanmasından daha zor hale getirmelidir.

Production ekibi hangi architecture'ı seçmeli?

Gerçek eksikliği tanımlayarak başlayın.

Ekip zaten güvendiği ve işlettiği bir CLI'a sahipse skill-first architecture'ı seçin. CLI'ın machine contract'ına yatırım yapın: JSON, gerçek exit code'lar, stable error code'lar, version ile uyumlu talimatlar ve confirmation. Ardından skill'i bu tool ile package'layın. Bu yaklaşım, Dockup üzerinden Claude Code deployment ve Codex deployment için en kısa yoldur.

Capability doğası gereği remote, resource-oriented veya birçok client arasında paylaşılıyorsa MCP-first seçin. Server'ı production software olarak ele alın: authenticate edin, scope'layın, monitor edin ve her mutation'ı review edin.

Policy ve connectivity bağımsız olarak karmaşıksa ikisini birlikte seçin. Sorumlulukları net tutun. Skill, server implementation'ını tekrar etmemeli; server description'ı da kapsamlı bir operational manual'a dönüşmemelidir.

Pratik bir evaluation workshop'u

Bir read operation, bir reversible write, bir long-running operation ve engellenmesi gereken bir destructive operation içeren küçük bir proof çalıştırın. Her tasarımı şu kriterlere göre puanlayın:

  1. Agent operation'ı nasıl keşfediyor?
  2. Credential'lar nasıl sağlanıyor?
  3. Başarı nasıl kanıtlanıyor?
  4. Failure nasıl kategorize ediliyor?
  5. İnsan tehlikeli işlemi nasıl onaylıyor?
  6. Log'lar ve audit evidence nasıl alınıyor?
  7. Version'lar nasıl uyumlu tutuluyor?
  8. Integration nasıl temiz şekilde kaldırılıyor?

Kararı yalnızca bir diagram'a bakarak vermeyin. Failure path'lerini gözlemleyin. Happy path'te zarif görünen bir design; deployment timeout olduğunda, server disconnect olduğunda veya instruction file bir release gerisinde kaldığında belirsizleşebilir.

Dockup CLI reference, skill destekli bir CLI contract'ına somut bir örnek sunar. Daha geniş kapsamlı AI-powered development makalesi, agent'lar development loop'un daha büyük bir bölümünü üstlendikçe bu arayüzlerin neden önemli olduğunu açıklar.

Operational ownership'ı hesaba katın

Integration'ın sahibi, architecture'ı kadar önemlidir. CLI etrafına kurulmuş bir skill genellikle CLI'ın installation, release ve support process'ini devralır. Binary'yi yayınlayan ekip, eşleşen talimatları gönderebilir ve bunları birlikte test edebilir.

Bir MCP server ayrı bir production component'i oluşturur. Birilerinin hosting, certificate'lar veya local process startup, authentication, monitoring, incident response, schema compatibility ve dependency update'lerinden sorumlu olması gerekir. Server anlamlı bir shared boundary olduğunda bu yatırım karşılığını verebilir. Zaten yeterli bir executable'a yalnızca local call'ları forward ettiğinde ise gereksiz overhead oluşturur.

Evaluation sırasında her layer'ın sahibini yazılı olarak belirleyin:

LayerSkill-first sahibiMCP-first sahibi
Domain instructionsSkill publisherClient prompt veya companion skill
Executable behaviorCLI publisherMCP server team
Credential handlingCLI ve runtime environmentServer ve client connection
AvailabilityLocal executable ve platform APIServer process, transport ve backend
Schema compatibilityCLI release processMCP server release process
Incident evidenceCLI output ve platform auditClient log'ları, server log'ları ve backend audit

Bu ownership table, agent skills ve MCP tartışmasını feature checklist'inden çoğu zaman daha net şekilde sonuçlandırır.

Latency ve failure surface'lerini değerlendirin

Local skill ile CLI call'ın yolu kısadır: agent host, process, platform API. MCP path'i server startup, transport negotiation, remote routing ve başka bir authentication layer ekleyebilir. Bu eklemeler doğası gereği kötü değildir; ancak her biri ayrı bir failure surface oluşturur.

Disconnect, expired credential, malformed input, partial long-running operation ve server upgrade durumlarını test edin. Agent, failure'ın host'ta mı, protocol connection'da mı, server'da mı yoksa external platform'da mı gerçekleştiğini söyleyebilmelidir. Production çalışması için genel bir “tool failed” sonucu yeterli değildir.

Uzun deployment'larda interface, terminal-state semantics'i korumalıdır. Çağrı bir CLI --wait operation'ı veya progress kullanan bir MCP tool'u olsun, agent acknowledgment'ı success'e dönüştürmemelidir. Agent skills ve MCP seçimi bu gereksinimi ortadan kaldırmaz.

Truth'tan ödün vermeden portability planlayın

MCP, aynı server'ın shared protocol üzerinden tool'ları duyurması sayesinde compatible client'lar arasındaki portability'yi geliştirebilir. Claude Code ve Codex'in Dockup installation modelinde yaptığı gibi, birden fazla agent aynı directory ve SKILL.md convention'larını desteklediğinde skill'ler de portable olabilir.

Portability ancak semantics kesinliğini koruduğu sürece kullanışlıdır. deploy adlı bir tool'un queued olduğunda mı yoksa healthy olduğunda mı döndüğünü tanımlaması gerekir. “Deploy et ve doğrula” diyen bir skill talimatı, bu kanıtı gerçekten sağlayabilecek bir command'e işaret etmelidir.

En güçlü design, domain truth'u executable layer'a yakın tutar ve üst layer'ı intent'i açıklamak için kullanır. Agent skills ve MCP karşılaştırmasında ne standardized protocol ne de iyi yazılmış bir instruction file, belirsiz bir backend operation'ını telafi edebilir.

Workflow'u production'a taşıyın

Güvenilir bir boundary oluşturan en küçük architecture'ı kullanın. Dockup için packaged skill'i kurun ve CLI'ın deployment truth'unun executable source'u olarak kalmasını sağlayın.

npm install -g dockup-cli
dockup skill install

İlk command CLI'ı kurar. İkinci command, Claude Code ve Codex için eşleşen Dockup skill'ini kurar. app.dockup.ai adresinden ücretsiz başlayın.

SSS

Agent skill'ler ve MCP aynı şey midir?

Hayır. Skill temel olarak talimatlar ve operating knowledge sağlar. MCP ise tool'ları, resource'ları ve prompt'ları client-server connection üzerinden sunmak için bir protocol sağlar.

SKILL.md dosyası command'leri kendi başına çalıştırır mı?

Hayır. Agent'a CLI, file'lar, API'ler veya MCP tool'ları gibi temel capability'leri nasıl kullanacağını söyler. İşlemi executable interface gerçekleştirir.

MCP yerine skill ne zaman daha iyidir?

Olgun bir local CLI zaten güvenli ve machine-readable operation'lar sağlıyorsa ve eksik olan parça workflow guidance ise skill çoğu zaman daha basit bir seçimdir.

Agent skill ve MCP'yi birlikte kullanabilir mi?

Evet. Skill multi-step workflow'u ve policy'yi açıklarken MCP server, bu workflow'un kullandığı typed tool'ları ve resource'ları sunabilir.

Dockup skill'ini neden CLI package içinde sunuyor?

İkisini birlikte package'lamak, dockup update'in executable'ı ve talimatlarını tek seferde yenilemesini sağlar. Böylece skill'in farklı bir command version'ını açıklama riski azalır.