Connect
Semantic Kernel
Semantic Kernel (.NET and Python) imports MCP servers as Kernel plugins. Dock becomes a callable plugin for any skill function the kernel runs.
Client
Semantic Kernel
Microsoft's .NET + Python orchestrator. MCP via plugin.
HTTP JSON-RPC (streamable-http)
Dock MCP
trydock.ai/api/mcp
37 tools · OAuth 2.1 + DCR · Bearer
Auth path
1
Mint a
dk_ key in Dock Settings → API keys.2
Paste it as
Authorization: Bearer dk_… in the client config.3
Client calls Dock MCP directly on every request.
Prerequisites
- .NET 8+ or Python 3.10+ with
semantic-kerneland its MCP extra installed. - A Dock
dk_key.
Pythonpython
from semantic_kernel import Kernel
from semantic_kernel.connectors.mcp import MCPStreamableHttpPlugin
kernel = Kernel()
dock = MCPStreamableHttpPlugin(
name="dock",
url="https://trydock.ai/api/mcp",
headers={"Authorization": f"Bearer {os.environ['DOCK_API_KEY']}"},
)
await dock.connect()
kernel.add_plugin(dock, plugin_name="dock").NETcsharp
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Connectors.MCP;
var kernel = Kernel.CreateBuilder().Build();
await kernel.Plugins.AddFromMcpStreamableHttpServer(
"dock",
new Uri("https://trydock.ai/api/mcp"),
new Dictionary<string, string>
{
["Authorization"] = $"Bearer {Environment.GetEnvironmentVariable("DOCK_API_KEY")}"
}
);Troubleshooting
Symptom
Fix
Plugin name collisions
SK scopes functions by plugin name. Keep Dock's plugin name as
dock so tool calls are unambiguous.