# Revly (remote · revly.no)

Revly kobler assistenter til revisjonsarbeid med firmastyrt tilgang og personlig samtykke.

- Trust score: 75/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `revly.no`: 75/100 (this document), [markdown](https://verifymcp.io/servers/no-revly-revly/revly.md), [page](https://verifymcp.io/servers/no-revly-revly/revly)

## Channel facts

- Endpoint: `https://revly.no/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 77/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2472 tokens (~206/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 10/100
  - Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the Revly MCP server?

Revly is a hosted endpoint at https://revly.no/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http no-revly-revly 'https://revly.no/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "no-revly-revly": {
      "url": "https://revly.no/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "no-revly-revly": {
      "type": "http",
      "url": "https://revly.no/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.no-revly-revly]
url = "https://revly.no/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "no-revly-revly": {
      "type": "remote",
      "url": "https://revly.no/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add no-revly-revly --url 'https://revly.no/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  no-revly-revly:
    url: "https://revly.no/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "no-revly-revly": {
      "Transport": "http",
      "Url": "https://revly.no/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add no-revly-revly -t streamable-http -u 'https://revly.no/mcp'
```

### Other

```json
{
  "mcpServers": {
    "no-revly-revly": {
      "type": "http",
      "url": "https://revly.no/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 74, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional improvement] Stability: unverified → 0.03

### 2026-11-02 (score 74)

First indexed and scored.

## MCP tools (12)

### `revly_health` (~25 tokens)

Sjekk Revly-tjenestens helse

Returnerer den offentlige, lesende helsestatusen for Revly.

Output parameters:

- `checked_at` (string)
- `status` (string)

### `revly_kontekst` (~42 tokens)

Tilkoblingskontekst fra Revly

Viser firmaet tilkoblingen gjelder (ID og navn), rollen din, den registrerte assistenten og verktøyene du har tilgang til.

Output parameters:

- `allowed_tools`: Read tools this connection may call.
- `client`: Assistant registered for this connection.
- `firma_id` (string|null): ID of the firm this connection is for, as text.
- `firma_navn` (string|null): Name of the firm this connection is for.
- `firma_rolle` (string|null): Your role in the firm, for example partner.
- `operation_id` (string): Revly operation ID for this read, recorded in the access log.
- `status` (string): available when the connection is valid.

### `finn_oppdrag` (~158 tokens)

Finn oppdrag i tilkoblet firma

Søker etter klientnavn, organisasjonsnummer eller år i firmaet tilkoblingen gjelder. Uten søkeord listes firmaets aktive oppdrag. Hvert treff viser hvor mange forespørsler som venter på klienten og siden når, og lovfristene Revly utleder for revisjonsoppdrag. En frist uten grunnlag står som ukjent, aldri som en gjettet dato. Gir høyst åtte treff.

Input parameters:

- `grense` (integer): Maksimalt antall treff, fra 1 til 8.
- `sok` (string): Klientnavn, organisasjonsnummer eller fire-sifret oppdragsår. Utelat for å liste aktive oppdrag.

Output parameters:

- `limit` (number|null): Maximum number of matches requested, from 1 to 8.
- `matches`: Matching engagements, newest year first.
- `operation_id` (string): Revly operation ID for this read, recorded in the access log.
- `result_count` (number|null): Number of matches returned.
- `status` (string): matches, no_matches or truncated when more rows exist than the limit.
- `truncated` (boolean|null): True when more matches exist than the limit.

### `hent_oppdrag_tilstand` (~82 tokens)

Hent oppdragsstatus fra Revly

Henter avgrenset oppdragsstatus og statusantall for én eksplisitt oppdrags-ID. Fritekst, klientmeldinger og jobbinnhold er utelatt.

Input parameters:

- `oppdrag_id` (string, required): Eksplisitt oppdrags-ID fra Revly. Oppslag uten ID er ikke tillatt.

Output parameters:

- `aar` (number|null): Engagement year.
- `activity`: Bounded status counts. No free text or job content.
- `budsjett`: Budget and phase reservations. Null when nothing is registered. Missing figures are null, never a fake 0.
- `evidence`
- `fase` (string|null): Engagement phase.
- `klient`: Client for this engagement.
- `missing_sources`: Sources with no record. Missing data stays visible and is never treated as a positive result.
- `operation_id` (string): Revly operation ID for this read, recorded in the access log.
- `oppdrag_id` (string|null): Engagement ID, as text.
- `oppdrag_status` (string|null): Engagement status.
- `revly_url` (string|null): Link to the engagement in Revly.
- `sources`: Sources that contributed to the result.
- `status` (string): available for a visible engagement.
- `truncated` (boolean|null): True when the result was cut short.

### `hent_vesentlighet` (~78 tokens)

Hent vesentlighetsgrunnlag fra Revly

Henter registrerte vesentlighetsgrenser og en begrenset begrunnelse for én eksplisitt oppdrags-ID. Manglende vurdering forblir synlig.

Input parameters:

- `oppdrag_id` (string, required): Eksplisitt oppdrags-ID fra Revly. Oppslag uten ID er ikke tillatt.

Output parameters:

- `aar` (number|null): Engagement year.
- `assessment_status` (string|null): available or not_assessed. not_assessed is never a positive conclusion.
- `begrunnelse` (string|null): Rationale, bounded to 2000 characters. Null when not recorded, including an empty or blank stored value.
- `begrunnelse_avkortet` (boolean|null): True when the rationale was cut to 2000 characters.
- `begrunnelse_status`: mangler when no rationale text is recorded, even if thresholds are set. Never read a missing rationale as an assessment.
- `evidence`
- `grenser`: Registered materiality thresholds.
- `missing_sources`: Sources with no record. Missing data stays visible and is never treated as a positive result.
- `operation_id` (string): Revly operation ID for this read, recorded in the access log.
- `oppdrag_id` (string|null): Engagement ID, as text.
- `revly_url` (string|null): Link to the engagement in Revly.
- `sources`: Sources that contributed to the result.
- `status` (string): available for a visible engagement.
- `truncated` (boolean|null): True when the result was cut short.

### `hent_signoff_status` (~84 tokens)

Hent signeringsstatus fra Revly

Henter avgrenset områdesignering, EQCR-, partnergjennomgangs- og beretningsstatus for én eksplisitt oppdrags-ID. Dette er ikke en faglig godkjenning.

Input parameters:

- `oppdrag_id` (string, required): Eksplisitt oppdrags-ID fra Revly. Oppslag uten ID er ikke tillatt.

Output parameters:

- `aar` (number|null): Engagement year.
- `beretning`: Report draft status.
- `eqcr`: EQCR status. This is not a professional approval.
- `evidence`
- `missing_sources`: Sources with no record. Missing data stays visible and is never treated as a positive result.
- `omraade_signeringer`: Area signatures, at most 50 groups.
- `operation_id` (string): Revly operation ID for this read, recorded in the access log.
- `oppdrag_id` (string|null): Engagement ID, as text.
- `partnergjennomgang`: Partner review summary.
- `revly_url` (string|null): Link to the engagement in Revly.
- `sources`: Sources that contributed to the result.
- `status` (string): available, or not_recorded when no signature, review or report exists.
- `truncated` (boolean|null): True when the area list was cut short.

### `hent_forespoersler` (~148 tokens)

Hent forespørsler til klienten

Henter opptil 80 forespørsler til klienten på én eksplisitt oppdrags-ID: område, kategori, tilstand, sendt dato, svarfrist, svardato, antall purringer og om revisor har vurdert svaret. Tittel, beskrivelse, svartekst og mottaker er utelatt. Interne forespørsler er ikke med. «Ikke vurdert» betyr at ingen vurdering er registrert, ikke at svaret er tilstrekkelig.

Input parameters:

- `oppdrag_id` (string, required): Eksplisitt oppdrags-ID fra Revly. Oppslag uten ID er ikke tillatt.

Output parameters:

- `aar` (number|null): Engagement year.
- `antall` (number|null): Number of client requests on the engagement, internal requests excluded.
- `evidence`
- `forespoersler`: Up to 80 requests, newest first. Titles, descriptions, answers and recipients are not included.
- `missing_sources`: Sources with no record. Missing data stays visible and is never treated as a positive result.
- `operation_id` (string): Revly operation ID for this read, recorded in the access log.
- `oppdrag_id` (string|null): Engagement ID, as text.
- `revly_url` (string|null): Link to the requests of the engagement in Revly.
- `sources`: Sources that contributed to the result.
- `status` (string): available for a visible engagement.
- `truncated` (boolean|null): True when the engagement has more than 80 requests.

### `hent_portefolje` (~200 tokens)

Hent porteføljen i tilkoblet firma

Lister alle aktive oppdrag i firmaet tilkoblingen gjelder, 50 per side, med totalt antall og antall sider. Hvert oppdrag har de samme feltene som finn_oppdrag: klient, organisasjonsnummer, år, fase, forespørsler som venter på klienten, lovfristene Revly utleder, og i tillegg nærmeste svarfrist og antall svarfrister som er passert. Bruk side for å hente resten når listen er avkortet, og aar for å avgrense til ett oppdragsår. En frist uten grunnlag står som ukjent, aldri som en gjettet dato. Tekst i forespørslene er utelatt.

Input parameters:

- `aar` (integer): Fire-sifret oppdragsår. Utelat for alle år.
- `side` (integer): Side som skal hentes, fra 1.

Output parameters:

- `aar` (number|null): Engagement-year filter, or null for all years.
- `matches`: Active engagements on this page, newest year first, then client name.
- `operation_id` (string): Revly operation ID for this read, recorded in the access log.
- `result_count` (number|null): Engagements on this page.
- `side` (number|null): Page returned, from 1.
- `side_stoerrelse` (number|null): Engagements per page (50).
- `sider` (number|null): Number of pages for the same filter.
- `status` (string): matches, no_matches, truncated when more pages follow, or side_utenfor when the page is past the last one (not an empty result).
- `total_count` (number|null): Active engagements matching the filter across all pages.
- `truncated` (boolean|null): True when more pages follow. Fetch them before saying anything about the whole portfolio.

### `hent_avslutningsstatus` (~207 tokens)

Hent avslutningsstatus fra Revly

Henter status for avslutningen av én eksplisitt oppdrags-ID: for hvert av de seks avslutningsstegene om det er markert utført og når, og for hvert dokumentasjonsfelt om det finnes tekst og hvor lang den er. I tillegg antall etterfølgende hendelser per status, hvor mange punkter i årsoppgjørssjekklisten som er tatt stilling til, arkiveringsstatus, og om fortsatt drift og analysekonklusjonen er vurdert. Teksten, konklusjonene og hvem som har markert er utelatt. Summen av ukorrigerte feil mot vesentlighet er ikke med. Manglende dokumentasjon betyr «ikke dokumentert», aldri «i orden». Dette er ikke en faglig godkjenning.

Input parameters:

- `oppdrag_id` (string, required): Eksplisitt oppdrags-ID fra Revly. Oppslag uten ID er ikke tillatt.

Output parameters:

- `aar` (number|null): Engagement year.
- `analysekonklusjon_vurdert` (boolean|null): Whether the closing analytical conclusion is recorded. The conclusion is not returned.
- `antall_markert_utfort` (number|null): Steps marked done.
- `antall_steg` (number|null): Number of closing steps.
- `arkivering_status` (string|null): Archive status code, or null when not archived.
- `avsluttende_vurdering_finnes` (boolean|null): False when no closing record exists yet; then every step is «ikke dokumentert».
- `etterfolgende_hendelser`
- `fortsatt_drift_vurdert` (boolean|null): Whether the going-concern assessment is recorded as done. The conclusion is not returned; null when unknown.
- `isa450`
- `missing_sources`: Sources with no record. Missing data stays visible and is never treated as a positive result.
- `operation_id` (string): Revly operation ID for this read, recorded in the access log.
- `oppdrag_id` (string|null): Engagement ID, as text.
- `revly_url` (string|null): Link to the closing page in Revly.
- `sjekkliste`
- `status` (string): available for a visible engagement.
- `steg`: The closing steps in working order.
- `truncated` (boolean|null)

### `hent_handlinger` (~284 tokens)

Hent revisjonshandlinger fra Revly

Henter revisjonshandlingene på én eksplisitt oppdrags-ID. Svaret har alltid en eksakt oppsummering per revisjonsområde: antall, utført, i arbeid, ikke aktuell og gjennomgått, for delår og årsslutt hver for seg, planlagte forslag som venter, og områdesignering. Områder med arbeidspapir telles fra arbeidspapiret, ellers fra de eldre handlingene, som i områdeoversikten. Oppgi omraade for å få handlingene i ett område: status, om den er utført og gjennomgått med dato, handlingstype, bevismetode, påstander og ISA-nummer, høyst 100 handlinger og 30 forslag. Handlingstekst, notater, konklusjoner, begrunnelser og hvem som har utført eller signert er utelatt. Et område uten handlinger betyr «ingen registrert», aldri «ferdig». Dette er arbeidsstatus, ikke en faglig godkjenning.

Input parameters:

- `omraade` (string): Områdekode fra per_omraade, for eksempel S for salg. Utelat for bare oppsummeringen.
- `oppdrag_id` (string, required): Eksplisitt oppdrags-ID fra Revly. Oppslag uten ID er ikke tillatt.

Output parameters:

- `aar` (number|null): Engagement year.
- `detalj_antall` (number|null): Procedures in the requested area; more than the rows returned when truncated.
- `detalj_modell`: Model of the procedure rows.
- `evidence`
- `handlinger`: Procedures of the requested area, at most 100. Null when no area was requested.
- `missing_sources`: Sources with no record. Missing data stays visible and is never treated as a positive result.
- `omraade` (string|null): The area the procedure rows belong to, when one was requested.
- `operation_id` (string): Revly operation ID for this read, recorded in the access log.
- `oppdrag_id` (string|null): Engagement ID, as text.
- `per_omraade`: Exact roll-up per audit area over every procedure, never cut.
- `planlagte_handlinger`: Proposed procedures in the requested area waiting for the auditor, at most 30.
- `revly_url` (string|null): Link to the engagement in Revly.
- `sources`: Sources that contributed to the result.
- `status` (string): available for a visible engagement.
- `truncated` (boolean|null): True when the procedure rows or proposals were cut at their bound. The roll-up is never cut.

### `hent_funn` (~329 tokens)

Hent granskningsfunn fra Revly

Henter granskningsfunn på én eksplisitt oppdrags-ID: kode, tittel, beløp, merking, status, gjeldende vurdering, spor og kildens etikett med revly_url. Dette er ikke feilinformasjonspostene i funn_rad og ikke antallene i activity.funn på hent_oppdrag_tilstand, som er feilinformasjon. Et innebygd agentverktøy med samme navn leser et annet register. Lang beskrivelse er utelatt. Fortrolige funn er med og merket fortrolig. «Mangler kilde» betyr at kilden mangler, aldri at funnet er i orden. Filteret vurdering lik ikke_vurdert tar også med funn uten vurderingsrad. Høyst 80 funn og 20 kilder per funn.

Input parameters:

- `endret_siden` (string): Bare funn endret, eller vurdert, etter dette tidspunktet.
- `mangler_kilde` (boolean): true: bare funn uten kilde. false: bare funn med minst én kilde.
- `merking` (string): Merking av kilden til funnet.
- `oppdrag_id` (string, required): Eksplisitt oppdrags-ID fra Revly. Oppslag uten ID er ikke tillatt.
- `spor_id` (string): Bare funn i dette sporet.
- `vurdering` (string): Gjeldende vurdering. ikke_vurdert tar også med funn uten vurderingsrad.

Output parameters:

- `evidence`
- `funn`: Granskningsfunn, at most 80.
- `funn_antall` (number|null): Matching findings. Zero is an empty register, not an unavailable one.
- `inneholder_fortrolig` (boolean|null): True when any matching finding is marked confidential, including rows past the cap.
- `missing_sources`: Sources with no record. Missing data stays visible and is never treated as a positive result.
- `operation_id` (string): Revly operation ID for this read, recorded in the access log.
- `oppdrag_id` (string|null): Engagement ID, as text.
- `revly_url` (string|null): Link to the granskningsfunn page.
- `sources`: Sources that contributed to the result.
- `status` (string): Result status. not_found_or_unavailable means the engagement is not visible to this connection and the call is an error.
- `truncated` (boolean|null): True when findings or their sources were cut.

### `hent_funnvurderinger` (~186 tokens)

Hent vurderinger av granskningsfunn

Henter vurderingsloggen for granskningsfunn på én eksplisitt oppdrags-ID: funnkode, status, kommentar, tidspunkt, navn og rolle. E-post, personnummer og fødselsdato er ikke med. siden gir bare vurderinger etter tidsstempelet, eldste først. Er truncated true, kall igjen med siden satt til siste opprettet_at. Dette setter ingen vurdering og endrer ikke funnstatus. Høyst 80 rader.

Input parameters:

- `oppdrag_id` (string, required): Eksplisitt oppdrags-ID fra Revly. Oppslag uten ID er ikke tillatt.
- `siden` (string): Eksklusivt tidspunkt. Rader på nøyaktig dette tidspunktet gjentas ikke.
- `status` (string): Bare vurderinger med denne statusen, for eksempel trenger_mer.

Output parameters:

- `evidence`
- `missing_sources`: Sources with no record. Missing data stays visible and is never treated as a positive result.
- `operation_id` (string): Revly operation ID for this read, recorded in the access log.
- `oppdrag_id` (string|null): Engagement ID, as text.
- `revly_url` (string|null): Link to the granskningsfunn page.
- `siden` (string|null): Exclusive timestamp the caller sent. Rows at that exact time are not repeated.
- `sources`: Sources that contributed to the result.
- `status` (string): Result status. not_found_or_unavailable means the engagement is not visible to this connection and the call is an error.
- `truncated` (boolean|null): True when more assessments exist. Call again with siden set to the last opprettet_at.
- `vurdering_antall` (number|null): Matching assessments. Zero means none recorded after the filter.
- `vurderinger`: Assessments after siden, oldest first, at most 80.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/no-revly-revly/revly#diagnostics

## Score history

- 2026-11-05: 75
- 2026-11-04: 75
- 2026-11-03: 74
- 2026-11-02: 74

## Common questions

### What is the Revly MCP server?

Revly is an MCP server listed in the public MCP registry as no.revly/revly. Revly kobler assistenter til revisjonsarbeid med firmastyrt tilgang og personlig samtykke. This page covers its hosted endpoint (https://revly.no/mcp).

### Is the Revly MCP server safe to use?

Revly scores 75 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Revly MCP server expose?

Revly exposes 12 tools: revly_health, revly_kontekst, finn_oppdrag, hent_oppdrag_tilstand, hent_vesentlighet, and 7 more. Their descriptions and schemas cost roughly 1,823 tokens of context every time the server is loaded.

### Does the Revly MCP server require authentication?

No. We connected to Revly without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Revly MCP server still maintained?

Revly is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://revly.no/mcp
- Website: https://revly.no/developers
- Changelog RSS feed: https://verifymcp.io/servers/no-revly-revly/revly.xml
- Changelog JSON feed: https://verifymcp.io/servers/no-revly-revly/revly.json
- HTML version of this page: https://verifymcp.io/servers/no-revly-revly/revly
