File tree Expand file tree Collapse file tree 5 files changed +147
-0
lines changed
docs/guides/tools-connectors-mcp/responses Expand file tree Collapse file tree 5 files changed +147
-0
lines changed Original file line number Diff line number Diff line change 1+ // SAMPLE: Generate response from remote MCP with approval through Responses API
2+ // PAGE: https://platform.openai.com/docs/guides/tools-connectors-mcp#approvals
3+ // GUIDANCE: Instructions to run this code: https://aka.ms/oai/net/start
4+ #pragma warning disable OPENAI001
5+
6+ #: package OpenAI @2 . *
7+ #: property PublishAot = false
8+
9+ using OpenAI. Responses ;
10+
11+ string key = Environment . GetEnvironmentVariable ( "OPENAI_API_KEY" ) ! ;
12+ OpenAIResponseClient client = new ( model : "gpt-5" , apiKey : key ) ;
13+
14+ ResponseCreationOptions options = new ( ) ;
15+ options . Tools . Add ( ResponseTool . CreateMcpTool (
16+ serverLabel : "dmcp" ,
17+ serverUri : new Uri ( "https://dmcp-server.deno.dev/sse" ) ,
18+ toolCallApprovalPolicy : new McpToolCallApprovalPolicy ( GlobalMcpToolCallApprovalPolicy . AlwaysRequireApproval )
19+ ) ) ;
20+
21+ // STEP 1: Create response that requests tool call approval
22+ OpenAIResponse response1 = ( OpenAIResponse ) client . CreateResponse ( [
23+ ResponseItem . CreateUserMessageItem ( [
24+ ResponseContentPart . CreateInputTextPart ( "Roll 2d4+1" )
25+ ] )
26+ ] , options ) ;
27+
28+ McpToolCallApprovalRequestItem ? approvalRequestItem = response1 . OutputItems . Last ( ) as McpToolCallApprovalRequestItem ;
29+
30+ // STEP 2: Approve the tool call request and get final response
31+ options . PreviousResponseId = response1 . Id ;
32+ OpenAIResponse response2 = ( OpenAIResponse ) client . CreateResponse ( [
33+ ResponseItem . CreateMcpApprovalResponseItem ( approvalRequestItem ! . Id , approved : true ) ,
34+ ] , options ) ;
35+
36+ Console . WriteLine ( response2 . GetOutputText ( ) ) ;
Original file line number Diff line number Diff line change 1+ // SAMPLE: Generate response from remote MCP with no approval through Responses API
2+ // PAGE: https://platform.openai.com/docs/guides/tools-connectors-mcp#approvals
3+ // GUIDANCE: Instructions to run this code: https://aka.ms/oai/net/start
4+ #pragma warning disable OPENAI001
5+
6+ #: package OpenAI @2 . *
7+ #: property PublishAot = false
8+
9+ using OpenAI. Responses ;
10+
11+ string key = Environment . GetEnvironmentVariable ( "OPENAI_API_KEY" ) ! ;
12+ OpenAIResponseClient client = new ( model : "gpt-5" , apiKey : key ) ;
13+
14+ ResponseCreationOptions options = new ( ) ;
15+ options . Tools . Add ( ResponseTool . CreateMcpTool (
16+ serverLabel : "deepwiki" ,
17+ serverUri : new Uri ( "https://mcp.deepwiki.com/mcp" ) ,
18+ allowedTools : new McpToolFilter ( ) { ToolNames = { "ask_question" , "read_wiki_structure" } } ,
19+ toolCallApprovalPolicy : new McpToolCallApprovalPolicy ( GlobalMcpToolCallApprovalPolicy . NeverRequireApproval )
20+ ) ) ;
21+
22+ OpenAIResponse response = ( OpenAIResponse ) client . CreateResponse ( [
23+ ResponseItem . CreateUserMessageItem ( [
24+ ResponseContentPart . CreateInputTextPart ( "What transport protocols does the 2025-03-26 version of the MCP spec (modelcontextprotocol/modelcontextprotocol) support?" )
25+ ] )
26+ ] , options ) ;
27+
28+ Console . WriteLine ( response . GetOutputText ( ) ) ;
Original file line number Diff line number Diff line change 1+ // SAMPLE: Generate response from remote MCP through Responses API
2+ // PAGE: https://platform.openai.com/docs/guides/tools-connectors-mcp#authentication
3+ // GUIDANCE: Instructions to run this code: https://aka.ms/oai/net/start
4+ #pragma warning disable OPENAI001
5+
6+ #: package OpenAI @2 . *
7+ #: property PublishAot = false
8+
9+ using OpenAI. Responses ;
10+
11+ string authToken = Environment . GetEnvironmentVariable ( "STRIPE_OAUTH_ACCESS_TOKEN" ) ! ;
12+ string key = Environment . GetEnvironmentVariable ( "OPENAI_API_KEY" ) ! ;
13+ OpenAIResponseClient client = new ( model : "gpt-5" , apiKey : key ) ;
14+
15+ ResponseCreationOptions options = new ( ) ;
16+ options . Tools . Add ( ResponseTool . CreateMcpTool (
17+ serverLabel : "stripe" ,
18+ serverUri : new Uri ( "https://mcp.stripe.com" ) ,
19+ authorizationToken : authToken
20+ ) ) ;
21+
22+ OpenAIResponse response = ( OpenAIResponse ) client . CreateResponse ( [
23+ ResponseItem . CreateUserMessageItem ( [
24+ ResponseContentPart . CreateInputTextPart ( "Create a payment link for $20" )
25+ ] )
26+ ] , options ) ;
27+
28+ Console . WriteLine ( response . GetOutputText ( ) ) ;
Original file line number Diff line number Diff line change 1+ // SAMPLE: Generate response from a specific tool of a remote MCP through Responses API
2+ // PAGE: https://platform.openai.com/docs/guides/tools-connectors-mcp#filtering-tools
3+ // GUIDANCE: Instructions to run this code: https://aka.ms/oai/net/start
4+ #pragma warning disable OPENAI001
5+
6+ #: package OpenAI @2 . *
7+ #: property PublishAot = false
8+
9+ using OpenAI. Responses ;
10+
11+ string key = Environment . GetEnvironmentVariable ( "OPENAI_API_KEY" ) ! ;
12+ OpenAIResponseClient client = new ( model : "gpt-5" , apiKey : key ) ;
13+
14+ ResponseCreationOptions options = new ( ) ;
15+ options . Tools . Add ( ResponseTool . CreateMcpTool (
16+ serverLabel : "dmcp" ,
17+ serverUri : new Uri ( "https://dmcp-server.deno.dev/sse" ) ,
18+ allowedTools : new McpToolFilter ( ) { ToolNames = { "roll" } } ,
19+ toolCallApprovalPolicy : new McpToolCallApprovalPolicy ( GlobalMcpToolCallApprovalPolicy . NeverRequireApproval )
20+ ) ) ;
21+
22+ OpenAIResponse response = ( OpenAIResponse ) client . CreateResponse ( [
23+ ResponseItem . CreateUserMessageItem ( [
24+ ResponseContentPart . CreateInputTextPart ( "Roll 2d4+1" )
25+ ] )
26+ ] , options ) ;
27+
28+ Console . WriteLine ( response . GetOutputText ( ) ) ;
Original file line number Diff line number Diff line change 1+ // SAMPLE: Generate response from remote MCP through Responses API
2+ // PAGE: https://platform.openai.com/docs/guides/tools-connectors-mcp?quickstart-panels=remote-mcp#quickstart
3+ // GUIDANCE: Instructions to run this code: https://aka.ms/oai/net/start
4+ #pragma warning disable OPENAI001
5+
6+ #: package OpenAI @2 . *
7+ #: property PublishAot = false
8+
9+ using OpenAI. Responses ;
10+
11+ string key = Environment . GetEnvironmentVariable ( "OPENAI_API_KEY" ) ! ;
12+ OpenAIResponseClient client = new ( model : "gpt-5" , apiKey : key ) ;
13+
14+ ResponseCreationOptions options = new ( ) ;
15+ options . Tools . Add ( ResponseTool . CreateMcpTool (
16+ serverLabel : "dmcp" ,
17+ serverUri : new Uri ( "https://dmcp-server.deno.dev/sse" ) ,
18+ toolCallApprovalPolicy : new McpToolCallApprovalPolicy ( GlobalMcpToolCallApprovalPolicy . NeverRequireApproval )
19+ ) ) ;
20+
21+ OpenAIResponse response = ( OpenAIResponse ) client . CreateResponse ( [
22+ ResponseItem . CreateUserMessageItem ( [
23+ ResponseContentPart . CreateInputTextPart ( "Roll 2d4+1" )
24+ ] )
25+ ] , options ) ;
26+
27+ Console . WriteLine ( response . GetOutputText ( ) ) ;
You can’t perform that action at this time.
0 commit comments