42 lines
1.8 KiB
Markdown
42 lines
1.8 KiB
Markdown
# MCP Integration
|
|
|
|
Bu iskelet, mevcut Axum backend icine MCP uyumlu bir HTTP katmani ekler.
|
|
|
|
## Eklenen Ana Bilesenler
|
|
|
|
- `src/app/routes/mcp.rs`: MCP HTTP (`POST /api/v1/mcp`) ve SSE (`GET /api/v1/mcp/sse`) endpointleri
|
|
- `src/app/routes/mcp.rs`: JWT korumali dokuman upload endpointi (`POST /api/v1/mcp/documents/upload`)
|
|
- `src/app/routes/mcp.rs`: Swagger dostu MCP endpointleri (`POST /api/v1/mcp/tools/list`, `POST /api/v1/mcp/tools/call`)
|
|
- `src/app/mcp/auth.rs`: MCP route'lari icin JWT access token middleware'i
|
|
- `src/app/mcp/tools/mod.rs`: MCP tool registry ve tool implementasyonlari
|
|
- `src/app/services/mcp_service.rs`: Redis destekli tool-list cache ve tool dispatch
|
|
- `src/app/services/mcp_documents_service.rs`: md/txt yukleme, okuma ve listeleme servisi
|
|
- `src/app/repository/mcp_documents_repository.rs`: SeaORM tabanli MCP dokuman DB erisim katmani
|
|
- `src/app/models/mcp.rs`: MCP request/response modelleri
|
|
- `src/app/errors/mod.rs`: JSON-RPC uyumlu MCP hata modeli
|
|
|
|
## Desteklenen MCP Methodlari
|
|
|
|
- `initialize`
|
|
- `tools/list`
|
|
- `tools/call`
|
|
|
|
## Ornek Toollar
|
|
|
|
- `system.health`
|
|
- `system.echo` (ornek tool, mesaji oldugu gibi veya uppercase dondurur)
|
|
- `system.time` (sunucu unix timestamp doner)
|
|
- `images.process` (mevcut `images::service::process_image` cagrisi)
|
|
- `images.list` (mevcut `images::service::list_images` cagrisi)
|
|
- `documents.list` (JWT sahibinin dokuman listesi)
|
|
- `documents.read` (dokuman icerigi)
|
|
- `documents.search` (kullanici dokumanlarinda dosya adi + icerik aramasi)
|
|
|
|
## Notlar
|
|
|
|
- MCP endpointleri JWT `access` token gerektirir.
|
|
- Upload endpointi sadece `md` ve `txt` kabul eder.
|
|
- Tool listesi Redis varsa `mcp:tools:list` anahtari altinda TTL ile cache'lenir.
|
|
- SSE endpointi bu asamada hazirlik eventi donduren bir iskelettir; canli publish/subscribe akisi icin TODO vardir.
|
|
|