← Back to Skills
General

ydc-openai-agent-sdk-integration

edwardirby By edwardirby 👁 23 views ▲ 0 votes

Integrate OpenAI Agents

GitHub
---
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)
general

Comments

Sign in to leave a comment

Loading comments...