Back to the catalog

com.validoria/validoria-mcp

Continuous website testing by Validoria — monitor security, SEO, performance, and accessibility.

Open source Repository Open in the app JSON README (API)

About

Continuous website testing by Validoria — monitor security, SEO, performance, and accessibility.

Details

Kind
MCP servers
Topic
Developer tools
Publisher
com.validoria
Origin
official
Category
ferramentas
Transport
http
Version
2.0.1
Added
2026-08-29 03:01:26
Updated
2026-09-13 03:10:10
Origin id
com.validoria/validoria-mcp

README

# teste-no-mcp

MCP (Model Context Protocol) server for [Teste.no](https://teste.no) — a continuous testing control center for websites, APIs, and webshops.

This package is a **thin stdio client** that connects Cursor, Claude, or any MCP-compatible host to your Teste.no instance via the tRPC API. It does **not** embed a database or queue — it calls your Teste.no API over HTTP with a Bearer token.

## Quick start

### 1. Create an API token

In Teste.no, go to **Settings → API Keys** and create a token with the scopes you need:
- `read` — list targets, findings, incidents, runs, stats
- `write` — trigger tests, manage incidents, record deployments
- `admin` — create/update/delete targets, muting rules, system health

### 2. Configure Cursor

Add to `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "teste-no": {
      "command": "npx",
      "args": ["-y", "teste-no-mcp"],
      "env": {
        "TESTE_NO_API_URL": "http://localhost:4207",
        "TESTE_NO_API_KEY": "tno_<your-api-key>"
      }
    }
  }
}
```

### 3. Verify connectivity

```bash
TESTE_NO_API_URL=http://localhost:4207 \
TESTE_NO_API_KEY=tno_xxx \
npx -y teste-no-mcp verify
```

Or from the package directory:

```bash
npm run verify
```

## Environment variables

| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `TESTE_NO_API_KEY` | Yes | — | API token (prefix `tno_`) from Settings → API Keys |
| `TESTE_NO_API_URL` | No | `http://localhost:4207` | Base URL of the Teste.no API server |

## Available tools (30)

### Read tools (16)

| Tool | Description |
|------|-------------|
| `list_targets` | List monitoring targets with status and uptime |
| `get_target` | Target details including composite scores |
| `get_target_scores` | Security/SEO/Performance/Accessibility scores (0-100) |
| `list_findings` | Open issues, filter by severity/target/status |
| `get_finding` | Finding detail with evidence and AI analysis |
| `list_incidents` | Grouped operational issues |
| `get_incident` | Incident detail with linked findings and deployment correlation |
| `list_runs` | Recent test runs, filter by target/status/slug |
| `get_run` | Run detail with metrics, score, and findings |
| `active_runs` | Currently running and queued tests |
| `team_stats` | Team-wide overview stats |
| `target_stats` | Per-target statistics |
| `daily_trends` | Time-series data for trend analysis (up to 90 days) |
| `get_site_map` | Latest crawl snapshot with page inventory and SEO issues |
| `list_maintenance_windows` | Scheduled maintenance windows for a target |
| `list_tests` | All 43 available test definitions (plugins) |

### Write tools (9)

| Tool | Description |
|------|-------------|
| `trigger_test` | Run a specific test by slug or ID |
| `trigger_all_tests` | Fan-out scan of all enabled tests for a target |
| `acknowledge_incident` | Mark an incident as acknowledged |
| `resolve_incident` | Resolve an incident |
| `mute_finding` | Mute an open finding |
| `create_maintenance_window` | Schedule alert suppression window |
| `delete_maintenance_window` | Remove a maintenance window |
| `record_deployment` | Track a deployment for incident correlation |
| `recompute_scores` | Force recompute composite scores |

### Admin tools (5)

| Tool | Description |
|------|-------------|
| `create_target` | Add a new website/API/webshop target |
| `update_target` | Update target properties |
| `delete_target` | Permanently delete a target |
| `create_muting_rule` | Auto-mute findings by pattern |
| `system_health` | Platform health report (queues, stuck runs, stats) |

> Admin tools require `admin` scope **and** the token owner must be in ADVANCED UI mode.

## Bundled Cursor rule

The package includes a `.cursor/rules/teste-no-mcp.mdc` file that teaches agents when to call which tools. Install it globally:

```bash
npx -y teste-no-mcp install-cursor-rule
```

Or copy it manually to your project's `.cursor/rules/` directory.

## ChatGPT / MCP App (OAuth)

Teste.no also works as a **ChatGPT MCP App** via Streamable HTTP with OAuth 2.1.

1. In ChatGPT, go to **Settings → Connected apps → Developer Mode**
2. Enter the MCP endpoint: `https://api.teste.no/api/mcp`
3. ChatGPT discovers the OAuth server via `/.well-known/oauth-protected-resource`
4. Sign in with your Teste.no email and password
5. Approve access on the consent page

ChatGPT uses Dynamic Client Registration (PKCE). No API key needed — authentication
is handled via OAuth tokens. See [`docs/mcp-chatgpt.md`](https://github.com/kaduno/teste.no/blob/main/docs/mcp-chatgpt.md) for details.

## Architecture

```
┌──────────────┐     stdio (JSON-RPC)     ┌──────────────────┐
│  Cursor IDE  │ ◄──────────────────────► │  teste-no-mcp    │
│  (MCP host)  │                           │  (this package)  │
└──────────────┘                           └────────┬─────────┘
                                                    │ HTTP + Bearer
                                                    ▼
                                           ┌──────────────────┐
                                           │  Teste.no API    │
                                           │  (Fastify+tRPC)  │
                                           └────────┬─────────┘
                                                    │
                                            ┌───────┴───────┐
                                            │  PostgreSQL    │
                                            │  Redis+BullMQ  │
                                            └───────────────┘
```

The MCP package is a **zero-dependency client** (only `@modelcontextprotocol/sdk` and `zod`). All business logic, authorization, and data access happen in the Teste.no API.

## Development (monorepo)

If developing inside the teste.no monorepo:

```bash
cd packages/teste-no-mcp
pnpm install
pnpm dev   # tsx watch mode
```

## Publishing

```bash
cd packages/teste-no-mcp
npm version patch   # or minor/major
npm publish
```

The `prepare` script runs `tsc` before publish to ensure `dist/` is built.

## License

MIT

More