# 304NotModified

> Sourced answers on FR/EU rules + French company search (SIREN, NAF) for agents, quoted and budgeted

- name: com.304notfound/304notmodified
- version: 0.4.0
- connection class: R0 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 73/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.304notfound%2F304notmodified
- tools: https://api.protogrid.dev/v1/servers/com.304notfound%2F304notmodified/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "304notmodified": {
      "type": "http",
      "url": "https://304notfound.com/mcp",
      "headers": {
        "X-API-Key": "${X_API_KEY}"
      }
    }
  }
}
```

Placeholders to fill: `${X_API_KEY}`.

## Trust

- hygiene: 80
- liveness: 99
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-99% +updated-19d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 73/100 (needs work)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 8 of 8 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: feedback (destructiveHint, openWorldHint); comment (destructiveHint, openWorldHint); calculate (destructiveHint, openWorldHint); …
- pass `tools.token_cost`: about 1,484 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 7 tool changes in 30 days
- fail `stability.rug_pull`: 1 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 8, about 1,484 tokens to load them all
- tool set hash: c5c2c7595ef8ee6adb73d46d7c0ff5f8
- tools last changed: 2026-10-10T12:28:39.358Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.304notfound/304notmodified.svg)](https://protogrid.dev/servers/com.304notfound/304notmodified)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-10 `get_run` added
  - Suit une commande asynchrone passée avec run_service (ex. un site web réalisé par AUTARK). run_id : celui renvoyé par run_service. status : queued (en file), claimed ou running (en cours, avec progress et step), delivered (livrée : result et files, avec le contenu en base64 et son sha256), failed ou expired (non facturée). Seule la clé qui a passé la commande peut la suivre. Interrogez-le de temps en temps : la réalisation prend plusieurs heures.
- 2026-10-10 `run_service` changed (description)
  - before: Exécute un service et renvoie un résultat structuré avec ses sources, ses limites et ce qui manque. max_price_eur : budget maximal (au-delà, rien n'est exécuté). quote_id : devis à utiliser. request_key : identifiant de votre demande, à réutiliser en cas de relance (même résultat, pas de double facturation). Facturé seulement si status=completed.
  - after: Exécute un service et renvoie un résultat structuré avec ses sources, ses limites et ce qui manque. max_price_eur : budget maximal (au-delà, rien n'est exécuté). quote_id : devis à utiliser. request_key : identifiant de votre demande, à réutiliser en cas de relance (même résultat, pas de double facturation). Service sync : résultat immédiat, facturé seulement si status=completed. Service async (création de contenu par AUTARK) : réponse immédiate status=queued avec un run_id ; suivez-le avec get_run. Facturé seulement à la livraison (delivered). Clé d'API nécessaire.
- 2026-10-10 `list_services` changed (description) **meaning changed**
  - before: Catalogue des services (au-delà des questions) : pour chacun, son identifiant, sa version, ses paramètres (input_schema), sa sortie (output_schema), son prix, son délai, ses limites, ses erreurs et les étapes disponibles. Lire avant quote_service ou run_service.
  - after: Catalogue des services (au-delà des questions), dont la création de contenu réalisée par AUTARK (ex. autark-static-site : un petit site web statique, mode async, plusieurs heures). Pour chacun : identifiant, version, mode (sync ou async), paramètres (input_schema), sortie (output_schema), prix, délai, limites, erreurs. Lire avant quote_service ou run_service.
- 2026-10-10 `comment` added
  - Message libre pour le propriétaire de 304NotModified, sans clé ni question préalable : ce que vous cherchiez, ce qui vous a manqué, pourquoi vous repartez, ou une suggestion. message : votre texte. looking_for (facultatif) : l'information ou le service cherché. Pas de données personnelles.
- 2026-10-01 `run_service` added
  - Exécute un service et renvoie un résultat structuré avec ses sources, ses limites et ce qui manque. max_price_eur : budget maximal (au-delà, rien n'est exécuté). quote_id : devis à utiliser. request_key : identifiant de votre demande, à réutiliser en cas de relance (même résultat, pas de double facturation). Facturé seulement si status=completed.
- 2026-10-01 `quote_service` added
  - Devis gratuit : prix ferme d'un service pour ces paramètres, valable quelques minutes, utilisable une fois avec run_service (quote_id). service : identifiant (ex. fr-suppliers). params : selon input_schema.
- 2026-10-01 `list_services` added
  - Catalogue des services (au-delà des questions) : pour chacun, son identifiant, sa version, ses paramètres (input_schema), sa sortie (output_schema), son prix, son délai, ses limites, ses erreurs et les étapes disponibles. Lire avant quote_service ou run_service.

Full history: https://api.protogrid.dev/v1/servers/com.304notfound%2F304notmodified/changes

## Remotes

- https://304notfound.com/mcp (streamable-http, auth none, reachable true, uptime30d 0.9868421)

## Packages

_none_

## Tools (8)

- `ask`: Pose une question factuelle et reçoit une réponse vérifiée avec ses sources, sa confiance, sa date d'expiration et un request_id. Domaines facultatifs : actualite, droit, entreprise, facturation, finances, formation, general, impots, logiciel, prix, reglementation, vie_quotidienne. Facultatif : context, la tâche que vous êtes en train de faire (sans données personnelles).
- `calculate`: Calcul déterministe sur VOS bougies (304 ne fournit aucune donnée de marché). calculation : ichimoku-rvol (Ichimoku confirmé par le volume relatif), regime (tendance ADX, volatilité ATR, direction) ou position-size (taille de position pour un risque fixé). params : le corps JSON de POST /v1/calc/<calculation>, par exemple {"candles": [{"time", "open", "high", "low", "close", "volume"}, …]} ; voir /llms.txt. Résultat : méthode publiée, valeurs, horodatage. Ce n'est pas un conseil en investissement.
- `comment`: Message libre pour le propriétaire de 304NotModified, sans clé ni question préalable : ce que vous cherchiez, ce qui vous a manqué, pourquoi vous repartez, ou une suggestion. message : votre texte. looking_for (facultatif) : l'information ou le service cherché. Pas de données personnelles.
- `feedback`: Dit si une réponse obtenue avec « ask » vous a servi. request_id : celui de la réponse. useful : true ou false. issue (facultatif) : wrong (fausse), outdated (périmée), incomplete, bad_source (source insuffisante), off_topic (hors sujet), contradiction (une autre source dit autre chose) ou other. comment (facultatif) : ce qui manquait ou ce qui était faux.
- `get_run`: Suit une commande asynchrone passée avec run_service (ex. un site web réalisé par AUTARK). run_id : celui renvoyé par run_service. status : queued (en file), claimed ou running (en cours, avec progress et step), delivered (livrée : result et files, avec le contenu en base64 et son sha256), failed ou expired (non facturée). Seule la clé qui a passé la commande peut la suivre. Interrogez-le de temps en temps : la réalisation prend plusieurs heures.
- `list_services`: Catalogue des services (au-delà des questions), dont la création de contenu réalisée par AUTARK (ex. autark-static-site : un petit site web statique, mode async, plusieurs heures). Pour chacun : identifiant, version, mode (sync ou async), paramètres (input_schema), sortie (output_schema), prix, délai, limites, erreurs. Lire avant quote_service ou run_service.
- `quote_service`: Devis gratuit : prix ferme d'un service pour ces paramètres, valable quelques minutes, utilisable une fois avec run_service (quote_id). service : identifiant (ex. fr-suppliers). params : selon input_schema.
- `run_service`: Exécute un service et renvoie un résultat structuré avec ses sources, ses limites et ce qui manque. max_price_eur : budget maximal (au-delà, rien n'est exécuté). quote_id : devis à utiliser. request_key : identifiant de votre demande, à réutiliser en cas de relance (même résultat, pas de double facturation). Service sync : résultat immédiat, facturé seulement si status=completed. Service async (création de contenu par AUTARK) : réponse immédiate status=queued avec un run_id ; suivez-le avec get_run. Facturé seulement à la livraison (delivered). Clé d'API nécessaire.
