Attesta について
Attesta は、AI エージェント向けにポルトガルの住宅不動産データと検証機能を提供するプラットフォームです。出典情報付きデータ、署名付き JWS の検証、データ取り込みとレコード照合のパイプラインを備え、REST API と MCP エンドポイントを公開します。
主な機能
- 01同梱フィクスチャを含む不動産データ取り込み
- 02不動産レコードの照合と解決
- 03REST と MCP のエンドポイント
- 04JWS 署名の作成と検証
- 05JWKS による公開鍵の提供
- 06LiteLLM 経由のモデル接続(任意)
活用シーン
- 01フィクスチャデータでローカル取り込みを実行
- 02API からポルトガルの住宅不動産データを照会
- 03不動産データの JWS 署名を検証
- 04ラベル付き例でクレームを評価
MCP 対応
`/mcp` の MCP エンドポイントを通じて、不動産データ機能を MCP クライアントに提供します。REST API、JWKS、証拠関連のエンドポイントも公開します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://api-production-d9143.up.railway.app/mcpclaude mcp add --transport http doralboim-attesta https://api-production-d9143.up.railway.app/mcp{"mcpServers":{"doralboim-attesta":{"type":"http","url":"https://api-production-d9143.up.railway.app/mcp"}}}Cursor で開く{"servers":{"doralboim-attesta":{"type":"http","url":"https://api-production-d9143.up.railway.app/mcp"}}}VS Code で開く{"mcpServers":{"doralboim-attesta":{"type":"http","url":"https://api-production-d9143.up.railway.app/mcp"}}}{"mcpServers":{"doralboim-attesta":{"serverUrl":"https://api-production-d9143.up.railway.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Attesta
B2A プラットフォーム:AI エージェント向けの、来歴を証明できるポルトガルの住宅物件データと署名付き JWS 検証。
公式ドキュメント: attesta-architecture.md · attesta-agent-prompt.md
クイックスタート
make install
cp .env.example .env
make db-up # Postgres + pgvector
make migrate # apply Alembic migrations
make dev # API at :8000
| エンドポイント | URL |
|---|---|
| ヘルスチェック | /healthz |
| REST API | /docs |
| MCP | /mcp |
| JWKS | /.well-known/jwks.json |
| エージェントの検出 | /llms.txt |
パイプライン(ローカル)
make ingest # attesta-ingest --fixture (bundled JSON corpus)
make resolve # attesta-resolve
make test
取り込み
デフォルト: tests/fixtures/ に同梱されているフィクスチャを使用します。外部スクレイパーの認証情報は不要です。
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
ライブポータルのコレクターは app/ingestion/base.py(BaseCollector)を実装します。Apify を利用する Idealista/Imovirtual コレクターはオプションのプラグインとして提供されます。パイプラインをリファクタリングするのではなく、サブクラス化して新しいソースを追加してください。docs/decisions/008-fixture-first-ingestion.md を参照してください。
本番コーパスを拡充するには、コレクターの戦略(Apify アクターの構築、直接 HTTP、ライセンス済みフィード、CSV インポート)を選び、環境変数を設定し、Railway で取り込みワーカーをスケジュールしてください。
CI
GitHub Actions では、SQLite と Postgres を使用して ruff、mypy(参考情報)、pytest を実行します。
決定事項
アーキテクチャ決定記録:docs/decisions/
Cursor ルール:.cursor/rules/
マイルストーンの状況
- M0 — スケルトン、CI、docker-compose、alembic の骨組み
- M1 — スキーマ、取り込みワーカー、フィクスチャ、PII テスト
- M2 — 解決マッチャー、読み取り API
- M3 — MCP ツール、計測のチョークポイント、ガードレール
- M4 — 検証パイプライン、JWS/JWKS、エビデンス API、評価ハーネス(62 件のクレーム)、アテステーション仕様
- M5 — Railway の 3 サービス構成、デモおよび検証スクリプト、OpenAPI エクスポート
検証
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(オプション、LiteLLM 経由でプロバイダーに依存しない構成)
LLM_ENABLED=true を設定し、.env でモデルとプロンプトファイルのパスを設定してください(.env.example を参照)。
LiteLLM を使用します。LLM_PARSE_MODEL/LLM_ADJUDICATE_MODEL には、サポートされている任意のプロバイダー(anthropic/、openai/、gemini/、azure/、groq/ など)を指定できます。
プロバイダーの API キーには LiteLLM の環境変数規約に従います。選択したプロバイダーのキーのみ設定してください。
例と費用の見積もりについては、distribution/llm-providers.md を参照してください。
アテステーション仕様:public/attestation-spec.md
マーケットデータ契約(統計/比較物件のエンベロープ):public/market-data-contract.md
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。