Le connecteur MCP (Model Context Protocol) permet à Claude d'accéder aux outils depuis des serveurs MCP externes. Cela permet l'intégration avec des services tiers et des fournisseurs d'outils personnalisés.
Remarque : Le connecteur MCP nécessite l'en-tête bêta mcp-client-2025-11-20. Définissez ceci dans la propriété AnthropicOptions.BetaHeaders.
Utilisez la méthode pratique pour créer un message avec un serveur MCP.
Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
Anthropic.AnthropicOptions.ApiKey := 'API_KEY';
Anthropic.AnthropicOptions.BetaHeaders := 'mcp-client-2025-11-20';
WriteLn(Anthropic._CreateMessageWithMCP('claude-sonnet-4-20250514',
'What tools are available?',
'https://my-mcp-server.example.com/sse',
'my-mcp-server'));
Utilisez les classes typées pour un contrôle total de la configuration du serveur MCP, y compris l'authentification.
Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
Anthropic.AnthropicOptions.ApiKey := 'API_KEY';
Anthropic.AnthropicOptions.BetaHeaders := 'mcp-client-2025-11-20';
oRequest := TsgcAnthropicClass_Request_Messages.Create;
Try
oRequest.Model := 'claude-sonnet-4-20250514';
oRequest.MaxTokens := 4096;
// Configure MCP server
oServer := TsgcAnthropicClass_Request_MCPServer.Create;
oServer.ServerType := 'url';
oServer.Url := 'https://my-mcp-server.example.com/sse';
oServer.Name := 'my-server';
oServer.AuthorizationToken := 'OAUTH_TOKEN'; // Optional auth
oServers := oRequest.MCPServers;
SetLength(oServers, 1);
oServers[0] := oServer;
oRequest.MCPServers := oServers;
// Add MCP toolset
oTool := TsgcAnthropicClass_Request_Tool.Create;
oTool.ToolType := 'mcp_toolset';
oTool.MCPServerName := 'my-server';
oTools := oRequest.Tools;
SetLength(oTools, 1);
oTools[0] := oTool;
oRequest.Tools := oTools;
// Add user message
oMessage := TsgcAnthropicClass_Request_Message.Create;
oMessage.Role := 'user';
oMessage.Content := 'Search for recent news about AI.';
oMessages := oRequest.Messages;
SetLength(oMessages, 1);
oMessages[0] := oMessage;
oRequest.Messages := oMessages;
oResponse := Anthropic.CreateMessage(oRequest);
Try
for i := 0 to Length(oResponse.Content) - 1 do
begin
if oResponse.Content[i].ContentType = 'text' then
WriteLn(oResponse.Content[i].Text)
else if oResponse.Content[i].ContentType = 'mcp_tool_use' then
WriteLn(Format('MCP tool call: %s on %s',
[oResponse.Content[i].Name, oResponse.Content[i].ServerName]));
end;
Finally
oResponse.Free;
End;
Finally
oServer.Free;
oTool.Free;
oMessage.Free;
oRequest.Free;
End;