MCP(Model Context Protocol) 커넥터를 사용하면 Claude가 외부 MCP 서버의 도구에 접근할 수 있습니다. 이를 통해 서드파티 서비스 및 사용자 지정 도구 공급자와의 통합이 가능합니다.
참고: MCP connector에는 베타 헤더 mcp-client-2025-11-20이 필요합니다. AnthropicOptions.BetaHeaders 속성에 이를 설정하십시오.
편의 메서드를 사용하여 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'));
인증을 포함하여 MCP 서버 구성을 완벽하게 제어하려면 유형이 지정된 클래스를 사용하십시오.
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;