Stringer Grounded Synthesizer について
Stringer Grounded Synthesizer は、検証済みの公開情報から抜粋引用と出典を返すリサーチサービスのリファレンス実装です。根拠付きの要約が必要な用途向けで、検証条件を満たせない場合は回答を拒否します。
主な機能
- 01出典付きの抜粋引用
- 02簡易・詳細の合成モード
- 03複数ソースによる検証
- 04根拠が不足する場合の拒否
- 05差し替え可能なリサーチプロバイダー
活用シーン
- 01出典付きのテーマ別ブリーフ作成
- 02複数ソースを使った詳細な合成
- 03ローカルで根拠検証と拒否動作をテスト
MCP 対応
Streamable HTTP 経由で `synthesize_intelligence` ツールを公開します。MCP クライアントはホステッドサービスに根拠付きの合成を依頼できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://synthesis.getstringer.app/mcpclaude mcp add --transport http app-getstringer-synthesizer https://synthesis.getstringer.app/mcp{"mcpServers":{"app-getstringer-synthesizer":{"type":"http","url":"https://synthesis.getstringer.app/mcp"}}}Cursor で開く{"servers":{"app-getstringer-synthesizer":{"type":"http","url":"https://synthesis.getstringer.app/mcp"}}}VS Code で開く{"mcpServers":{"app-getstringer-synthesizer":{"type":"http","url":"https://synthesis.getstringer.app/mcp"}}}{"mcpServers":{"app-getstringer-synthesizer":{"serverUrl":"https://synthesis.getstringer.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
1| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| depth | enum | いいえ | 調査の深さ:'brief'($0.10、2 件以上のソース)または 'deep'($0.25、3 件以上のソース)。デフォルトは 'brief' です。brief | deep |
| topic | string | はい | 統合するトピック、エンティティ、または調査クエリ。 |
| source_urls | array | いいえ | 呼び出し元が指定する公開ソース URL。Brief では検証済みの異なる URL が 2 件以上、deep では 3 件以上必要です。 |
| domains_filter | array | いいえ | 検索結果を絞り込むための任意のドメインリスト。 |
詳細
Grounded Synthesizer(リファレンス実装)
これは、検証済みの公開ソースから引用と出典を返し、根拠を確認できないトピックを拒否するリサーチサービス、Stringer Grounded Synthesizer の実行可能なリファレンス実装です。ホスト型サービス synthesis.getstringer.app の呼び出し元から観測可能なインターフェースを再現し、呼び出し元に見えるものを隠していません。
境界のルールは、Worker のヘッダーに記載されているとおりです。認証されていない呼び出し元が外部から観測できる動作は、ここに含まれます。ベアラートークンで保護された管理者向け統計ルート、Durable Object のファネルカウンター、呼び出し元のハッシュ化、プロバイダーのコスト料金表は対象外です。
リファレンス実装の実行環境
Node.js 20 以降。Worker は依存関係がなく、API キーも外部状態も不要で実行できます。デフォルトのリサーチプロバイダーがフィクスチャベースのスタブだからです。これが重要な点です。誰でもリポジトリをクローンし、有料キーを一切用意せずに、根拠の確認と拒否の流れを最初から最後まで確認できます。
git clone <this repository>
cd synthesizer-public
node --test test_discovery.mjs test_worker.mjs
Worker としてローカルで実行するには、Wrangler 4(npx wrangler dev)を使用します。シークレットの設定は不要です。無料枠はリファレンス実装ではプロセス内に保持され、そのことは wrangler.toml に記載されています。
ホスト型エンドポイント(このドキュメントの対象サービス)
- MCP:
https://synthesis.getstringer.app/mcp - MCP ツール:
synthesize_intelligence - REST:
POST https://synthesis.getstringer.app/v1/synthesize - REST エイリアス:
POST https://synthesis.getstringer.app/v1/execute - ディスカバリー:
/.well-known/mcp.json、/server.json、/llms.txt、/llms-full.txt、/robots.txt、/sitemap.xml
最初の3回の呼び出しは、登録もクレームヘッダーも不要で、合計で無料です。無料枠はリセットされません。その後は、簡易合成が0.10米ドル、詳細合成が0.25米ドルで、どちらも Base 上の x402 v2 USDC(eip155:8453)で支払います。無料枠を使い切った後の未払いの呼び出しは、受け付け可能な支払い要件を PAYMENT-REQUIRED に、プラン価格を X-402-Price-USD に含めて、HTTP 402 を返します。
根拠確認の契約
- 簡易合成には、検証済みの異なるソースが少なくとも2つ必要です。
- 詳細合成には、検証済みの異なるソースが少なくとも3つ必要です。
- すべての主張は、ソース URL と文字オフセットを含む抜粋引用です。
GROUNDED:引用の検証に合格しました。REFUSED_UNVERIFIED_CLAIMS:必要な数の検証済みソースがないか、引用の逐語検証に失敗しました。SOURCE_EXTRACTION_FAILED:指定されたソースを取得または抽出できませんでした。
拒否は、この製品の主張そのものです。テストハーネスは、各ケースを成功にする前に、根拠ありのケースと拒否のケースを失敗状態で確認します。そのため、失敗したことがないテストによって、どちらかの経路が合格することはありません。
スタブを実際のプロバイダーに差し替える
リサーチプロバイダーは、差し替え可能な接続点です。synthesizeGroundedReport は provider 引数を受け取り、フェッチハンドラーは env.researchProvider を読み取ります。デフォルトは createFixtureProvider() で、固定された3つのソース文書を検索し、ネットワーク呼び出しは行いません。
実際のプロバイダーは、同じ2つのメソッドを実装します。
{
async search(query, numResults, domainsFilter) {
// Return [{ url, title }] from your search backend.
},
async extract(url) {
// Return { ok: true, document: { url, title, markdown, via } } on success, or
// { ok: false, source_url: url, stage, reason } on failure.
},
}
たとえば Exa の検索キーと Firecrawl のスクレイピングキーを Worker シークレットとして保管し、Worker 環境でエクスポートすれば、プロバイダーを接続できます。このリファレンス実装ではプロバイダーの単価をハードコードせず、ホスト型サービスの利益率に関する内部情報も明かしません。読み手が変更する必要があるのは、この接続点だけです。
REST
curl -i https://synthesis.getstringer.app/v1/synthesize \
-H 'Content-Type: application/json' \
--data '{"topic":"Base network USDC settlement","depth":"brief"}'
無料のレスポンスには X-Stringer-Access-Tier: free と X-Stringer-Free-Remaining が含まれます。4回目の呼び出しは HTTP 402 を返します。全体の流れについては、openapi.json と RECIPES.md を参照してください。
MCP
https://synthesis.getstringer.app/mcp の Streamable HTTP を使用します。クライアントは Accept に application/json と text/event-stream の両方を指定する必要があります。サーバーは synthesize_intelligence の initialize、ping、tools/list、tools/call を実装しています。
テスト
node --test test_discovery.mjs test_worker.mjs
python3 -m py_compile client_sdk.py
ライセンス
MIT。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。