CiteWire について
CiteWireは、ニュースプラットフォーム運営者、研究者、エージェント開発者向けの、ニュース・研究メタデータを扱う読み取り専用MCPサーバーです。互換プラットフォームの読み取りAPIを接続し、選択した公開ソースのアダプターを有効化できます。記事本文は保存せず、出典情報を維持します。
主な機能
- 01ニュースプラットフォームの読み取りAPIを接続
- 02ニュース・研究メタデータを検索
- 03設定したプロバイダーアダプターを有効化
- 04stdioとステートレスHTTPに対応
- 05出典情報とリンクを保持
活用シーン
- 01エージェントにニュース検索を提供
- 02論文・学術作品・DOIメタデータを検索
- 03ニュース・研究検索サービスをセルフホスト
MCP 対応
CiteWireはニュースプラットフォームや公開プロバイダーの読み取り専用ツールをMCPに公開します。利用可能なツールは設定で決まり、MCPクライアントはstdioまたはステートレスHTTPで接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
CiteWire
ニュースやリサーチの発見を支える、出典表示を重視した MCP インフラストラクチャです。
CiteWire は、エージェントがニュースやリサーチのメタデータに構造化された読み取り専用アクセスを行えるようにし、元のパブリッシャーへのクレジットとトラフィックを維持します。互換性のあるニュースプラットフォームを型付き MCP ツールとして公開したり、任意の公開プロバイダー API にクエリしたり、1 つのサーバーでその両方を行ったりできます。
Community エディションは単体でも役立ちます。MCP コア、stdio および HTTP トランスポート、汎用プラットフォームアダプター、このリポジトリ内のすべてのプロバイダーアダプターが MIT ライセンスで含まれています。商用製品の方向性は機能追加型で、マネージド運用、パーソナライズ、ワークフロー、コラボレーション、履歴の保持、サポートに重点を置いています。製品プランをご覧ください。
CiteWire の用途
- ニュースプラットフォームの運営者は、互換性のある読み取り API を通じて
news.list、news.get、news.topics、news.aboutを公開できます。 - 研究者やエージェントの開発者は、クエリしたい公開ニュースおよびリサーチプロバイダーのみを有効にできます。
- セルフホストするユーザーは、同じサーバーを stdio、ステートレス HTTP、または Node のサーバーレス関数内で実行できます。
- プロバイダーへのコントリビューターは、ランタイム依存関係を追加せずに、目的を絞ったアダプターを追加できます。
CiteWire は、全文取り込みサービス、クローラー、パブリッシャー、編集システム、権利処理サービスではありません。記事本文を保存したり再公開したりすることはありません。プロバイダーに接続できることは、用途に応じてプロバイダーの最新の規約を確認する必要性に代わるものではありません。
クイックスタート
要件:Node.js 18 以降。Community は ESM 専用の Node パッケージであり、CommonJS のエントリーポイントは提供していません。
プロバイダーを 1 つ有効にした citewire.config.json を作成します。
{
"providers": {
"openalex": { "enabled": true }
}
}
stdio でサーバーを実行します。
npx -y citewire --config citewire.config.json
stdio はデフォルトのトランスポートです。MCP クライアントが citewire をローカルプロセスとして起動する場合、通常はこちらを選びます。
MCP クライアントの設定
クライアントは常にプロジェクトディレクトリから起動するとは限らないため、絶対パスの設定を使用します。
{
"mcpServers": {
"citewire": {
"command": "npx",
"args": [
"-y",
"citewire",
"--config",
"/absolute/path/to/citewire.config.json"
]
}
}
}
HTTP トランスポート
ステートレス HTTP トランスポートをポート 8722 で実行します。
npx -y citewire --config citewire.config.json --http 8722
ローカルエンドポイントは POST / で JSON-RPC を受け付けます。セッションやイベントストリームは提供しません。
2 つの利用方法
1. 互換性のあるニュースプラットフォームをラップする
表示名、サイト URL、読み取り API のベース URL を指定して、プラットフォームを定義します。
{
"platform": {
"name": "Example Industry News",
"siteUrl": "https://news.example",
"apiBase": "https://news.example/api/v1/news"
}
}
この設定により、4 つのツールが公開されます。
| ツール | 用途 |
|---|---|
news.list | 新しい順に項目を一覧表示します。トピック、業界、テキスト、期間、ページネーションによる絞り込みを任意で指定できます。 |
news.get | スラッグで項目を 1 件取得します。プラットフォームから返される出典表示と関連報道が含まれます。 |
news.topics | プラットフォームで有効なトピックの分類体系を取得します。 |
news.about | プラットフォームの静的な情報と出典表示ポリシーを取得します。 |
必要な HTTP インターフェイスについては、プラットフォーム読み取り API の仕様に記載されています。
2. 公開プロバイダーツールを有効にする
プロバイダーアダプターは Community に含まれていますが、デフォルトでは無効になっています。プロバイダーが有効になるのは、設定エントリーで enabled が true に設定されている場合のみです。
{
"providers": {
"gdelt-doc": { "enabled": true },
"arxiv": { "enabled": true },
"crossref": {
"enabled": true,
"mailto": "[email protected]"
}
}
}
Crossref では、丁寧なリクエストを受け付けるプールでリクエストの実行者を特定できるよう、デプロイ担当者自身の連絡先メールアドレスが必要です。citewire は、このアドレスをリクエストの mailto パラメーターと User-Agent で Crossref にのみ送信します。例のアドレスをそのまま使わないでください。
現在のアダプターは次のとおりです。
| プロバイダー | ツール | 対象 |
|---|---|---|
| GDELT DOC 2.0 | gdelt.search | 世界各地のニュース記事メタデータ |
| GDELT Context 2.0 | gdelt.context | 用語の前後にあるスニペット単位のコンテキスト |
| arXiv | arxiv.search | プレプリントのメタデータ |
| OpenAlex | openalex.search | 学術論文、著者、掲載誌 |
| Crossref | crossref.search | DOI 登録メタデータ |
| Semantic Scholar | semanticscholar.search | 論文および著者グラフのメタデータ |
| Europe PMC | europepmc.search | 生命科学分野の文献メタデータ |
| dblp | dblp.search | コンピューターサイエンス分野の書誌レコード |
| Hacker News | hackernews.top, hackernews.item | 公式 API のストーリーとアイテム |
| DEV | devto.search | 公開済み DEV 記事のメタデータ |
有効にする前に、プロバイダーをお読みください。このドキュメントでは、各アダプターのエンドポイント、ドキュメント、無料アクセスの根拠、および既知の利用上の配慮事項を記録しています。各プロバイダー自身のドキュメントが、引き続き信頼できる情報源です。
設定の動作
platformは省略可能です。providersは省略可能です。- 設定に記載されていないプロバイダーは、無効のままです。
- 空の設定も有効で、ツールは公開されません。
- 無効な設定の場合、エラーでフィールド名を示して起動に失敗します。
- 有効なツールはデプロイの設定によって異なるため、実行中のデプロイで利用できるツールの確定的な一覧は
tools/listです。
デプロイでは、プラットフォームのツールとプロバイダーのツールを組み合わせることができます。
{
"platform": {
"name": "Example Industry News",
"siteUrl": "https://news.example",
"apiBase": "https://news.example/api/v1/news"
},
"providers": {
"openalex": { "enabled": true }
}
}
オプションの Community ポリシー基盤
CiteWire では、ソースポリシー、権利評価、およびシャドー包含スコアリングのために、ローカルの読み取り専用基盤を公開できます。
{
"community": {
"enabled": true,
"classifierMode": "shadow",
"thresholds": {
"adjacent_min": 0.5,
"standard_min": 0.6
}
}
}
同梱されているすべてのソースは、デフォルトで無効になっています。この設定では、ネットワークへの呼び出しは行われず、認証情報も読み込まれず、公開もできません。認証情報を使う権利確認では、不透明なシークレットマネージャー参照をメモリ内で受け付けますが、その参照が返されることはありません。分類器はシャドーモードに固定されており、別途レビュー済みの編集システムと評価コーパスが整備されるまで、常に publishable: false を報告します。
実行時の検証、フェイルクローズポリシー、標準の MCP ツールとリソース、および現在の制限については、ソースレジストリと権利をお読みください。
設計上の境界
- MIT ライセンスで依存関係ゼロ。 このパッケージでは Node の組み込み機能を使用しており、実行時依存関係も開発依存関係もありません。
- Node ESM。 Community は ESM を通じて Node.js 18 以降をサポートします。CommonJS との互換性や CommonJS ビルドは提供しません。
- 読み取り専用。 同梱のツールは、プラットフォームおよびプロバイダーの読み取り用インターフェースに対してクエリを実行します。
- ステートレス。 Community サーバーには、アカウント、セッション、保存済み検索、保持された履歴はありません。
- 出典表示を優先。 結果には、上流のプラットフォームまたはプロバイダーが提供するソースメタデータとリンクが保持されます。
- 設定駆動。 どのツールを含めるかはデプロイ担当者が決定します。何かが自動的に有効になることはありません。
- ストレージを使用しない。 コアはプロバイダーからの応答やソースコンテンツを保持しません。
これらの境界は、プロジェクトガバナンスポリシーによって維持されます。
エコシステムと製品ドキュメント
- 製品プランでは、永続的なCommunityの価値と、商用版で追加される範囲を定義しています。
- 配布には、レジストリとカタログへの登録に必要な正確なチェックリストが記載されています。未実施の申請は
PENDINGと表示されます。 - ガバナンスでは、意思決定、プロバイダーの管理責任、互換性、ライセンスについて説明しています。
- プロバイダーでは、各上流プロバイダーについて説明しています。
- プラットフォーム契約では、互換性のあるニュース読み取りAPIを定義しています。
- コントリビューションでは、セットアップ、テスト、プロバイダーの追加、プルリクエストに関する要件を説明しています。
- リリースでは、パッケージとレジストリのリリース管理について定義しています。
- サポート、セキュリティ、行動規範では、コミュニティの運営窓口を定めています。
プロジェクトの起源
citewireはOpenly Usefulによって構築、保守されています。公開されているプラットフォーム契約は汎用的で、互換性のあるあらゆる読み取りAPIをラップできます。
コントリビューション
テストスイートはnpm testで実行できます。インストール手順は不要です。プロバイダーや公開契約への変更を提案する前に、CONTRIBUTING.mdをご覧ください。
ライセンス
CommunityはMITライセンスです。LICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。