Back to Learn Hub

McpClient

Namespace: Daisi.SDK.Clients.V1.Orc

Inheritance: McpProto.McpProtoClient

Factory

McpClientFactory - create an McpClient using your IClientKeyProvider.

var mcpClientFactory = new McpClientFactory(clientKeyProvider);
var mcpClient = mcpClientFactory.Create();

Remarks

McpClient manages MCP (Model Context Protocol) server registrations. MCP servers are external data sources (databases, APIs, file systems) that can be connected to your DAISI account. Once registered, the system automatically syncs resources from these servers into DAISI Drive, making them searchable via RAG-powered semantic search.

Register a Server

Register a new MCP server with your account:

var response = await mcpClient.RegisterServerAsync(
    name: "My Database",
    serverUrl: "https://mcp.example.com",
    authType: McpAuthType.McpAuthBearer,
    authSecret: "my-bearer-token",
    targetRepositoryId: null,     // auto-creates a repository
    syncIntervalMinutes: 60       // sync every hour
);

if (response.Success)
{
    Console.WriteLine($"Server registered: {response.Server.Id}");
}

List Servers

List all MCP servers registered to your account:

var response = await mcpClient.ListServersAsync();
foreach (var server in response.Servers)
{
    Console.WriteLine($"{server.Name} - {server.Status}");
}

Trigger Sync

Trigger an immediate sync for a specific server:

var response = await mcpClient.TriggerSyncAsync(serverId);
if (response.Success)
{
    Console.WriteLine("Sync triggered successfully.");
}

Toggle Resource Sync

Enable or disable syncing for a specific resource on a server:

await mcpClient.ToggleResourceSyncAsync(
    serverId: "srv-abc123",
    resourceUri: "db://customers/table",
    enabled: true
);

Update Server

Update an existing server's configuration:

var response = await mcpClient.UpdateServerAsync(new UpdateMcpServerRequest
{
    ServerId = "srv-abc123",
    Name = "Updated Name",
    ServerUrl = "https://new-url.example.com",
    AuthType = McpAuthType.McpAuthApiKey,
    SyncIntervalMinutes = 30
});

Remove Server

Remove a registered MCP server:

var response = await mcpClient.RemoveServerAsync("srv-abc123");
if (response.Success)
{
    Console.WriteLine("Server removed.");
}

Authentication Types

MCP servers support three authentication modes:

  • McpAuthNone - No authentication required
  • McpAuthBearer - Bearer token authentication
  • McpAuthApiKey - API key authentication

Server Status

MCP servers report one of these statuses:

  • Connecting - Initial connection in progress
  • Active - Connected and syncing normally
  • Paused - Sync is paused
  • Error - Connection or sync error occurred