Skip to main content

General

AI Ajan Entegrasyonu (MCP Sunucusu)

OpenAI Codex, Claude, Cursor ve özel ajanlar gibi AI asistanlarını Model Bağlam Protokolü (MCP) aracılığıyla Proxus IIoT Platformuna bağlayın.

Proxus, AI asistanlarının ve otonom ajanların IIoT platformunuzla doğal dil aracılığıyla etkileşime girmesini sağlayan bir Model Bağlam Protokolü (MCP) sunucusu içerir. Telemetri verilerini sorgulayın, cihazları yönetin ve iş akışlarını otomatikleştirin—hepsi konuşmaya dayalı yapay zeka aracılığıyla.

Hızlı Başlangıç

  1. AI ajanınızı yapılandırın

    Proxus MCP sunucusunu ajan yapılandırmanıza ekleyin (aşağıdaki Ajan Konfigürasyonu bölümüne bakın).

    Uç Nokta: http://your-proxus-server:8080/mcp

  2. Kimlik Doğrulama

    auth_login aracını kullanın:

    auth_login(userName: "Admin", password: "your-password")

    Token 25 dakika boyunca önbelleğe alınır.

  3. Sorgulamaya Başlayın

    schema_overview()           # Platformu anlayın
    telemetry_devices(hours=24) # Aktif cihazları listeleyin
    telemetry_latest(count=10)  # Son sensör verilerini alın

Mevcut Araçlar

Proxus MCP, dört kategoride düzenlenmiş 12 araç sağlar:

Kimlik Doğrulama Araçları

AraçAçıklama
auth_loginKullanıcı adı/şifre ile giriş yapın, JWT token'ı önbelleğe alın (25 dk)
auth_logoutBir kullanıcı için önbelleğe alınmış token'ı temizleyin
auth_whoamiAktif oturumları ve token durumunu gösterin

Telemetri Araçları (ClickHouse)

ClickHouse'ta (DeviceRawData) saklanan zaman serisi sensör verilerine doğrudan erişim.

AraçAçıklamaParametreler
telemetry_queryÖzel SQL SELECT sorgusu çalıştırınquery, maxRows=1000
telemetry_latestEn son kayıtları alıncount=10, deviceName?, key?
telemetry_statsToplu istatistikler (sayı, min, maks, ort)hours=24, deviceName?, key?
telemetry_devicesSon telemetriye sahip cihazları listeleyinhours=24
telemetry_keysMevcut metrikleri/etiketleri listeleyindeviceName?, hours=24

Telemetri Şeması (DeviceRawData):

SütunTipAçıklama
TimeDateTime64(3)Milisaniye hassasiyetli zaman damgası
DeviceIdUInt32Cihaz tanımlayıcısı
DeviceNameStringCihaz adı
KeyStringEtiket/metrik adı (örn. Sıcaklık, Basınç)
DataTypeEnumBool, Short, Int, Float, Double, String, DateTime
NumericValueFloat64Sayısal değer
StringValueStringDize değeri

Şema Araçları

Mevcut verileri keşfedin ve platform yapısını anlayın.

AraçAçıklama
schema_overviewVeri kaynakları ve iş akışı rehberi ile platforma genel bakış
schema_entitiesOData varlıklarını listeleyin (Device, Tag, Rule, Function, Alarm, vb.)
schema_telemetryÖrnek sorgularla ClickHouse DeviceRawData tablosu şeması

OData Aracı

AraçAçıklama
odata_requestVarlık CRUD işlemleri için OData API isteklerini yürütün

Parametreler: method, path veya endpoint, body?, baseUrl?, userName?/username?, password?

Örnek:

{
  "method": "GET",
  "path": "Device?$top=10&$filter=Connected eq true"
}

Ajan Konfigürasyonu

OpenAI Codex CLI

~/.codex/config.toml dosyasına ekleyin:

[mcp_servers.proxus]
url = "http://localhost:8080/mcp"

Codex'te Kullanım:

› connect to proxus mcp server
› Admin password empty

• Called proxus.auth_login({"userName":"Admin","password":""})
• Connected. Token valid for 25 minutes.

› analyze telemetry data for the last 24 hours

• Called proxus.telemetry_devices({"hours":24})
• Called proxus.telemetry_stats({"hours":24})

Gemini CLI

~/.gemini/settings.json dosyasına ekleyin:

{
  "mcpServers": {
    "proxus": {
      "httpUrl": "http://localhost:8080/mcp"
    }
  }
}

Gemini'de Kullanım:

gemini "analyze recent telemetry data"

Gemini CLI, konfigürasyon için ~/.gemini/settings.json dosyasını kullanır. Sunucuyu ekledikten sonra, tüm Gemini destekli araçlar için kullanılabilir olacaktır.

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) veya %APPDATA%\Claude\claude_desktop_config.json (Windows) dosyasına ekleyin:

{
  "mcpServers": {
    "proxus": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://your-proxus-server:8080/mcp", "--transport", "sse-only"]
    }
  }
}

