TestLens
Server Details
Paste code + tests, get a strong/weak verdict with killed/survived mutants. Free API + MCP.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- wminno/testlens
- GitHub Stars
- 0
TDQS
Scored across 2 tools
The two tools have entirely separate purposes: one is a zero-argument liveness probe, the other is a mutation-testing operation with clear inputs (module code + unittests). There is no plausible way for an agent to confuse them.
Both names use the same 'testlens_' prefix and snake_case, which is predictable. Minor deviation in that 'health' is a noun state while 'mutate' is an action verb, but the intent of each is unambiguous.
Two tools is on the thin side for a service surface — one real operation plus a health check. It is well-scoped and non-bloated, but leaves little room for the configuration or result-retrieval operations one might expect.
The core lifecycle (health check, submit code + tests, receive mutation score and survivors synchronously) is covered with no dead ends. Gaps are minor: no way to select mutant operators, batch multiple modules, or retrieve/replay prior runs.
Available Tools
2 toolstestlens_healthAInspect
Check the TestLens API is up. Takes no arguments.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose the key behavioral fact that the call takes no arguments and is a passive status check. However, it says nothing about what constitutes 'up', whether it fails soft or hard, or whether it incurs cost/rate limits.
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 short sentences, purpose front-loaded, no filler. 'Takes no arguments' mildly duplicates the empty schema but usefully confirms the pre-call expectation.
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?
The tool is trivial, but with no output schema and no annotation coverage, the description leaves the return contract unspecified — an agent cannot tell whether it returns a boolean, a status string, or throws on failure.
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?
Zero parameters, so the baseline is 4; the description's 'Takes no arguments' is consistent with the empty schema and confirms no hidden inputs are needed.
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 ('check') and resource ('TestLens API is up'), so the operation is unambiguous. It does not explicitly contrast with the sibling testlens_mutate, but the read-only health-check intent is clear enough on its own.
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?
The purpose implies when to use it (verifying API availability/connectivity), but there is no explicit guidance on when to call it versus proceeding directly to testlens_mutate, nor any note about pre-flight or retry use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testlens_mutateAInspect
Mutation-test Python code: submit the module code and unittest test cases; TestLens generates small mutants (flipped comparisons, swapped operators, inverted booleans), runs the tests against each and reports the mutation score plus every SURVIVOR - behaviour the tests do not check. Free, no key.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Python module (saved as solution.py) | |
| tests | Yes | unittest test cases importing solution |
TDQS
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 that code is mutated, mutant types, that tests are run against each mutant, and that the result includes score and every survivor. It also notes auth context ('Free, no key'), though it omits execution isolation, timeouts, or mutant volume limits.
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?
The purpose is front-loaded, and every clause adds useful information: mutant mechanics, test execution, output contents, and auth context. There is no filler or redundant restatement.
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 two-parameter tool with no output schema and no annotations, the description covers the core contract well: what to submit, what happens internally, and what is returned. It could be more complete by mentioning execution limits, timeouts, or how failing tests are treated, but nothing essential is missing.
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 100%, so the two parameters are already documented in the schema, including the important detail that tests import 'solution'. The description restates the inputs at a high level but adds no meaningful syntax or format guidance beyond the schema.
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 and resource ('Mutation-test Python code') and explains exactly what the tool produces: mutation score and survivors. It is clear enough to separate from a health-check sibling in practice, but it never explicitly distinguishes itself from testlens_health.
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?
Usage is implied by the described output ('mutation score plus every SURVIVOR'), but there is no explicit when-to-use vs when-not guidance or named alternative. An agent must infer that this is appropriate when evaluating test suite strength rather than general code quality.
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
- First observed
testlens_health - First observed
testlens_mutate
Related MCP Connectors
Free MCP tools: the only MCP linter, health checks, cost estimation, and trust evaluation.
Security, SEO and AI-visibility scanner for web apps · free scans and focused checks via MCP.
Free test management over MCP: projects, test cases, plans, runs, environments and tasks.
Grade MCP servers A to F with the open behavioral litmus. npm: full toolset; hosted: lookups only.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides a code-quality backend MCP tool that automatically writes and repairs pytest tests, runs them in a sandbox, validates their effectiveness via mutation testing, and surfaces suspected source bugs for human review.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that performs mutation testing and diff scoping to score how trustworthy tests are for detecting regressions in changed code.MIT
- AlicenseAqualityAmaintenanceOn-demand micro-mutation sandbox for AI test verification that maps weaknesses in unit tests by running isolated mutation testing via the Model Context Protocol.33 npm2MIT
- AlicenseBqualityCmaintenanceEnables coding agents to run diff-scoped mutation testing on Python code, returning mutation scores and surviving mutants with actionable hints so they can improve tests.4MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.