mcp-uxhints
Server Quality Checklist
Latest release: v1.1.1
- Disambiguation5/5
Each tool has a distinct purpose: listing categories, listing hints with filters, searching, fetching a specific hint, retrieving a random hint, and refreshing the cache. There is no overlap in functionality; an agent can easily choose the correct tool based on intent.
Naming Consistency4/5Tool names mostly follow a clear verb_noun pattern (list_, search_, get_, refresh_). 'random_hint' is a slight deviation since 'random' is not a verb, but it still reads as an imperative action and fits the overall snake_case convention. The inconsistency is minor.
Tool Count5/5With 6 tools, the server is well-scoped for a catalog browsing and retrieval service. Each tool serves a unique, essential function without redundancy or bloat. The count is ideal for the domain.
Completeness5/5The tool set covers all common read operations: list all (with category filters), search, get by id/slug, and get random. The refresh tool handles cache maintenance. Since this is a read-only hint catalog, there are no missing CRUD operations; the surface is complete for its purpose.
Average 4.3/5 across 6 of 6 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 8 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
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It transparently discloses the caching behavior with 'local catalog cache (default 24h TTL)' and the refresh path, and it states the return format as Markdown. This is substantial beyond the schema, though it does not discuss randomness semantics or edge cases like cache misses.
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?
Two sentences contain the core purpose, output shape, caching behavior, and refresh path. Information is front-loaded, and no words are wasted.
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?
For a zero-parameter read-only tool with no output schema, the description covers the primary return shape (Markdown, same as get_hint) and operational behavior (cache TTL and refresh). It is adequate, though it relies on get_hint's definition for the full return structure and does not specify what happens if the catalog cache is empty.
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 zero parameters, so the input schema is complete and the baseline is 4. The description still adds value by clarifying the output format and cache behavior, but there are no parameters to document.
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 states a clear action and resource: 'Get one random hint from uxhints.com' and specifies the output shape as 'same shape as get_hint: full content as Markdown.' It clearly differentiates the random selection from the more targeted get_hint, though it relies on a sibling tool for shape details rather than fully describing the resource itself.
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?
Usage is implied: use this tool when a random hint is desired. The description gives specific guidance about cache freshness ('call refresh_hint_catalog to force an update'), but it does not explicitly say when to prefer random_hint over list_hints, search_hints, or get_hint, nor does it state exclusion criteria.
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 behavioral burden and delivers: it discloses the caching behavior with a specific 24h TTL and names the refresh sibling, plus reveals pagination meta (total/totalPages). For a read-only list operation there is no destructive behavior to disclose; the cache staleness caveat is the key trait and it is covered well.
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?
Three sentences with zero wasted words: the verb and resource are front-loaded, the return structure and filter follow immediately, and the cache caveat is appended last. Each sentence earns its place.
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?
In the absence of an output schema, the description compensates by specifying the returned fields and pagination metadata. It also covers cache staleness and where category values come from. Minor gaps remain — error conditions, empty-result behavior, and how totalPages terminates paging — but for a moderate-complexity listing tool this is near-complete.
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% — page, category, and per_page are all already described in the schema with defaults and bounds. The description adds marginal value by tying the category parameter to list_categories as the source of valid slugs, but beyond that it does not clarify syntax or formats beyond the schema, so the baseline 3 holds.
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?
Opens with a specific verb+resource ('List UX hints from uxhints.com') and explicitly enumerates the return fields (id, title, slug, link, date, categories), which sharply differentiates it from the sibling get_hint, search_hints, and random_hint tools. The filtering by category slug further distinguishes it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for the category filter by pointing to list_categories as the source of valid slugs, and explicitly routes cache-freshness concerns to refresh_hint_catalog. However, it stops short of stating when to prefer search_hints or get_hint over this listing tool, leaving some selection to inference.
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 of behavioral disclosure. It transparently states cache behavior (local, 24h TTL), the substring matching semantics (case/diacritic insensitive), ranking (title over content), and that pagination/results match list_hints. It does not mention error conditions, rate limits, or potential staleness beyond TTL, but for a read-only search tool these omissions are minor given the depth of behavior described.
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?
Three sentences, no fluff. The main purpose is front-loaded, followed by matching specifics, ranking, result shape, and cache refresh guidance. Every clause earns its place; there is no redundancy or verbose phrasing.
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?
For a search tool with no output schema, the description covers the core contract: scope, matching behavior, ranking, result shape, cache TTL, and how to force an update. It omits error handling, network behavior, or any edge-case notes, but the reference to list_hints for result shape and pagination covers the return structure adequately. It is nearly complete, though a note on what happens when the cache is unavailable would push it to a 5.
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% with all three parameters (query, page, per_page) described, so baseline is 3. The description adds meaningful semantic context beyond the schema: it specifies that query performs substring matching over titles, excerpts, and full content, is case/diacritic insensitive, and that title matches rank first. It also ties pagination to list_hints, giving agents a clear contract for page and per_page behavior. This enrichment justifies one point 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 states a specific verb (search) with a precise resource (cached uxhints.com catalog) and detailed behaviors: case-insensitive, diacritic-insensitive substring matching over titles, excerpts, and full content. It also distinguishes itself from list_hints by referencing the same result shape and pagination, and from refresh_hint_catalog by mentioning the cache update mechanism. This clarity leaves no ambiguity about the tool's role.
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 use for searching rather than listing, but it does not explicitly state when to prefer search_hints over list_hints, get_hint, or random_hint. It does include a specific usage note for refreshing the catalog (call refresh_hint_catalog), but lacks a broader when-to-use/when-not-to-use guidance. Alternative selection is largely left to inference from the name and the reference to list_hints.
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 of behavioral disclosure. It reveals that content is converted from WordPress HTML to clean Markdown, that results are cached with a 24h TTL, and that refresh_hint_catalog exists to bypass the cache. It does not mention error handling or retries, but for a read-oriented fetch tool, the disclosed cache and transformation behaviors are sufficiently transparent.
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 two concise sentences. The first conveys the core purpose and output format; the second addresses the cache and the refresh alternative. No wasted words, and the most important detail (the exactly-one constraint) is front-loaded. The structure makes it easy for an agent to parse quickly.
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?
Without an output schema, the description gives a reasonable sense of the return: it includes full content converted to Markdown. It also covers the retrieval method (id/slug) and caching behavior. It does not explicitly enumerate all returned fields (e.g., title, metadata), but for a single-hint fetch the description is largely sufficient. Sibling tools like list_hints might convey the expected object shape implicitly.
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 input schema already comprehensively describes both parameters (id and slug) with 100% coverage. The description adds critical value by noting that exactly one of the two is required, which is not reflected in the schema (no required fields). It also clarifies that the slug is without category prefix, refining the schema's generic 'Post slug' definition.
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 retrieves a single hint by id or slug, explicitly noting exactly one is required. It distinguishes itself from siblings like list_hints and search_hints by focusing on a one-shot fetch, and from refresh_hint_catalog by mentioning cache behavior. The verb 'get' plus the resource 'hint' is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the exactly-once constraint for id/slug, which guides parameter selection. It also mentions the cache TTL and points to refresh_hint_catalog as the alternative for force updates. However, it does not explicitly state when to prefer this over search_hints or list_hints, though the name and 'exactly one' implication make the context fairly clear.
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?
No annotations are provided, so the description carries the full disclosure burden. It does well by revealing the nontrivial caching behavior — results come from a local catalog cache with a 24h TTL — and directing to refresh_hint_catalog for forced updates. It omits return-format details, but for a simple listing tool this is a minor gap.
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?
Two sentences with no filler. The core purpose (what it lists and its role for list_hints) is front-loaded in the first sentence, with the caching behavior added in the second. Every word earns its place.
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?
For a param-less tool with neither annotations nor an output schema, the description covers the essential ground: what it returns, why it exists (feed list_hints), and how the cache behaves. It could name the exact shape of the result, but the output content is already disclosed, making this adequate.
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, which sets the baseline at 4. The description still adds value by previewing what the output will contain (categories with hint counts and slugs), so an agent knows what to expect from the call despite the schema being empty.
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?
States a specific verb-resource pair ('List the hint categories on uxhints.com') and explicitly names the output fields (hint counts, slugs). It also differentiates itself from siblings by describing its role as the provider of filters for list_hints, distinguishing it from list_hints, search_hints, get_hint, and random_hint without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose clearly implies the use case: fetch category slugs to pass into list_hints as filters. It also flags refresh_hint_catalog as the alternative for cache refresh, giving the agent a concrete routing point. It doesn't state explicit exclusions, but the context is strong enough that an agent can decide when to call it.
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 so well. It discloses the forced sync, cache rewrite, TTL bypass, expected return values, and failure behavior where existing caches remain untouched. This is unusually complete for a tool with no structured annotations.
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?
Three sentences with no filler: the action and effect are front-loaded, the return values are stated, and the failure guarantee is included. Every sentence earns its place.
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 zero-parameter tool with no output schema, the description covers what it does, what it returns, and what happens on failure. An agent has enough information to invoke it correctly and set expectations, especially given the sibling-tool context.
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 zero parameters and schema description coverage is 100%, so there is nothing for the description to add about parameters. The description instead adds useful behavioral and return-value context, which is appropriate given the empty input 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 states a specific action ('Force a live sync'), the resource ('uxhints.com catalog'), and the key side effect ('rewrite the local cache'). This clearly distinguishes it from sibling read tools like list_hints or search_hints, which consume the catalog rather than refresh it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: call this when a live sync is needed and the TTL should be bypassed. It does not explicitly name alternatives or say when not to use it, but the contrast with the read-oriented siblings is strongly implied.
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/Mateodioev/mcp-uxhints'
If you have feedback or need assistance with the MCP directory API, please join our Discord server