Native WebSearch — GPT-OSS
Some Clovis models natively integrate WebSearch capabilities. WebSearch is then driven directly by the model, which greatly simplifies integration.
This approach is an alternative to MCP WebSearch. For fine-grained control over orchestration (autonomous agents, multi-tool workflows), prefer MCP WebSearch.
Compatible models
| Model | Native WebSearch |
|---|---|
ClovisLLM/gpt-oss-120b | ✔️ |
How it works
With these models, WebSearch is natively integrated into the model's reasoning:
- The model detects that a web search is relevant
- It automatically performs the search
- It leverages the results in its generation
There is no need to:
- declare an MCP server in the request,
- manage complex client-side orchestration,
- implement specific routing logic.
Example
{
"model": "ClovisLLM/gpt-oss-120b",
"input": "What are the latest news about AI in France?",
"temperature": 0.3
}
No tools declaration is required. The model decides on its own when to perform a web search and integrates it into its response.
MCP WebSearch vs Native WebSearch
| MCP WebSearch | Native GPT-OSS WebSearch | |
|---|---|---|
| Principle | The model calls an external MCP server | WebSearch is natively integrated into the model |
| Control | Full control over orchestration | Greatly simplifies integration |
| Use case | Autonomous agents, workflows, multi-tool orchestration | Quick integration without client-side orchestration |
| Models | All Clovis models | ClovisLLM/gpt-oss-120b, ClovisLLM/gpt-oss-200b |
| Declaration | Yes (tools with type: "mcp") | No (no configuration required) |
Native GPT-OSS WebSearch is a specific use case. For fine-grained control over orchestration, prefer MCP WebSearch.
Declare the MCP server
To enable WebSearch, add an mcp type tool in the tools field of your request:
{
"type": "mcp",
"server_label": "web_search_preview",
"server_description": "The websearch mcp",
"server_url": "https://llm-gateway.clovis-ai.fr/api/v1/mcp",
"require_approval": "never"
}
| Field | Type | Required | Description |
|---|---|---|---|
type | string | ✔️ | Must be "mcp" |
server_label | string | ✔️ | Logical name of the MCP server |
server_description | string | Functional description of the server | |
server_url | string | ✔️ | Clovis MCP server URL |
require_approval | string | Execution policy (never = automatic) |
Full example
{
"model": "ClovisLLM",
"input": [
{
"role": "system",
"content": [
{
"type": "input_text",
"text": "You are a helpful assistant. If a question requires up-to-date information, use the websearch."
}
]
},
{
"role": "user",
"content": [
{
"type": "input_text",
"text": "What are the latest news about AI in France?"
}
]
}
],
"tools": [
{
"type": "mcp",
"server_label": "web_search_preview",
"server_description": "The websearch mcp",
"server_url": "https://llm-gateway.clovis-ai.fr/api/v1/mcp",
"require_approval": "never"
}
],
"temperature": 0.3,
"max_output_tokens": 1200
}
Response
The model returns a message type response containing the synthesis of web results:
{
"id": "resp_xxx",
"object": "response",
"output": [
{
"type": "message",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "Here are the latest news about AI in France: ..."
}
]
}
],
"usage": {
"input_tokens": 350,
"output_tokens": 420,
"total_tokens": 770
}
}
Code examples
- Python
- JavaScript
from openai import OpenAI
CLOVIS_API_KEY = "sk-xxxx"
CLOVIS_BASE_URL = "https://llm-gateway.clovis-ai.fr/v1"
CLOVIS_MODEL_NAME = "ClovisLLM"
client = OpenAI(api_key=CLOVIS_API_KEY, base_url=CLOVIS_BASE_URL)
answer = client.responses.create(
model=CLOVIS_MODEL_NAME,
input="What are the latest news about AI?",
tools=[
{
"type": "mcp",
"server_label": "web_search_preview",
"server_description": "The websearch mcp",
"server_url": "https://llm-gateway.clovis-ai.fr/api/v1/mcp",
"require_approval": "never",
}
]
)
print(answer.output_text)
const axios = require('axios');
const CLOVIS_API_KEY = 'sk-xxxx';
const CLOVIS_BASE_URL = 'https://llm-gateway.clovis-ai.fr/v1';
async function searchWeb() {
const res = await axios.post(
CLOVIS_BASE_URL + '/responses',
{
model: 'ClovisLLM',
input: 'What are the latest news about AI?',
tools: [
{
type: 'mcp',
server_label: 'web_search_preview',
server_url: 'https://llm-gateway.clovis-ai.fr/api/v1/mcp',
require_approval: 'never',
}
],
},
{
headers: {
Authorization: 'Bearer ' + CLOVIS_API_KEY,
'Content-Type': 'application/json',
},
}
);
console.log(res.data.output[0].content[0].text);
}
searchWeb();