get_config_infoReturns the current OpenAI Search MCP server configuration information and tests the connection.
This tool is useful for:
- Verifying that environment variables are correctly configured
- Testing API connectivity by sending a request to /models endpoint
- Debugging configuration issues
- Checking the current API endpoint and settings
Returns
-------
A JSON-encoded string containing configuration details:
- `api_url`: The configured OpenAI-compatible API endpoint
- `api_key`: The API key (masked for security, showing only first and last 4 characters)
- `model`: The currently selected model for search and fetch operations
- `debug_enabled`: Whether debug mode is enabled
- `log_level`: Current logging level
- `log_dir`: Directory where logs are stored
- `config_status`: Overall configuration status (✅ complete or ❌ error)
- `connection_test`: Result of testing API connectivity to /models endpoint
- `status`: Connection status
- `message`: Status message with model count
- `response_time_ms`: API response time in milliseconds
- `available_models`: List of available model IDs (only present on successful connection)
Notes
-----
- API keys are automatically masked for security
- This tool does not require any parameters
- Useful for troubleshooting before making actual search requests
- Automatically tests API connectivity during executionInput schema{
"type": "object",
"properties": {}
} | — | | — |
switch_modelSwitches the default AI model used for search and fetch operations, and persists the setting.
This tool is useful for:
- Changing the AI model used for web search and content fetching
- Testing different models for performance or quality comparison
- Persisting model preference across sessions
Parameters
----------
model : str
The model ID to switch to (e.g., "gpt-4o", "gpt-4o-mini")
Returns
-------
A JSON-encoded string containing:
- `status`: Success or error status
- `previous_model`: The model that was being used before
- `current_model`: The newly selected model
- `message`: Status message
- `config_file`: Path where the model preference is saved
Notes
-----
- The model setting is persisted to ~/.config/openai-search/config.json
- This setting will be used for all future search and fetch operations
- You can verify available models using the get_config_info toolInput schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"model": {
"anyOf": [
{
"type": "string",
"enum": [
"gpt-4o",
"gpt-4o-mini",
"gpt-4-turbo"
]
},
{
"type": "string"
}
],
"description": "Model ID"
}
},
"required": [
"model"
]
} | — | | — |
toggle_builtin_toolsToggle Claude Code's built-in WebSearch and WebFetch tools on/off.
Parameters: action - "on" (block built-in), "off" (allow built-in), "status" (check)
Returns: JSON with current status and deny listInput schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"action": {
"default": "status",
"description": "Action type",
"type": "string",
"enum": [
"on",
"off",
"status"
]
}
}
} | — | | — |
web_fetchFetches and extracts the complete content from a specified URL and returns it as a structured Markdown document.
The `url` should be a valid HTTP/HTTPS web address pointing to the target page.
Ensure the URL is complete and accessible (not behind authentication or paywalls).
`fetch_engine` (optional): Which engine to use. When omitted, the server uses the `FETCH_ENGINE` env (default `llm`). `llm` = OpenAI-compatible model; `tavily` / `firecrawl` = dedicated crawl (set TAVILY_API_KEY or FIRECRAWL_API_KEY).
Returns
-------
A Markdown-formatted string containing:
- Metadata header (source URL, title, fetch timestamp)
- Table of Contents (if applicable)
- Complete page content with preserved structure
- All text, links, images, tables, and code blocks from the original page
Notes
-----
- Does NOT summarize or modify content - returns complete original text
- `tavily` / `firecrawl` perform real HTTP fetch and handle anti-bot; `llm` depends on the model's browse capability.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL of the web page to fetch"
},
"fetch_engine": {
"description": "Engine for fetch: llm (model), tavily (Tavily API), firecrawl (Firecrawl API). When omitted, server uses FETCH_ENGINE env.",
"type": "string",
"enum": [
"llm",
"tavily",
"firecrawl"
]
}
},
"required": [
"url"
]
} | — | | — |
web_searchPerforms a third-party web search based on the given query and returns the results as a JSON string.
The `query` should be a clear, self-contained natural-language search query.
When helpful, include constraints such as topic, time range, language, or domain.
The `platform` should be the platforms which you should focus on searching, such as "Twitter", "GitHub", "Reddit", etc.
The `min_results` and `max_results` should be the minimum and maximum number of results to return.
Returns
-------
A JSON-encoded string representing a list of search results. Each result includes at least:
- `url`: the link to the result
- `title`: a short title
- `summary`: a brief description or snippet of the page content.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query keyword"
},
"platform": {
"description": "Specify search platform",
"type": "string"
},
"min_results": {
"default": 3,
"description": "Minimum number of results",
"type": "number"
},
"max_results": {
"default": 10,
"description": "Maximum number of results",
"type": "number"
}
},
"required": [
"query"
]
} | — | | — |