Attesta

Official registry E-commerce

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

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

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

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  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

Frequently asked questions

What is Attesta?

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

How do I install Attesta?

It runs as a remote server. In Claude Code: claude mcp add --transport http attesta 'https://api-production-d9143.up.railway.app/mcp'. For other clients, paste the JSON configuration from this page into their MCP settings.

Does Attesta need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is Attesta open source?

Its code is public on GitHub, but the repository does not declare a standard license.

Who maintains Attesta?

It is published by doralboim. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.