UXMachine
Server Details
Website checker for AI coding agents. Measures your site in a real browser, with evidence.
- Status
- Healthy
- Uptime
- 77.8% over 25 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a fairly distinct role: medir starts a measurement, estado polls its status, memoria reads historical site memory, and tunel sets up a local tunnel. The only mild overlap is between estado and memoria, since both surface observed results, but the descriptions clarify that estado is per-measurement status while memoria is prior-site memory.
All names are single lowercase Spanish words, which is stylistically consistent, but there is no predictable verb_noun pattern and the parts of speech are mixed (verb 'medir' vs nouns 'estado', 'memoria', 'tunel'). Readable but not a systematic convention.
Four tools map cleanly onto the async measurement workflow (start, poll, prior-memory, tunnel), so each earns its place. It is slightly lean, with no separate tool for listing or canceling measurements, but not thin enough to feel incomplete.
The core lifecycle—launch a measurement, poll until done, review prior site memory, and enable local-server measurement—is covered. Minor gaps exist around managing measurements (listing history, canceling, credit/account status) that an agent could work around but would occasionally miss.
Available Tools
4 toolsestadoCheck a measurementARead-onlyIdempotentInspect
Tells where a measurement stands and, once it has finished, what was observed, with its limits, where the report is and, if an earlier measurement was given, how it compares with it. While it is queued or running, call it again until it has finished; each call waits up to 25 seconds by default.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id returned by `medir`. | |
| idioma | No | Language of the answer: "es" or "en". Defaults to the language of the measurement. | |
| esperar_segundos | No | Seconds to wait for the measurement to finish before answering, from 0 to 50. Default 25. If it has not finished by then, call estado again. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description contributes genuinely non-structured behavior: a call blocks for up to 25 seconds, and unfinished states require repeated calls. It does not disclose rate limits or failure behavior, keeping it at 4.
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?
Two sentences, front-loaded with the outcome (what you get back), followed by the polling instruction. The first sentence is long and clause-stacked ('with its limits, where the report is and, if an earlier measurement was given, how it compares'), which costs some readability but no sentence is wasted.
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?
No output schema exists, so the description must describe returns — and it does, listing status, observations, limits, report location, and comparison. Combined with the 100%-covered input schema and readOnly annotations, an agent has what it needs. Minor gap: no mention of error/not-found behavior for a bad id.
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?
Schema coverage is already 100%, so the schema carries parameter meaning; the description's added value is the polling/wait semantics ('each call waits up to 25 seconds by default'), which explains why `esperar_segundos` exists. It does not touch the `idioma` parameter, but the schema covers that fully.
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 states a specific verb ('Tells where a measurement stands') and resource (a measurement), and enumerates what is returned at each lifecycle stage — status, observations, limits, report location, comparison. That distinguishes it from the sibling `medir` (which starts a measurement, as the id parameter description implies), though the description itself never names the alternatives.
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?
It gives an explicit operational rule: 'While it is queued or running, call it again until it has finished,' plus the 25-second blocking default. That tells the agent how to poll correctly. It stops short of stating when-not to use it (e.g. after completion, or versus `memoria`), so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
medirMeasure a web pageAInspect
Measures a web page with UXMachine in a real browser. Returns the measurement id right away; the result takes a few minutes and is read with estado. Each measurement uses 1 credit from the account; measurements that cannot be made use none.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full address of the page, including its protocol (https://…). | |
| idioma | No | Language of the answers: "es" or "en". Defaults to "en". | |
| anterior | No | Optional. Id of an earlier measurement from the same account to compare this one with. | |
| iniciativa | No | Optional. "agente" if you decide to measure on your own; "persona" if the person you work with asked you to. | |
| esperar_segundos | No | Optional. Seconds to wait for the measurement to finish before answering, from 0 to 50. Without it, medir answers at once. If it has not finished by then, call estado. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the annotations by disclosing the asynchronous lifecycle (id returned right away, result takes minutes, read via `estado`), the credit cost per measurement, and the no-charge behavior for failed measurements. These are meaningful traits the structured fields do not convey.
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?
Three short sentences with zero filler; the async lifecycle and polling path are front-loaded, and the cost note is a single compact clause.
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?
With no output schema, the description carries the return-value burden and does so (an id, result via `estado`). Cost and async behavior are covered; only edge cases like comparison via `anterior` are left entirely to the schema.
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?
Schema description coverage is 100%, so the schema already documents every parameter including the enum and the esperar_segundos polling semantics. The description only gestures at the wait/poll flow indirectly and adds no parameter meaning beyond the schema, which is the baseline-3 case.
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?
States a specific verb (measures) and resource (a web page), plus the execution context (UXMachine, real browser). It also implicitly separates itself from the sibling 'estado' by naming it as the tool that reads the result.
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?
Clearly explains the async usage pattern — invoke, get an id immediately, then poll with `estado` — which tells the agent when this tool ends and the sibling begins. It lacks an explicit 'do not use this when...' exclusion, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memoriaRead a site's UX memoryARead-onlyIdempotentInspect
Reads the UX memory of a site: what was observed in its last measurement, what came back and what could not be checked. Call it before you start changing what users see on that site. It does not measure and uses no credit.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Address or domain of the site (for example, https://yoursite.com or yoursite.com). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is covered. The description still adds real behavioral context not present in structured data: the operation consumes no credit (cost) and returns a reconciliation of checkable vs. uncheckable findings, which tells the agent what state the site's memory is in.
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?
Two sentences, front-loaded with the action and its scope before the usage cue. The middle clause listing returned content is slightly baggy but each element (observed / came back / not checked) carries distinct meaning, so there is little waste.
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?
For a one-parameter read-only tool with no output schema, the description covers what it is, when to call it, cost implications, and the rough shape of what comes back. That is close to complete; only auth or error behavior is left unstated, which is minor here.
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?
There is a single url parameter at 100% schema description coverage, and the schema already gives format examples (https://yoursite.com or yoursite.com). The description adds nothing about the parameter, so the baseline of 3 applies when the schema does all the work.
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?
Names a specific verb ("Reads") and resource ("the UX memory of a site") and enumerates the scope of the content: last measurement, what came back, what could not be checked. It also explicitly separates itself from the measurement sibling by stating "It does not measure," so an agent can distinguish it from medir without opening a schema.
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?
"Call it before you start changing what users see on that site" is an explicit usage trigger, and "It does not measure and uses no credit" implicitly routes measurement work to medir. It stops short of naming the alternative tool or any other alternatives, so it is clear context rather than full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tunelOpen a tunnel to your local versionAInspect
Returns the command that opens a temporary tunnel from UXMachine to a server running on the user's machine, so its local version can be measured with medir. Run the command in the background: it keeps running until it closes on its own, 30 minutes after it starts. It uses no credits.
| Name | Required | Description | Default |
|---|---|---|---|
| idioma | No | Language of the answers: "es" or "en". Defaults to "en". | |
| puerto | Yes | Port the local server listens on, for example 3000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses the command's 30-minute lifetime, that it runs until self-terminating, that it should be backgrounded, and that it costs no credits — all useful operational facts an agent needs. It does not cover behavior on repeated invocations or what happens if the local port is unreachable.
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?
Three sentences, front-loaded with the return value, then execution guidance, then the cost note. No sentence is filler and no important detail is buried.
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?
There is no output schema, but the description explains what is returned (a runnable command) and how to use it. Combined with annotations covering the safety profile, an agent has enough to call it correctly; only edge cases like re-invocation are unaddressed.
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?
Schema description coverage is 100%, so `puerto`'s meaning and range and `idioma`'s enum values are already fully documented in the schema. The description mentions no parameters at all, so it adds nothing beyond the structured fields; the baseline of 3 applies.
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 states a precise verb and resource: it returns the shell command that opens a temporary tunnel to a local server. It also ties the tool to its downstream purpose (measuring the local version with `medir`), so an agent can distinguish it from `medir` and `estado` without opening any schema.
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?
It gives clear operational context: run the returned command in the background, it stays alive until it closes on its own 30 minutes later, and it consumes no credits. It never states when NOT to use this tool or how to choose between it and the sibling tools, so it stops short of explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
estado2 fields changed- changed
Input schema / properties / esperar_segundos / descriptionPrevious value: -"Seconds to wait for the measurement to finish before answering, from 0 to 240. Default 25. If it has not finished by then, call estado again."New value: +"Seconds to wait for the measurement to finish before answering, from 0 to 50. Default 25. If it has not finished by then, call estado again." - changed
Input schema / properties / esperar_segundos / maximumPrevious value: -240New value: +50
- Changed
medir2 fields changed- changed
Input schema / properties / esperar_segundos / descriptionPrevious value: -"Optional. Seconds to wait for the measurement to finish before answering, from 0 to 240. Without it, medir answers at once. If it has not finished by then, call estado."New value: +"Optional. Seconds to wait for the measurement to finish before answering, from 0 to 50. Without it, medir answers at once. If it has not finished by then, call estado." - changed
Input schema / properties / esperar_segundos / maximumPrevious value: -240New value: +50
1 tool update
- Added
memoria
2 tool updates
- Changed
estado1 field changed- added
Input schema / properties / esperar_segundosAdded value: +{ + "description": "Seconds to wait for the measurement to finish before answering, from 0 to 240. Default 25. If it has not finished by then, call estado again.", + "maximum": 240, + "minimum": 0, + "type": "integer" +}
- Changed
medir1 field changed- added
Input schema / properties / esperar_segundosAdded value: +{ + "description": "Optional. Seconds to wait for the measurement to finish before answering, from 0 to 240. Without it, medir answers at once. If it has not finished by then, call estado.", + "maximum": 240, + "minimum": 0, + "type": "integer" +}
3 tool updates
- First observed
estado - First observed
medir - First observed
tunel
Publisher details
- Operator
- Albert Garcia Pujadas · Publisher source
- Operator website
- https://uxmachine.app
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://uxmachine.app/en/agents · Publisher source
- Trust center
- Not available
- Restrictions
- Requires a free UXMachine account (OAuth). Measurements use credits: 10 free credits on sign-up, 1 credit per measurement; measurements that cannot be made use none. · Publisher source
Related MCP Connectors
The website checker for AI agents. One call: verdict, score out of 100, fix list.
Browser-based QA for AI-built software. Test pages with real browsers via agents.
Scores any public website on how usable it is by AI agents, with per-check evidence.
AI QA tester — real browsers scan sites for bugs, SEO, perf, and accessibility issues via chat.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI coding agents to see, measure, and verify web pages through a real Chrome browser, including screenshots, responsive layout and accessibility audits, pixel diffing against baselines, secure logins, and deployed-fix verification.271MIT
- AlicenseAqualityCmaintenancePoint your coding agent at a URL and get a real-browser QA audit: broken signup/login/checkout flows, JS console errors, missing analytics, consent + security headers, mobile tap targets, and accessibility — returned as machine-verified findings graded A-F.4436 PyPI2Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to audit rendered web pages for design and UI defects by measuring geometry, styles, contrast and motion in a local browser and judging them against evidence-tiered rules. Findings come back as short, fixable items expressed in the project's own design tokens, while only sanitized numeric measurements leave the machine.Apache 2.0
- AlicenseAqualityCmaintenanceAI-native browser testing, directly from your coding agent.3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.