Attesta

Registre officiel E-commerce

Provenance-grade Portugal residential property data and signed JWS verification for AI agents.

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

Remote (streamable-http)
Claude Code
claude mcp add --transport http attesta 'https://api-production-d9143.up.railway.app/mcp'
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "attesta": {
            "type": "http",
            "url": "https://api-production-d9143.up.railway.app/mcp"
        }
    }
}

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. Attesta
  2. Quick start
  3. Pipeline (local)
  4. Ingestion
  5. CI
  6. Decisions
  7. Milestone status
  8. Verification

Attesta

B2A platform: provenance-grade Portugal residential property data + signed JWS verification for AI agents.

Authoritative docs: attesta-architecture.md · attesta-agent-prompt.md

Quick start

make install
cp .env.example .env
make db-up                 # Postgres + pgvector
make migrate               # apply Alembic migrations
make dev                   # API at :8000
EndpointURL
Health/healthz
REST API/docs
MCP/mcp
JWKS/.well-known/jwks.json
Agent discovery/llms.txt

Pipeline (local)

make ingest    # attesta-ingest --fixture (bundled JSON corpus)
make resolve   # attesta-resolve
make test

Ingestion

Default: bundled fixtures in tests/fixtures/ — no external scraper credentials needed.

make ingest                              # same as attesta-ingest --fixture
attesta-ingest --fixture                 # explicit
attesta-ingest --source idealista_pt     # optional: Apify actor (needs APIFY_* in .env)
attesta-ingest --source imovirtual       # optional: Apify actor

Live portal collectors implement app/ingestion/base.py (BaseCollector). Apify-backed Idealista/Imovirtual collectors ship as optional plugins; add a new source by subclassing, not refactoring the pipeline. See docs/decisions/008-fixture-first-ingestion.md.

To grow production corpus: pick a collector strategy (build Apify actors, direct HTTP, licensed feed, CSV import), wire env, and schedule the ingest worker on Railway.

CI

GitHub Actions runs ruff, mypy (advisory), pytest on SQLite + Postgres.

Decisions

Architecture Decision Records: docs/decisions/
Cursor rules: .cursor/rules/

Milestone status

  • [x] M0 — Skeleton, CI, docker-compose, alembic scaffold
  • [x] M1 — Schema, ingestion worker, fixtures, PII tests
  • [x] M2 — Resolution matcher, read API
  • [x] M3 — MCP tools, metering choke point, guardrails
  • [x] M4 — Verification pipeline, JWS/JWKS, evidence API, eval harness (62 claims), attestation spec
  • [x] M5 — Railway 3-service config, demo + verify scripts, OpenAPI export

Verification

make eval                    # 62 labeled claims, 75% threshold
python scripts/verify_jws.py <jws> --local
python scripts/demo.py       # E2E against local API
make openapi                 # writes public/openapi.json
LLM (optional, provider-agnostic via LiteLLM)

Set LLM_ENABLED=true and configure models + prompt file paths in .env (see .env.example).
Uses LiteLLM — point LLM_PARSE_MODEL / LLM_ADJUDICATE_MODEL at any supported provider (anthropic/, openai/, gemini/, azure/, groq/, etc.).
Provider API keys follow LiteLLM env conventions — set only the key(s) for your chosen provider(s).
See distribution/llm-providers.md for examples and cost estimates.

Attestation spec: public/attestation-spec.md
Market data contract (stats/comps envelopes): public/market-data-contract.md

Questions fréquentes

Qu'est-ce que Attesta ?

Provenance-grade Portugal residential property data and signed JWS verification for AI agents.

Comment installer Attesta ?

Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http attesta 'https://api-production-d9143.up.railway.app/mcp'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour Attesta ?

Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.

Attesta est-il open source ?

Son code est public sur GitHub, mais le dépôt ne déclare pas de licence standard.

Qui maintient Attesta ?

Il est publié par doralboim. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.