Back to Skills
    🦞

    ydc-openai-agent-sdk-integration

    Integrate OpenAI Agents

    By @edwardirby
    View on GitHub
    SKILL.md
    ---
    name: ydc-openai-agent-sdk-integration
    description: Integrate OpenAI Agents SDK with You.com MCP server - Hosted and Streamable HTTP support for Python and TypeScript. Use when developer mentions OpenAI Agents SDK, OpenAI agents, or integrating OpenAI with MCP.
    license: MIT
    compatibility: Python 3.10+ or Node.js 18+ with TypeScript
    metadata:
      author: youdotcom-oss
      category: sdk-integration
      version: "1.0.0"
      keywords: openai,openai-agents,agent-sdk,mcp,you.com,integration,hosted-mcp,streamable-http,web-search,python,typescript
    ---
    
    # Integrate OpenAI Agents SDK with You.com MCP
    
    Interactive workflow to set up OpenAI Agents SDK with You.com's MCP server.
    
    ## Workflow
    
    1. **Ask: Language Choice**
       * Python or TypeScript?
    
    2. **Ask: MCP Configuration Type**
       * **Hosted MCP** (OpenAI-managed with server URL): Recommended for simplicity
       * **Streamable HTTP** (Self-managed connection): For custom infrastructure
    
    3. **Install Package**
       * Python: `pip install openai-agents`
       * TypeScript: `npm install @openai/agents`
    
    4. **Ask: Environment Variables**
    
       **For Both Modes:**
       * `YDC_API_KEY` (You.com API key for Bearer token)
       * `OPENAI_API_KEY` (OpenAI API key)
    
       Have they set them?
       * If NO: Guide to get keys:
         - YDC_API_KEY: https://you.com/platform/api-keys
         - OPENAI_API_KEY: https://platform.openai.com/api-keys
    
    5. **Ask: File Location**
       * NEW file: Ask where to create and what to name
       * EXISTING file: Ask which file to integrate into (add MCP config)
    
    6. **Create/Update File**
    
       **For NEW files:**
       * Use the complete template code from the "Complete Templates" section below
       * User can run immediately with their API keys set
    
       **For EXISTING files:**
       * Add MCP server configuration to their existing code
    
       **Hosted MCP configuration block (Python)**:
       ```python
       from agents import Agent, Runner
       from agents.mcp import HostedMCPTool
    
       # Validate: ydc_api_key = os.getenv("YDC_API_KEY")
       agent = Agent(
           name="Assistant",
           instructions="Use You.com tools to answer questions.",
           tools=[
               HostedMCPTool(
                   tool_config={
                       "type": "mcp",
                       "server_label": "ydc",
                       "server_url": "https://api.you.com/mcp",
                       "headers": {
                           "Authorization": f"Bearer {ydc_api_key}"
                       },
                       "require_approval": "never",
                   }
               )
           ],
       )
       ```
    
       **Hosted MCP configuration block (TypeScript)**:
       ```typescript
       import { Agent, hostedMcpTool } from '@openai/agents';
    
       // Validate: const ydcApiKey = process.env.YDC_API_KEY;
       const agent = new Agent({
         name: 'Assistant',
         instructions: 'Use You.com tools to answer questions.',
         tools: [
           hostedMcpTool({
            serverLabel: 'ydc',
             serverUrl: 'https://api.you.com/mcp',
             headers: {
               Authorization: `Bearer ${ydcApiKey}`,
             },
           }),
         ],
       });
       ```
    
       **Streamable HTTP configuration block (Python)**:
       ```python
       from agents import Agent, Runner
       from agents.mcp import MCPServerStreamableHttp
    
       # Validate: ydc_api_key = os.getenv("YDC_API_KEY")
       async with MCPServerStreamableHttp(
           name="You.com MCP Server",
           params={
               "url": "https://api.you.com/mcp",
               "headers": {"Authorization": f"Bearer {ydc_api_key}"},
               "timeout": 10,
           },
           cache_tools_list=True,
           max_retry_attempts=3,
       ) as server:
           agent = Agent(
               name="Assistant",
               instructions="Use You.com tools to answer questions.",
               mcp_servers=[server],
           )
       ```
    
       **Streamable HTTP configuration block (TypeScript)**:
       ```typescript
       import { Agent, MCPServerStreamableHttp } from '@openai/agents';
    
       // Validate: const ydcApiKey = process.env.YDC_API_KEY;
       const mcpServer = new MCPServerStreamableHttp({
         url: 'https://api.you.com/mcp',
         name: 'You.com MCP Server',
         requestInit: {
           headers: {
             Authorization: `Bearer ${ydcApiKey}`,
           },
         },
       });
    
       const agent = new Agent({
         name: 'Assistant',
         instructions: 'Use You.com tools to answer questions.',
         mcpServers: [mcpServer],
       });
       ```
    
    ## Complete Templates
    
    Use these complete templates for new files. Each template is ready to run with your API keys set.
    
    ### Python Hosted MCP Template (Complete Example)
    
    ```python
    """
    OpenAI Agents SDK with You.com Hosted MCP
    Python implementation with OpenAI-managed infrastructure
    """
    
    import os
    import asyncio
    from agents import Agent, Runner
    from agents.mcp import HostedMCPTool
    
    # Validate environment variables
    ydc_api_key = os.getenv("YDC_API_KEY")
    openai_api_key = os.getenv("OPENAI_API_KEY")
    
    if not ydc_api_key:
        raise ValueError(
            "YDC_API_KEY environment variable is required. "
            "Get your key at: https://you.com/platform/api-keys"
        )
    
    if not openai_api_key:
        raise ValueError(
            "OPENAI_API_KEY environment variable is required. "
            "Get your key at: https://platform.openai.com/api-keys"
        )
    
    
    async def main():
        """
        Example: Search for AI news using You.com hosted MCP tools
        """
        # Configure agent with hosted MCP tools
        agent = Agent(
            name="AI News Assistant",
            instructions="Use You.com tools to search for and answer questions about AI news.",
            tools=[
                HostedMCPTool(
                    tool_config={
                        "type": "mcp",
                        "server_label": "ydc",
                        "server_url": "https://api.you.com/mcp",
                        "headers": {
                            "Authorization": f"Bearer {ydc_api_key}"
                        },
                        "require_approval": "never",
                    }
                )
            ],
        )
    
        # Run agent with user query
        result = await Runner.run(
            agent,
            "Search for the latest AI news from this week"
        )
    
        print(result.final_output)
    
    
    if __name__ == "__main__":
        asyncio.run(main())
    ```
    
    ### Python Streamable HTTP Template (Complete Example)
    
    ```python
    """
    OpenAI Agents SDK with You.com Streamable HTTP MCP
    Python implementation with self-managed connection
    """
    
    import os
    import asyncio
    from agents import Agent, Runner
    from agents.mcp import MCPServerStreamableHttp
    
    # Validate environment variables
    ydc_api_key = os.getenv("YDC_API_KEY")
    openai_api_key = os.getenv("OPENAI_API_KEY")
    
    if not ydc_api_key:
        raise ValueError(
            "YDC_API_KEY environment variable is required. "
            "Get your key at: https://you.com/platform/api-keys"
        )
    
    if not openai_api_key:
        raise ValueError(
            "OPENAI_API_KEY environment variable is required. "
            "Get your key at: https://platform.openai.com/api-keys"
        )
    
    
    async def main():
        """
        Example: Search for AI news using You.com streamable HTTP MCP server
        """
        # Configure streamable HTTP MCP server
        async with MCPServerStreamableHttp(
            name="You.com MCP Server",
            params={
                "url": "https://api.you.com/mcp",
                "headers": {"Authorization": f"Bearer {ydc_api_key}"},
                "timeout": 10,
            },
            cache_tools_list=True,
            max_retry_attempts=3,
        ) as server:
            # Configure agent with MCP server
            agent = Agent(
                name="AI News Assistant",
                instructions="Use You.com tools to search for and answer questions about AI news.",
                mcp_servers=[server],
            )
    
            # Run agent with user query
            result = await Runner.run(
                agent,
                "Search for the latest AI news from this week"
            )
    
            print(result.final_output)
    
    
    if __name__ == "__main__":
        asyncio.run(main())
    ```
    
    ### TypeScript Hosted MCP Template (Complete Example)
    
    ```typescript
    /**
     * OpenAI Agents SDK with You.com Hosted MCP
     * TypeScript implementation with OpenAI-managed infrastructure
     */
    
    import { Agent, run, hostedMcpTool } from '@openai/agents';
    
    // Validate environment variables
    const ydcApiKey = process.env.YDC_API_KEY;
    const openaiApiKey = process.env.OPENAI_API_KEY;
    
    if (!ydcApiKey) {
      throw new Error(
        'YDC_API_KEY environment variable is required. ' +
          'Get your key at: https://you.com/platform/api-keys'
      );
    }
    
    if (!openaiApiKey) {
      throw new Error(
        'OPENAI_API_KEY environment variable is required. ' +
          'Get your key at: https://platform.openai.com/api-keys'
      );
    }
    
    /**
     * Example: Search for AI news using You.com hosted MCP tools
     */
    async function main() {
      // Configure agent with hosted MCP tools
      const agent = new Agent({
        name: 'AI News Assistant',
        instructions:
          'Use You.com tools to search for and answer questions about AI news.',
        tools: [
          hostedMcpTool({
            serverLabel: 'ydc',
            serverUrl: 'https://api.you.com/mcp',
            headers: {
              Authorization: `Bearer ${ydcApiKey}`,
            },
          }),
        ],
      });
    
      // Run agent with user query
      const result = await run(
        agent,
        'Search for the latest AI news from this week'
      );
    
      console.log(result.finalOutput);
    }
    
    main().catch(console.error);
    ```
    
    ### TypeScript Streamable HTTP Template (Complete Example)
    
    ```typescript
    /**
     * OpenAI Agents SDK with You.com Streamable HTTP MCP
     * TypeScript implementation with self-managed connection
     */
    
    import { Agent, run, MCPServerStreamableHttp } from '@openai/agents';
    
    // Validate environment variables
    const ydcApiKey = process.env.YDC_API_KEY;
    const openaiApiKey = process.env.OPENAI_API_KEY;
    
    if (!ydcApiKey) {
      throw new Error(
        'YDC_API_KEY environment variable is required. ' +
          'Get your key at: https://you.com/platform/api-keys'
      );
    }
    
    if (!openaiApiKey) {
      throw new Error(
        'OPENAI_API_KEY environment variable is required. ' +
          'Get your key at: https://platform.openai.com/api-keys'
      );
    }
    
    /**
     * Example: Search for AI news using You.com strea
    
    ... (truncated)