Web Search MCP
Server Quality Checklist
Latest release: v1.0.5
- Disambiguation5/5
The two tools have clearly distinct purposes: fetch_page retrieves and extracts content from a specific URL, while search_web performs a general web search to find relevant URLs. There is no overlap or ambiguity between them, as one is for accessing known pages and the other is for discovering new ones.
Naming Consistency5/5Both tools follow a consistent verb_noun naming pattern (fetch_page and search_web), using clear, descriptive verbs that align with their functions. The naming is uniform and predictable across the set.
Tool Count3/5With only two tools, the server feels thin for a web search domain, as it lacks operations like advanced search filtering, result pagination, or handling different search engines. While the tools cover basic fetch and search, the count is borderline minimal for the apparent scope.
Completeness3/5The tools provide core search and fetch capabilities, but there are notable gaps: no ability to refine searches (e.g., by date or site), manage search history, or handle errors like rate limits. This could lead to agent workarounds for more complex tasks.
Average 2.9/5 across 2 of 2 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'extract its readable content and title using Readability', which implies processing and transformation, but doesn't cover critical aspects like error handling, rate limits, authentication needs, or what happens with invalid URLs. For a tool that interacts with external resources, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded with the core action ('Fetch a page') and includes essential details ('extract its readable content and title using Readability'), making it easy to parse quickly. Every part of the sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of fetching and processing web pages, with no annotations, no output schema, and minimal schema coverage, the description is incomplete. It doesn't explain the return format (e.g., structured data with content and title), error conditions, or dependencies like network access. This leaves the agent with insufficient information to use the tool effectively in varied contexts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, so the description must compensate. It doesn't explicitly mention the 'url' parameter or provide any details beyond what the schema indicates (e.g., format expectations or examples). Since the schema is minimal and self-explanatory for a URL, the description adds no extra semantic value, meeting the baseline for adequate but not helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Fetch a page and extract its readable content and title using Readability.' This specifies the verb ('fetch'), resource ('page'), and extraction method ('Readability'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from the sibling tool 'search_web', which might have overlapping functionality for web content retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_web'. It lacks context about use cases, prerequisites, or exclusions, leaving the agent to infer usage based on the tool name and description alone. This omission reduces its effectiveness in helping the agent select the right tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the search engine (DuckDuckGo) and output format, but lacks critical behavioral details: whether this requires authentication, rate limits, network dependencies, error handling, or pagination behavior. The description doesn't contradict annotations (none exist), but provides minimal behavioral context for a tool that performs external web searches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that convey the core functionality and implementation detail. It's front-loaded with the main purpose. The second sentence about DuckDuckGo adds useful context without being verbose. No wasted words, though it could be slightly more structured with explicit parameter mentions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a web search tool with 2 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the search scope, result format details beyond 'URLs and titles', error conditions, or performance characteristics. The mention of DuckDuckGo provides some context, but critical information about how results are returned, sorted, or filtered is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what the schema provides. With 0% schema description coverage, both parameters (query and limit) are undocumented in both schema and description. However, the description implies the 'query' parameter through 'Search the web' and 'limit' through 'return a list', but doesn't explain their semantics, formats, or constraints. This meets the baseline 3 since the schema covers parameter structure, though the description doesn't compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search the web and return a list of result URLs and titles.' It specifies the verb (search), resource (web), and output format (URLs and titles). However, it doesn't explicitly differentiate from its sibling 'fetch_page', which likely retrieves a specific page rather than performing a search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions 'Uses DuckDuckGo HTML' which hints at the search engine used, but doesn't explain when to choose this over 'fetch_page' or other search methods. No explicit when/when-not instructions or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/guhcostan/web-search-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server