General
ydc-openai-agent-sdk-integration
Integrate OpenAI Agents
---
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
By
Comments
Sign in to leave a comment