Install
openclaw skills install ydc-openai-agent-sdk-integrationIntegrate 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.
openclaw skills install ydc-openai-agent-sdk-integrationInteractive workflow to set up OpenAI Agents SDK with You.com's MCP server.
Ask: Language Choice
Ask: MCP Configuration Type
Install Package
pip install openai-agentsnpm install @openai/agentsAsk: 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?
Ask: File Location
Create/Update File
For NEW files:
For EXISTING files:
Hosted MCP configuration block (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):
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):
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):
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],
});
Use these complete templates for new files. Each template is ready to run with your API keys set.
"""
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())
"""
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())
/**
* 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);
/**
* 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 streamable HTTP MCP server
*/
async function main() {
// Configure streamable HTTP MCP server
const mcpServer = new MCPServerStreamableHttp({
url: 'https://api.you.com/mcp',
name: 'You.com MCP Server',
requestInit: {
headers: {
Authorization: `Bearer ${ydcApiKey}`,
},
},
});
try {
// Connect to MCP server
await mcpServer.connect();
// Configure agent with MCP server
const agent = new Agent({
name: 'AI News Assistant',
instructions:
'Use You.com tools to search for and answer questions about AI news.',
mcpServers: [mcpServer],
});
// Run agent with user query
const result = await run(
agent,
'Search for the latest AI news from this week'
);
console.log(result.finalOutput);
} finally {
// Clean up connection
await mcpServer.close();
}
}
main().catch(console.error);
What it is: OpenAI manages the MCP connection and tool routing through their Responses API.
Benefits:
Use when:
Configuration:
Python:
from agents.mcp import HostedMCPTool
tools=[
HostedMCPTool(
tool_config={
"type": "mcp",
"server_label": "ydc",
"server_url": "https://api.you.com/mcp",
"headers": {
"Authorization": f"Bearer {os.environ['YDC_API_KEY']}"
},
"require_approval": "never",
}
)
]
TypeScript:
import { hostedMcpTool } from '@openai/agents';
tools: [
hostedMcpTool({
serverLabel: 'ydc',
serverUrl: 'https://api.you.com/mcp',
headers: {
Authorization: `Bearer ${process.env.YDC_API_KEY}`,
},
}),
]
What it is: You manage the MCP connection and transport layer yourself.
Benefits:
Use when:
Configuration:
Python:
from agents.mcp import MCPServerStreamableHttp
async with MCPServerStreamableHttp(
name="You.com MCP Server",
params={
"url": "https://api.you.com/mcp",
"headers": {"Authorization": f"Bearer {os.environ['YDC_API_KEY']}"},
"timeout": 10,
},
cache_tools_list=True,
max_retry_attempts=3,
) as server:
agent = Agent(mcp_servers=[server])
TypeScript:
import { MCPServerStreamableHttp } from '@openai/agents';
const mcpServer = new MCPServerStreamableHttp({
url: 'https://api.you.com/mcp',
name: 'You.com MCP Server',
requestInit: {
headers: {
Authorization: `Bearer ${process.env.YDC_API_KEY}`,
},
},
});
await mcpServer.connect();
try {
const agent = new Agent({ mcpServers: [mcpServer] });
// Use agent
} finally {
await mcpServer.close();
}
After configuration, agents can discover and use:
mcp__ydc__you_search - Web and news searchmcp__ydc__you_express - AI-powered answers with web contextmcp__ydc__you_contents - Web page content extractionBoth API keys are required for both configuration modes:
# Add to your .env file or shell profile
export YDC_API_KEY="your-you-api-key-here"
export OPENAI_API_KEY="your-openai-api-key-here"
Get your API keys:
Before completing:
openai-agents (Python) or @openai/agents (TypeScript)YDC_API_KEY and OPENAI_API_KEYPython:
python your-file.py
TypeScript:
# With tsx (recommended for quick testing)
npx tsx your-file.ts
# Or compile and run
tsc your-file.ts && node your-file.js
Install the package:
# NPM
npm install @openai/agents
# Bun
bun add @openai/agents
# Yarn
yarn add @openai/agents
# pnpm
pnpm add @openai/agents
</details>
<details>
<summary><strong>YDC_API_KEY environment variable is required</strong></summary>
Set your You.com API key:
export YDC_API_KEY="your-api-key-here"
Get your key at: https://you.com/platform/api-keys
</details> <details> <summary><strong>OPENAI_API_KEY environment variable is required</strong></summary>Set your OpenAI API key:
export OPENAI_API_KEY="your-api-key-here"
Get your key at: https://platform.openai.com/api-keys
</details> <details> <summary><strong>MCP connection fails with 401 Unauthorized</strong></summary>Verify your YDC_API_KEY is valid:
Bearer ${YDC_API_KEY}For Both Modes:
server_url: "https://api.you.com/mcp" is correctBearer prefixYDC_API_KEY environment variable is setrequire_approval is set to "never" for automatic executionFor Streamable HTTP specifically:
For Streamable HTTP only:
Increase timeout or retry attempts:
Python:
async with MCPServerStreamableHttp(
params={
"url": "https://api.you.com/mcp",
"headers": {"Authorization": f"Bearer {os.environ['YDC_API_KEY']}"},
"timeout": 30, # Increased timeout
},
max_retry_attempts=5, # More retries
) as server:
# ...
TypeScript:
const mcpServer = new MCPServerStreamableHttp({
url: 'https://api.you.com/mcp',
requestInit: {
headers: { Authorization: `Bearer ${process.env.YDC_API_KEY}` },
// Add custom timeout via fetch options
},
});
</details>