Onyx MCP サーバー
Onyx AI ナレッジ ベースとシームレスに統合するモデル コンテキスト プロトコル (MCP) サーバー。
このMCPサーバーは、MCP対応クライアントをOnyxナレッジベースに接続し、ドキュメントから関連するコンテキストを検索・取得できるようにします。MCPクライアントとOnyx API間の橋渡しとなり、強力なセマンティック検索とチャット機能を実現します。
特徴
強化された検索: LLM 関連性フィルタリングを使用した Onyx ドキュメント セット全体のセマンティック検索
コンテキストウィンドウの取得: 一致するチャンクの上下のチャンクを取得して、コンテキストをより良く把握します。
完全な文書の取得: チャンクではなく文書全体を取得するオプション
チャット統合: LLM + RAGとOnyxの強力なチャットAPIを使用して包括的な回答を得る
設定可能なドキュメント セット フィルタリング: 特定のドキュメント セットをターゲットにして、より関連性の高い結果を得ることができます。
Related MCP server: Perplexity AI MCP Server
インストール
Smithery経由でインストール
Smithery経由で Claude Desktop 用の Onyx MCP Server を自動的にインストールするには:
前提条件
Node.js (v16 以上)
APIアクセスを備えたOnyxインスタンス
Onyx APIトークン
設定
リポジトリをクローンします。
git clone https://github.com/lupuletic/onyx-mcp-server.git cd onyx-mcp-server依存関係をインストールします:
npm installサーバーを構築します。
npm run buildOnyx API トークンを設定します。
export ONYX_API_TOKEN="your-api-token-here" export ONYX_API_URL="http://localhost:8080/api" # Adjust as neededサーバーを起動します。
npm start
MCP クライアントの構成
Claudeデスクトップアプリ用
~/Library/Application Support/Claude/claude_desktop_config.jsonに追加します:
VSCode の Claude 向け (Cline)
Cline MCP 設定ファイルに以下を追加します:
その他のMCPクライアント向け
カスタムMCPサーバーを追加する方法については、MCPクライアントのドキュメントを参照してください。以下の情報をご提供いただく必要があります。
サーバーを実行するコマンド(
node)ビルドされたサーバーファイルへのパス (
/path/to/onyx-mcp-server/build/index.js)ONYX_API_TOKENおよびONYX_API_URLの環境変数
利用可能なツール
設定が完了すると、MCP クライアントは次の 2 つの強力なツールにアクセスできるようになります。
1. 検索ツール
search_onyxツールは、強化されたコンテキスト取得により Onyx の検索機能に直接アクセスできるようにします。
パラメータ:
query(必須): 検索するトピックdocumentSets(オプション): 検索対象となるドキュメント セット名のリスト (すべて空の場合)maxResults(オプション): 返される結果の最大数 (デフォルト: 5、最大: 10)chunksAbove(オプション): 一致するチャンクの上に含めるチャンクの数 (デフォルト: 1)chunksBelow(オプション): 一致するチャンクの下に含めるチャンクの数 (デフォルト: 1)retrieveFullDocuments(オプション): チャンクではなく完全なドキュメントを取得するかどうか (デフォルト: false)
2. チャットツール
chat_with_onyxツールは、LLM + RAG を備えた Onyx の強力なチャット API を活用して包括的な回答を提供します。
パラメータ:
query(必須): Onyxに尋ねる質問personaId(オプション): 使用するペルソナのID (デフォルト: 15)documentSets(オプション): 検索対象となるドキュメント セット名のリスト (すべて空の場合)chatSessionId(オプション): 会話を続けるための既存のチャットセッションID
チャットセッション
チャットツールは、複数のインタラクションに渡る会話のコンテキスト維持をサポートしています。最初の呼び出し後、レスポンスのメタデータにchat_session_idが含まれます。このIDを後続の呼び出しに渡すことで、コンテキストを維持できます。
検索とチャットの選択
検索を使用するのは次のような場合です: ドキュメントから特定の対象を絞った情報が必要で、取得するコンテキストの量を正確に制御したい場合。
チャットを使用するのは次のような場合です: 複数のソースからの情報を組み合わせた包括的な回答が必要な場合、または LLM に情報を統合してもらいたい場合。
最良の結果を得るには、両方のツールを組み合わせて使用し、特定の詳細を検索し、包括的な理解のためにチャットします。
ユースケース
ナレッジマネジメント:MCP互換インターフェースを通じて組織のナレッジベースにアクセスします
カスタマーサポート: サポートエージェントが関連情報を素早く見つけられるように支援します
調査: 組織の文書を徹底的に調査します
トレーニング: トレーニング資料とドキュメントへのアクセスを提供する
ポリシーコンプライアンス: チームが最新のポリシーと手順にアクセスできるようにします
発達
開発モードで実行
変更のコミット
このプロジェクトでは、すべてのコミットメッセージにConventional Commits仕様を適用します。これを容易にするために、対話型のコミットツールを提供しています。
このガイドに従って、適切な形式のコミットメッセージを作成してください。また、以下の標準的な形式に従って独自のコミットメッセージを記述することもできます。
type 、feat、fix、docs、style、refactor、perf、test、build、ci、chore、revert のいずれかです。
生産のための構築
テスト
テスト スイートを実行します。
カバレッジ付きのテストを実行します。
リンティング
リンティングの問題を修正:
継続的インテグレーション
このプロジェクトでは、継続的インテグレーションとデプロイメントにGitHub Actionsを使用しています。CIパイプラインは、メインブランチへのプッシュとプルリクエストごとに実行され、以下のチェックを実行します。
リンティング
建物
テスト
コードカバレッジレポート
自動バージョンアップと公開
PRがメインブランチにマージされると、プロジェクトは適切なバージョンアップの種類を自動的に決定し、npmに公開します。システムはPRのタイトルとコミットメッセージの両方を分析して、バージョンアップの種類を決定します。
PR タイトルの検証: すべての PR タイトルはConventional Commits仕様に基づいて検証されます。
PR のタイトルはタイプで始まる必要があります (例:
feat:、fix:、docs:)この検証はPRが作成または更新されたときに自動的に行われます
無効なタイトルのPRは検証チェックに失敗します
コミット メッセージの検証: すべてのコミット メッセージは、従来のコミット形式に対しても検証されます。
コミットメッセージはタイプで始まる必要があります(例:
feat:、fix:、docs:)これはコミット時に実行されるgitフックによって強制されます
無効なメッセージを含むコミットは拒否されます
対話型のコミットメッセージ作成ツールとして
npm run commit使用する
バージョン バンプの決定: システムは PR タイトルとコミット メッセージの両方を分析して、適切なバージョン バンプを決定します。
PRタイトルが
featで始まるか、新機能を含む場合 → マイナーバージョンアップfixで始まるかバグ修正を含むPRタイトル → パッチバージョンのアップPRタイトルに
BREAKING CHANGEまたは感嘆符が含まれる → メジャーバージョンアップPRタイトルが特定のバンプタイプを示していない場合、システムはコミットメッセージを分析します。
コミットメッセージで見つかった最も優先度の高いバンプタイプが使用されます(メジャー > マイナー > パッチ)
従来のコミットプレフィックスが見つからない場合、システムは自動的にパッチバージョンのバンプをデフォルトに設定し、失敗することはありません。
バージョンの更新と公開:
セマンティックバージョニングに従って、package.json のバージョンをアップグレードします。
バージョンの変更をコミットしてプッシュする
新しいバージョンをnpmに公開する
この自動化されたプロセスにより、セマンティック バージョン管理の原則に従って、変更の性質に基づいた一貫したバージョン管理が保証され、手動によるバージョン管理が不要になります。
貢献
貢献を歓迎します!詳細については、貢献ガイドをご覧ください。
安全
セキュリティ上の脆弱性を発見した場合は、弊社のセキュリティ ポリシーに従ってください。
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。