Cursor IDE

Projenizdeki .cursor/mcp.json dosyasına ekleyin:

{
  "mcpServers": {
    "proxus": {
      "url": "http://localhost:8080/mcp"
    }
  }
}

Windsurf / Codeium

MCP konfigürasyonuna ekleyin:

{
  "servers": {
    "proxus": {
      "type": "http",
      "url": "http://localhost:8080/mcp"
    }
  }
}

Özel Python Ajanı

from mcp import ClientSession
from mcp.client.http import HttpClient

async def query_proxus():
    async with HttpClient("http://localhost:8080/mcp") as client:
        session = ClientSession(client)
        await session.initialize()
        
        # Login
        result = await session.call_tool("auth_login", {
            "userName": "Admin",
            "password": ""
        })
        
        # Get device telemetry
        devices = await session.call_tool("telemetry_devices", {
            "hours": 24
        })
        
        print(devices)

Yaygın İş Akışları

Cihaz Durum Raporu

1. auth_login(userName, password)
2. odata_request(GET, api/odata/Device?$filter=Enabled eq true)
3. telemetry_devices(hours=1)  # Hangi cihazlarda son veriler var?

Telemetri Analizi

1. telemetry_keys(hours=168)     # Hangi metrikler mevcut?
2. telemetry_stats(hours=168, key="Temperature")
3. telemetry_query("SELECT toStartOfHour(Time) as Hour, avg(NumericValue) 
                    FROM DeviceRawData 
                    WHERE Key='Temperature' 
                    GROUP BY Hour 
                    ORDER BY Hour")

Cihaz Sorun Giderme

1. schema_entities()  # Veri modelini anlayın
2. odata_request(GET, api/odata/Device?$filter=DeviceName eq 'PLC_01')
3. telemetry_latest(deviceName="PLC_01", count=50)
4. telemetry_stats(hours=24, deviceName="PLC_01")

Güvenlik Konfigürasyonu

Proxus-config.toml içindeki MCP ayarları. Detaylar için Konfigürasyon Referansına bakın.

[MCP]
Enabled = true                    # MCP sunucusunu etkinleştir/devre dışı bırak
AllowedMethods = "GET,POST,PATCH,PUT"  # İzin verilen HTTP metotları
BlockDelete = true                # DELETE işlemlerini engelle
AdminOnly = false                 # Sadece yönetici kullanıcılara kısıtla
RateLimitEnabled = true           # Hız sınırlamayı etkinleştir
RateLimitRequestsPerMinute = 60   # Kullanıcı başına dakika başına istek
AuditLogging = true               # Tüm MCP işlemlerini logla
IPWhitelist = []                  # IP kısıtlaması (boş = herkese izin ver)
MaxConcurrentSessionsPerUser = 0  # 0 = sınırsız
AlertOnSuspiciousActivity = false # Şüpheli girişimleri logla

Üretim Önerileri

Salt Okunur Mod (Maksimum Güvenlik):

[MCP]
Enabled = true
AllowedMethods = "GET"
AdminOnly = true
RateLimitRequestsPerMinute = 30
IPWhitelist = ["10.0.0.0/8", "192.168.0.0/16"]

Standart Mod (Kontrollü Yazma):

[MCP]
Enabled = true
AllowedMethods = "GET,POST,PATCH"
BlockDelete = true
RateLimitRequestsPerMinute = 60
AuditLogging = true

Sorun Giderme

Bağlantı Başarısız

  1. Sunucunun çalıştığını kontrol edin: curl http://localhost:8080/healthz
  2. Proxus-config.toml dosyasında MCP'nin etkinleştirildiğini doğrulayın
  3. Güvenlik duvarının 8080 portuna izin verdiğini kontrol edin

401 Yetkisiz

  1. Geçerli kimlik bilgileriyle önce auth_login çağırın
  2. Token süresi 25 dakika sonra dolar—gerekirse yeniden kimlik doğrulayın
  3. Yönetici olmayan hesap kullanıyorsanız AdminOnly ayarını kontrol edin

Hız Sınırı Aşıldı

Konfigürasyonda sınırı artırın:

[MCP]
RateLimitRequestsPerMinute = 120

Araç Bulunamadı

Doğru araç adlarını kullandığınızdan emin olun:

  • Telemetri: telemetry_query, telemetry_latest, telemetry_stats, telemetry_devices, telemetry_keys
  • Şema: schema_overview, schema_entities, schema_telemetry
  • OData: odata_request
  • Kimlik Doğrulama: auth_login, auth_logout, auth_whoami

API Referansı

Uç Nokta

POST http://your-server:8080/mcp
Content-Type: application/json
Accept: text/event-stream, application/json

Başlatma İsteği

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2024-11-05",
    "clientInfo": {"name": "my-agent", "version": "1.0"},
    "capabilities": {}
  }
}

Araç Çağrı İsteği

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "telemetry_latest",
    "arguments": {"count": 10}
  }
}

İlgili Kaynaklar