Ollama Web Search
This server provides tools to search the web and fetch web page content via Ollama's APIs.
web_search: Search the web with a query string. Accepts an optional
max_resultsparameter (default 5, max 10). Returns a list of results, each containing a title, URL, and content.web_fetch: Fetch the readable content of a given URL (must include http:// or https://). Returns the page title, main content, and a list of links found on the page.
Provides tools to search the web and fetch web pages using Ollama's hosted web search and web fetch APIs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Ollama Web Searchsearch the web for MCP server examples"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Ollama Web Search MCP Server
A stdio MCP server that exposes Ollama's hosted web search and web fetch APIs as tools any MCP client can call. Based on the Ollama web search docs.
Tools:
Tool | Args | Returns |
|
|
|
|
|
|
Prerequisites
uv(providesuvxanduv tool install)An Ollama API key — create one at https://ollama.com/settings/keys (free account).
Related MCP server: DDG Web Search
Install
For use as an MCP server in editors, install once so the binary is available
immediately on startup (avoids timeout issues caused by uvx resolving
packages on every invocation):
uv tool install ollama-web-search
# or from a local checkout:
# uv tool install .For a quick smoke test without installing, you can use uvx (slower on first
run because it resolves packages each time):
export OLLAMA_API_KEY=your_api_key_here
uvx ollama-web-searchIt will sit waiting for MCP messages on stdio. Wire it into a client instead of running it by hand.
Client configuration
Set your key in the env block below. Use the installed binary (ollama-web-search)
rather than uvx to avoid startup timeouts.
Claude Desktop / Claude Code (mcpServers block):
{
"mcpServers": {
"Ollama Web Search": {
"command": "ollama-web-search",
"args": [],
"env": { "OLLAMA_API_KEY": "your_api_key_here" }
}
}
}For Claude Code you can also add it from the CLI:
claude mcp add ollama-web-search \
--env OLLAMA_API_KEY=your_api_key_here \
-- ollama-web-searchZed (~/.config/zed/settings.json, under context_servers):
{
"context_servers": {
"Ollama Web Search": {
"command": "ollama-web-search",
"args": [],
"env": { "OLLAMA_API_KEY": "your_api_key_here" }
}
}
}Cline:
{
"mcpServers": {
"Ollama Web Search": {
"type": "stdio",
"command": "ollama-web-search",
"args": [],
"env": { "OLLAMA_API_KEY": "your_api_key_here" }
}
}
}Codex (~/.codex/config.toml):
[mcp_servers.ollama_web_search]
command = "ollama-web-search"
args = []
env = { OLLAMA_API_KEY = "your_api_key_here" }Available Tools
2 toolsweb_fetchA
Fetch the readable content of a web page via Ollama's hosted fetch API.
Args: url: The absolute URL to fetch (must include http:// or https://).
Returns: A dict with the page title, content, and a list of links.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers the return format (dict with title, content, links) and input requirement (absolute URL). However, it does not disclose limitations, error handling, or potential issues like timeouts, making it moderately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear Args/Returns structure, no extra words, and front-loaded purpose. Every sentence is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one param, output schema exists), the description adequately covers input constraints and output structure. It lacks mention of error handling or edge cases, but overall complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to the 'url' parameter beyond the schema by specifying it must be absolute and include http/https. With 0% schema coverage, this compensates well for the single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches readable content of a web page using a specific verb 'Fetch' and resource 'web page'. It distinguishes from sibling web_search by implying this is for a specific URL's content, not search results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use it (to fetch page content) but does not provide when-not-to-use or compare with sibling web_search. It lacks explicit usage guidance, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_searchA
Search the web via Ollama's hosted search API.
Args: query: The search query. max_results: Maximum results to return (default 5, max 10).
Returns: A dict with a "results" list, each item having title, url and content.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the return format as a dict with 'results' list containing title, url, and content. It does not mention any destructive behavior, rate limits, or authentication, but for a search tool, this is reasonable and adds value beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, structured as a docstring with Args and Returns sections. Every sentence provides necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 2 parameters, no nested objects, and an output schema exists. The description explains the return format. It could mention error handling or pagination, but for a straightforward search, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description fully compensates by explaining 'query' as the search query and 'max_results' with default and maximum. This adds meaning beyond the schema's type definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search the web via Ollama's hosted search API,' specifying the verb 'search' and the resource 'web.' It distinguishes from the sibling tool 'web_fetch', which is likely for fetching specific URLs, so purpose is clear and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that web_search is for general search queries, contrasting with the sibling 'web_fetch'. It specifies default and max values for max_results, but does not explicitly state when to use this tool over alternatives or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The two tools have completely distinct purposes: web_search performs search queries, while web_fetch retrieves content from a specific URL. No overlap.
Both tools follow a consistent verb_noun pattern (web_fetch, web_search), using snake_case and the same prefix.
With only 2 tools, the set is minimal but appropriate for a simple web search and fetch utility. Could be expanded, but not overly sparse.
The tool surface covers the core operations: searching the web and fetching a page. No obvious gaps for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Scrape, crawl and search the web for AI agents via MCP.
Provides AI assistants with access to Seltz's powerful Web Search capabilities.
Stealth web browser for agents: search, fetch, click, download and type in persistent MCP sessions.
Live AI-native web search with citations. One tool for every MCP client. Flat per-request pricing.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides web search and page fetching capabilities using Ollama's API.MIT
- AlicenseNot gradedqualityDmaintenanceEnables web search via DuckDuckGo and web content fetching through the Model Context Protocol, allowing AI assistants to search and retrieve web page content.23MIT

Scout MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables web search, scraping, extraction, and crawling through an MCP interface, allowing coding agents to access real-time web data.1MIT- AlicenseAqualityDmaintenanceEnables performing web searches and fetching web page content via Ollama's hosted APIs, providing search results and raw page data.21MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/deXterbed/ollama-web-search'
If you have feedback or need assistance with the MCP directory API, please join our Discord server