@chenpu17/web-bridge-mcp
Server Quality Checklist
Latest release: v1.0.19
- Disambiguation4/5
The tools are clearly separated by purpose: web_search vs web_fetch are distinct (search vs retrieve URL), and resolve-library-id vs query-docs are distinct (resolve ID vs query docs). There is slight overlap between web_search and resolve-library-id for library queries, but explicit guidance to prefer Context7 tools resolves this ambiguity.
Naming Consistency2/5The naming convention is inconsistent: web_search and web_fetch use snake_case with verb_noun pattern, while resolve-library-id and query-docs use kebab-case. This mixed pattern (underscore vs hyphen) creates a lack of uniformity across the tool set, making it harder to anticipate tool names.
Tool Count5/5With only 4 tools, the set is tightly scoped for a web-bridge purpose: one search, one fetch, one library resolver, and one doc query tool. Each tool earns its place, and the count is well within the ideal 3-15 range.
Completeness5/5The set covers complete workflows: general web search leads to web_fetch for content retrieval, and library resolution leads to query-docs for documentation. No obvious dead ends or missing operations are apparent for the stated hybrid purpose of bridging general web and library documentation access.
Average 4.7/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
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
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
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses key behaviors: single API call, free/no API key required, supports English and Chinese, returns search result snippets. It does not mention rate limits or potential search restrictions, but covers the main user-relevant aspects.
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 well-structured with bullets and a separate usage notes section, front-loading the core purpose. Some redundancy exists between 'performs real-time web searches' and 'provides up-to-date information', and the bullet list is slightly verbose, but overall it remains focused and readable.
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?
For a two-parameter tool with no output schema, the description provides complete context: what it does, return format (titles, URLs, snippets), usage guidelines, alternative tools, language support, and auth requirements. It is sufficient for an agent to select and invoke the tool correctly.
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 100%, so the baseline is 3. The description does not add further meaning to the query or numResults parameters beyond what the schema already states (e.g., query content and result count with default). It names the tool's output but not parameter-specific behavior.
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 performs real-time web searches using DuckDuckGo and returns titles, URLs, and snippets. It also explicitly distinguishes from siblings by directing URL retrieval to web_fetch and documentation queries to Context7, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: for general web searches, current information, and queries beyond the model's knowledge cutoff. It also names alternatives: web_fetch for specific URLs and Context7 for API/library documentation, giving clear exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering safety (readOnly, idempotent, non-destructive), the description adds valuable behavioral context: the prerequisite to resolve the library ID, a rate limit (max 3 calls per question), and the fact that it retrieves up-to-date docs and code examples. These details go beyond annotation equivalents and help the agent understand the tool's constraints.
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 well-structured, starting with the tool's core purpose, then proceeding to usage constraints. Every sentence serves a purpose: official status, preferred use cases, prerequisite action, exemption for explicit IDs, and call limit. No redundant phrasing or fluff.
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?
For a 2-parameter tool with rich schema descriptions and clear annotations, the description covers all key operational aspects: official nature, prerequisite resolution, alternatives to avoid, and call limits. Even though there is no output schema, the tool's return type (docs/examples) is implicit, and the description provides sufficient context for correct invocation.
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 provides 100% coverage with detailed descriptions for both parameters—libraryId includes examples and origin ('resolve-library-id' or user query), and query includes specificity guidance, examples, and security warnings. The tool description adds no extra parameter meaning beyond what the schema already offers, so baseline 3 is appropriate.
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 identifies the tool as the official Context7 documentation query tool with a specific action ('retrieve authoritative docs and examples') and resource ('library documentation'). It distinguishes itself from web_search/web_fetch by stating it should be preferred for library/framework documentation, and references resolve-library-id as the prerequisite tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to prefer this tool over web_search/web_fetch for library/framework documentation, providing clear when-to-use guidance. It mandates calling 'Resolve Context7 Library ID' first unless the user supplies a library ID, and imposes a hard limit of no more than 3 calls per question—specific, actionable usage rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, but the description goes beyond by detailing result fields (Library ID, Name, Description, Code Snippets, Source Reputation, Benchmark Score, Versions), the selection process, and the response format. It also discloses the limit of 3 calls and the instruction to suggest query refinements if no matches. No contradiction with annotations.
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 long but well-structured with sections for intro, usage, result fields, selection process, and response format. It is front-loaded with the primary purpose and usage rule. Some redundancy exists between the result fields list and the selection criteria (e.g., code snippets and reputation are mentioned twice), but overall it earns its length without being wasteful.
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?
There is no output schema, so the description carries full responsibility for explaining return values—and it does comprehensively, listing all result fields and their meanings. It also covers edge cases: ambiguous queries, multiple matches, no matches, and version handling. Given the tool's central role in the workflow, the description is complete and self-sufficient.
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?
Schema coverage is 100%, so baseline is 3. The description adds extra meaning by giving examples for libraryName ('Next.js' instead of 'nextjs', 'Customer.io' instead of 'customerio') and a security warning for query (do not include sensitive info). It also explains that query is used for ranking relevance, which the schema only partially implies. These enrichments justify a score above baseline.
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 it is an 'Official Context7 library resolver' that 'Resolves a package/product name to a Context7-compatible library ID and returns matching libraries.' It specifies a concrete verb and resource, and explicitly differentiates from siblings by stating 'Prefer this over web_search for software documentation tasks.' This makes the tool's purpose distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidance: 'Use this first when the user asks about a library...' and 'Prefer this over web_search for software documentation tasks.' It also mandates a sequence: 'You MUST call this function before the Query Documentation tool' unless the user provides a library ID. It further provides exclusion rules (max 3 calls) and handles ambiguous queries with clarification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses URL format requirements, automatic HTTP->HTTPS upgrade, format options with default, response size limit (5MB), and timeout (120s). This goes beyond the minimal and provides useful operational expectations.
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 well-structured with a clear main statement followed by usage notes. It front-loads the core purpose and each bullet adds value without redundant repetition, making it appropriately sized for the tool's complexity.
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?
Despite lacking an output schema, the description covers input requirements, behavior, format options, size/timeout limits, and relationship to sibling tools. This is a self-sufficient explanation for how to invoke web_fetch correctly.
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?
Schema coverage is 100% and already includes URL, format enum, and timeout range. The description adds extra meaning by explaining the URL must be fully-formed and valid, and that HTTP URLs are upgraded to HTTPS, which supplements the schema.
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 opens with a specific verb+resource: 'Fetches content from a specified URL and converts it to readable format.' It clearly distinguishes itself from searching and sibling tools like web_search by stating 'not for searching.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: 'Use this when you have a specific URL to retrieve (not for searching)' and 'Use web_search first to find URLs, then use this tool to fetch their content.' It also mentions preferring Context7 for documentation, giving clear when-to-use and alternative guidance.
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/chenpu17/web-bridge-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server