MCP Web Utilities Server
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation2/5
There is significant overlap between 'search_on_web' and 'search_on_website' - both perform web searches with nearly identical descriptions and return formats, differing only in site restriction. 'fetch_webpage' is distinct for content retrieval, but 'get_current_date' feels disconnected from the web utilities theme, creating conceptual ambiguity about the server's purpose.
Naming Consistency4/5Three of four tools follow a consistent verb_noun pattern with snake_case ('fetch_webpage', 'search_on_web', 'search_on_website'), which is good. However, 'get_current_date' uses a different verb style ('get' vs 'fetch/search'), breaking the pattern slightly but maintaining readability.
Tool Count3/5With only 4 tools, the count feels thin for a 'Web Utilities Server' - one would expect more comprehensive web-related functionality. However, the tools do cover basic web operations (fetching, searching), so it's borderline rather than severely inadequate.
Completeness2/5For a web utilities server, there are significant gaps: no tools for analyzing webpage content (beyond fetching), no HTTP request utilities, no cookie/session management, and no web scraping capabilities beyond basic fetching. The inclusion of 'get_current_date' feels out of scope, further highlighting the incomplete coverage of web-related operations.
Average 3.4/5 across 4 of 4 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
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
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 the return format and suggests using 'fetch_webpage' for full content, which adds some context. However, it lacks critical details like whether this is a read-only operation, potential rate limits, authentication needs, or error handling. The description doesn't contradict annotations (none exist), but it's insufficient for a tool with behavioral implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise but could be more front-loaded. The first sentence states the purpose clearly, but the return format details and reference to 'fetch_webpage' might be better structured. It's not overly verbose, but some sentences (like the return format example) could be streamlined for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no annotations, but with an output schema), the description is partially complete. It covers the basic purpose and hints at usage, but gaps remain in parameter explanations and behavioral details. The output schema likely handles return values, so the description's focus on format is somewhat redundant, but overall it's minimally adequate with clear room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'query' and 'sites' implicitly but doesn't explain their semantics (e.g., what 'sites' expects as input format). It omits the 'results' parameter entirely. The description adds minimal value beyond the schema, failing to address the coverage gap adequately.
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: 'Searches the web for information related to the given query, restricted to specific sites.' This specifies the verb ('searches'), resource ('web'), and key constraint ('restricted to specific sites'). However, it doesn't explicitly differentiate from its sibling 'search_on_web', which likely performs broader web searches without site restrictions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning site restrictions and referencing 'fetch_webpage' for detailed content, suggesting this tool is for initial search results. However, it doesn't explicitly state when to use this versus 'search_on_web' (e.g., for site-specific vs. general web searches) or provide clear alternatives or exclusions.
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 the full burden of behavioral disclosure. It mentions 'returns a simplified markdown representation', which adds some context about output format. However, it fails to disclose critical traits such as error handling, rate limits, authentication needs, or whether it's a read-only operation, leaving significant gaps for a tool that interacts with external resources.
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 extremely concise with a single sentence that front-loads the core action and outcome. There is no wasted language, making it efficient and easy to parse for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description doesn't need to explain return values in detail. However, with no annotations and low schema coverage, it lacks completeness in behavioral aspects like safety or performance. The description is adequate for a simple fetch operation but misses key contextual details for reliable use.
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?
Schema description coverage is 0%, so the description must compensate. It implies the parameter is a URL for fetching, but doesn't add specific meaning beyond what the schema's property name 'target_url' suggests. The baseline is 3 because the description provides minimal context without detailing format constraints or examples.
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 verb 'fetches' and resource 'webpage', specifying what the tool does. It distinguishes from siblings like 'search_on_web' by focusing on fetching a specific URL rather than searching. However, it doesn't explicitly contrast with 'search_on_website', which might involve similar operations.
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?
No guidance is provided on when to use this tool versus alternatives like 'search_on_web' or 'search_on_website'. The description implies usage for fetching a specific URL, but it lacks explicit when-to-use or when-not-to-use instructions, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
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 discloses the return format and suggests using 'fetch_webpage' for detailed content, which adds useful behavioral context. However, it doesn't mention potential limitations like rate limits, authentication needs, or error handling, leaving gaps for a web search tool.
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 sized with three sentences that each serve a purpose: stating the tool's function, specifying the return format, and suggesting a follow-up action. It's front-loaded with the core purpose, though the return format details could be more concise. Overall, it's efficient with little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (web search with 2 parameters), no annotations, and the presence of an output schema (which handles return values), the description is reasonably complete. It covers the purpose, output format, and integration with 'fetch_webpage,' but lacks details on parameter semantics and some behavioral aspects like error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It mentions 'given query' which aligns with the 'query' parameter but doesn't explain the 'results' parameter or its default value of 10. The description adds minimal meaning beyond the schema, failing to adequately address 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 as 'Searches the web for information related to the given query,' which is a specific verb+resource combination. However, it doesn't explicitly differentiate from its sibling 'search_on_website,' which might search a specific website rather than the broader web. The purpose is clear but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning 'Use relevants links with `fetch_webpage` to get all the page content,' which suggests a workflow with a sibling tool. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'search_on_website' or general web search contexts. The guidance is implied but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it returns current date-time (implying real-time data), specifies UTC and local formats, and details the exact return structure. However, it does not mention potential issues like timezone dependencies or performance characteristics, leaving some gaps.
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 appropriately sized and front-loaded: the first sentence states the core purpose, and the subsequent lines provide essential return format details without redundancy. Every sentence earns its place by adding value (e.g., clarifying ISO format and structure).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters, no annotations, simple output), the description is complete enough. It explains what the tool does, the return format, and includes an output schema implicitly in the description. No additional context is needed for such a straightforward utility tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100% (as there are no parameters to describe). The description does not need to add parameter semantics, so it appropriately focuses on output. A baseline of 4 is applied since no parameters exist, and the description efficiently handles this by not discussing inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Returns') and resources ('current UTC and local date-time strings'), and distinguishes it from sibling tools (which are web-related, while this is a date/time utility). It goes beyond just restating the name by specifying the format and content of the return values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through the return format details (e.g., when ISO format date-time strings are needed), but it does not explicitly state when to use this tool versus alternatives or provide any exclusions. Given the sibling tools are unrelated (web fetching/searching), no direct comparison is needed, but general guidance is lacking.
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/RocwoDev/McpServer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server