veris について
verisは、出典を検証できるWeb調査とSEC EDGARデータを必要とするエージェント向けのMCPサーバーです。コンテンツの読み取りに出典メタデータ、変更追跡、ライセンスに基づくアクセス制御を加えます。
主な機能
- 01出典メタデータ付きのWeb検索とページ読み取り
- 02出典ごとの引用を含む調査
- 03SEC提出書類と財務データの検索・読み取り
- 04URLや提出書類の変更監視
- 05読み取りとポリシー判断をハッシュチェーン台帳に記録
- 06robots.txtとRSLライセンスの確認
活用シーン
- 01追跡可能な出典を用いたWeb調査
- 02企業提出書類とSEC財務データの取得
- 03Webページや提出書類の変更監視
- 04アクセス判断と帰属記録の確認
MCP 対応
verisはMCPクライアントに、Web検索、読み取り、調査、SEC EDGAR、監視、台帳のツールを提供します。stdio接続のほか、Streamable HTTPのリモートサーバーとしても実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y veris-mcpBRAVE_API_KEYシークレットOptional Brave Search API key; falls back to keyless DuckDuckGo if unset.SEC_USER_AGENTSEC fair-access User-Agent ('Name email@domain') for EDGAR; a default ships.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
8掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| n | integer | いいえ | 結果の最大数(デフォルトは 5) |
| query | string | はい | 検索クエリ |
詳細
veris
AI エージェントのための来歴優先のウェブアクセス。 クリーンなコンテンツと検証可能なソースメタデータを、1 回の呼び出しで提供します。
現在、ウェブを読む AI エージェントが得られるのは、テキストの壁です。ページの公開時期、前回からコンテンツが変更されたかどうか、執筆者、正規のソース、ライセンス条項はわかりません。veris は、読み取るたびにこれらすべてを付与します。
web_read("https://example.com/article")
→ clean markdown
+ { publishedAt, modifiedAt, author, canonicalUrl, contentHash, license, fetchedAt }
このメタデータは、あれば便利というものではありません。鮮度、変更検出、引用、そして将来的にはコンテンツを書いた人への対価の支払いなど、AI とウェブの経済圏に必要な基盤です。
これが必要な理由
ウェブは、帰属表示も支払いもないまま AI にスクレイピングされています。パブリッシャーはボットをブロックし、コンテンツをロックすることで対応しています。AI の品質は低下し、パブリッシャーは損失を被ります。この問題を解決するには、エージェントとパブリッシャーの間に、きれいに読み取り、来歴を追跡し、(将来的には)支払いを精算するレイヤーが必要です。
veris はそのレイヤーのエージェント側です。ウェブを責任を持って利用するために、すべてのエージェントがインポートする SDK です。「AI ウェブ向けの Plaid」と考えてください。パブリッシャーを所有するのではなく、開発者が真っ先に選ぶインテグレーションを所有するのです。
ロードマップ(1 つのコードベース、3 つの段階)
| 段階 | 内容 | 状況 |
|---|---|---|
| 1. クリーン化+来歴 | 検証可能なソースメタデータ付きの検索/読み取り/調査 | ✅ |
| 2. 金融分野 | 権威ある公式の来歴情報を備えた SEC EDGAR の提出書類 | ✅ |
| 3. 精算 | ライセンスを考慮したアクセス+帰属表示台帳+支払いインテント | ✅ v0.3.0(支払い機能はスタブで、実際のお金は動きません) |
| 3b. ライブ決済 | プロバイダー(RSL ライセンスサーバー/x402/Stripe)を settlement.ts に接続 | 🔜 |
ステージ 3:v0.3.0 の動作
コンテンツの読み取りはすべて、最初にポリシーゲートを通過します。対象は web_read、web_research、finance_filing_read、URL の監視です(watch_manage は読み取りが許可されない可能性のある URL の追加を拒否し、watch_check はその URL を withheld と報告して、以前のベースラインを維持します)。veris-mcp digest での提出書類の読み取りも対象です。EDGAR のインデックス検索には SEC JSON API を使用し、ページの読み取りは行いません。
- robots.txt。 RFC 9309 に従って、オリジンごとに取得し、
VerisBotトークン(該当しない場合は*)に一致するルールを適用します。一致するルールのうち最長のものを優先し、*と$のワイルドカードをサポートします。ファイルがない場合は許可し、5xx の場合は拒否します。アクセスが拒否された URL には、該当するルール(例:Disallow: /cgi-bin)をそのまま含むstatus: "blocked"を返し、ページへのリクエストは行いません。 - RSL ライセンス。 robots.txt の
License:行、<link rel="license" type="application/rsl+xml">、またはインラインの<script type="application/rsl+xml">から検出します。ゲートは、対象 URL を含む<content>スコープと、ai-inputの使用を許可するライセンスを選択します。 - 価格。 ライセンスで料金が発生する場合(
purchase、subscription、crawl、use)、コンテンツの代わりに、利用条件、価格、RSL ドキュメントの URL を含むstatus: "payment_required"をツールが返します。ライセンスが robots.txt で宣言されている場合、ページはまったく取得されません。priceHintに値が入るのは、宣言された<amount>がある場合のみで、その値はそのままコピーされます。有料ライセンスに金額の記載がない場合、price: nullを報告します。veris が金額を推定することはありません。 - 台帳。 読み取り、ブロック、支払い要件はすべて、URL、コンテンツハッシュ、タイムスタンプ、ツール、ライセンスレコード全体とともに
~/.veris/ledger.jsonl(VERIS_LEDGER_FILEで変更可能)に追記されます。エントリはハッシュチェーンでつながれているため、編集や削除を検出できます:veris-mcp ledger --verify。次のコマンドで一覧表示します:veris-mcp ledger [--kind read|blocked|payment_required|payment_intent] [--url U] [--since ISO] [--limit N]。 - 決済スタブ。 有料ライセンスの場合は、
payment_intentエントリ(宣言された価格、利用条件、ライセンスサーバー)も記録します。既定のプロバイダーはnoneです。ステータスはrecordedで、課金は発生せず、コンテンツは非公開のままです。実際のプロバイダーを実装するには、src/settlement.tsのPaymentProvider.authorize()を実装し、setPaymentProvider()で登録します。
各ライセンスフィールドには、その情報源(robotsUrl と robotsRule、rslUrl、price.source)が記載されているため、どの判定も再取得して検証できます。ツールの入力スキーマは v0.2 から変更されていません。
ツール
Web
| ツール | 内容 |
|---|---|
web_search(query, n?) | ランク付けされた結果を構造化 JSON で返します。Brave(キーあり)またはキー不要の DuckDuckGo を使用します。 |
web_read(url, fresh?) | URL → クリーンな Markdown +出典情報ブロック。キャッシュは 24 時間です。 |
web_research(query, n?) | 検索+上位 N 件を読み込み、ソースごとの引用付きでまとめます。 |
金融 — SEC EDGAR(無料、公式、API キー不要)
| ツール | 内容 |
|---|---|
finance_filings(query, formType?, limit?) | ティッカー/名称/CIK → 最近の SEC 提出書類:様式、公式の提出日と報告日、アクセッション番号、文書への直接 URL。 |
finance_filing_read(url or query, formType?) | URL で提出書類を読むか、企業に一致する最新の様式を自動で読み込みます。クリーンなテキスト+出典情報。 |
finance_financials(query) | SEC XBRL から売上高、純利益、総資産、現金、希薄化後 EPS を取得します。各数値には、その出典となった正確な提出書類が記載されます。 |
まず EDGAR を使う理由は? 提出書類には SEC から直接取得した信頼できる日付と識別子が記載されています。出典情報は推測ではなく、公式なものです。無料で、構造化されており、認証も不要です。1 回の呼び出しで、検証可能な出典付きの最新 10-K をエージェントが取得できます。
finance_filing_read({ query: "NVDA", formType: "10-K" }) → NVIDIA CORP — 10-K (filed 2026-02-25) clean text + { source, filed date, contentHash, wordCount }
監視 — 変更検出とアラート
| ツール | 内容 |
|---|---|
watch_manage(action, target?, formType?) | 監視対象の追加/削除/一覧表示:企業の SEC 提出書類(ティッカー+任意の様式(8-K など))または任意の URL(コンテンツハッシュによる監視)。 |
watch_check() | すべての監視対象を確認し、新しいもの(新規提出書類/変更されたページ)のみを返して、基準値を更新します。スケジュール実行すると、アラートフィードになります。 |
提出書類の監視対象は、既定では重要な様式のみです。8-K、10-K、10-Q、20-F、SC 13D/G、
合併に関する委任状説明書、募集、提出遅延通知が対象です。定例の Form 4/13F-HR の通知は抑制されます。
誰も読まないアラートフィードは、ない方がましだからです。すべてを表示するには formType: "ALL" を、
特定の様式だけを監視するにはその様式を指定してください。
メールによるアラート(veris-mcp digest)
watch_check は MCP クライアントに JSON を返します。digest は同じデータを、人が実際に読めるメールに変換します。すべての監視対象を確認し、新しい重要な提出書類を読み込み、変更内容を要約して配信します。
veris-mcp digest --dry-run # print the digest, send nothing
veris-mcp digest # check, summarize, email
veris-mcp digest --to [email protected] # override recipients
veris-mcp mailtest # verify SMTP without sending
すべての要約には提出書類からの逐語引用が含まれ、送信前に各引用をソーステキストと照合します。一致する引用が見つからない場合は、事実として提示するのではなく、メール内にその旨が示されます。文字数の上限を超える提出書類には、一部のみ読み込んだことが記され、黙って切り詰められることはありません。
| 環境変数 | 内容 |
|---|---|
ANTHROPIC_API_KEY | 提出書類の要約を有効にします。設定しなくても、ダイジェストは提出書類の通知をそのまま送信します。 |
VERIS_SUMMARY_MODEL | 要約に使用するモデル(既定値は claude-opus-5)。 |
VERIS_SUMMARY_CHAR_BUDGET | 要約する提出書類テキストの文字数(既定値は 250,000)。 |
VERIS_SMTP_URL | 例:smtps://user:[email protected]:465 |
VERIS_MAIL_FROM | 例:"Veris Alerts <alerts@yourdomain>" |
VERIS_MAIL_TO | 既定の宛先をカンマ区切りで指定します。 |
ライブのアラートフィードとしてスケジュール実行します。
*/15 * * * * ANTHROPIC_API_KEY=... VERIS_SMTP_URL=... veris-mcp digest
インストール
npx -y veris-mcp # zero-install, always latest
または、ソースからインストールします。
git clone https://github.com/jakeyoung1/veris && cd veris
npm install && npm run build
任意の環境変数:
export BRAVE_API_KEY=your_key # better search; https://search.brave.com/app/keys
export SEC_USER_AGENT="Your Name [email protected]" # SEC fair-access policy (recommended)
Brave キーがない場合、検索は自動的にキー不要の DuckDuckGo にフォールバックします。SEC では Name email@domain 形式の User-Agent が必要です。veris には既定値が設定されていますが、ご自身の連絡先を設定してください。
Claude Code での使用
MCP 設定(.mcp.json)に追加します。
{
"mcpServers": {
"veris": {
"command": "npx",
"args": ["-y", "veris-mcp"],
"env": { "BRAVE_API_KEY": "optional", "SEC_USER_AGENT": "Your Name [email protected]" }
}
}
}
Claude Code を再起動してから、何かを web_research するよう依頼してください。
リモートサーバー(HTTP)
veris をリモート MCP サーバー(Streamable HTTP)として実行し、URL で任意の MCP クライアントから接続します。
npx -y veris-mcp http # http://127.0.0.1:8787/mcp
VERIS_HTTP_HOST=0.0.0.0 npx -y veris-mcp http # expose it (put TLS in front)
| 環境変数 | 説明 |
|---|---|
VERIS_PORT / PORT | ポート(デフォルトは 8787) |
VERIS_HTTP_HOST | バインドするホスト(デフォルトは 127.0.0.1) |
VERIS_API_KEYS | カンマ区切りのキーです。設定すると、/mcp で Authorization: Bearer <key>(または x-api-key)が必要になります。未設定の場合は認証なしです。 |
VERIS_RATE_LIMIT | IP ごとの 1 分あたりのリクエスト数(デフォルトは 60) |
セルフホストは永久に無料です。VERIS_API_KEYS は、ホストされたインスタンスで使用量を計測できるようにするためのものです。
Docker
docker build -t veris .
docker run -p 8787:8787 veris
Fly.io/Render/Railway など、Dockerfile を実行できる環境であれば、そのまま動作します。
設計上の注意点
- 生の HTML から取得する出典情報。 ページを自分たちで取得し、Readability が情報を削除する前に、
<meta>、JSON-LD、Open Graph から日付、著者、正規 URL を抽出します。 - コンテンツハッシュ。 抽出したテキストの sha256 です。ページの変更を検出し、エージェント間の重複を排除できます(共有ウェブインデックスの基盤です)。
- プロバイダーインターフェイス。 ツールのコードに触れずに検索バックエンドを切り替えられます。
- キャッシュと台帳。
cache.tsでは、キー付きの読み取りキャッシュと、追記専用でハッシュチェーン化された帰属情報の台帳を並行して管理します。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。