Integrations
Offers Docker container support for running the Docy MCP server in containerized environments with configurable documentation sources
Utilizes GitHub Actions for automated releases, testing, and publishing to PyPI and Docker Hub
Integrates with PyPI for package distribution, allowing installation via pip and automated publishing through the release process
Docy: AI で簡単にドキュメントを作成
技術ドキュメントにすぐにアクセスして AI アシスタントを強化します。
Docyは、AIが必要な時に必要な技術ドキュメントに直接アクセスできるようにします。古い情報、リンク切れ、レート制限に悩まされることはもうありません。正確でリアルタイムなドキュメントへのアクセスにより、より正確なコーディング支援が可能になります。
Docyを選ぶ理由
- 即時ドキュメントアクセス: React、Python、crawl4ai、その他使用している技術スタックのドキュメントに直接アクセスできます。
- ホット リロード サポート: 再起動せずに新しいドキュメント ソースをオンザフライで追加します。.docy.urls ファイルを編集するだけです。
- インテリジェントキャッシュ: 最新のコンテンツを維持しながら、レイテンシと外部リクエストを削減します。
- セルフホスト型制御: ドキュメントへのアクセスをセキュリティ境界内に維持します
- シームレスなMCP統合:Claude、VS Code、その他のMCP対応AIツールと簡単に連携
注:ClaudeはデフォルトでDocyではなく、組み込みのWebFetchToolを使用する場合があります。Docyの機能を明示的に要求するには、「Docyを使用して検索してください…」のようなコールアウトを使用してください。
Docy MCP サーバー
ドキュメントアクセス機能を提供するモデルコンテキストプロトコル(CMP)サーバー。このサーバーにより、LLMはcrawl4aiを使用してドキュメントウェブサイトからコンテンツをスクレイピングし、検索・取得できるようになります。FastMCP v2で構築されています。
Docyの使用
Docy が一般的なドキュメント作成タスクにどのように役立つかの例を以下に示します。
Docy を使用すると、Claude Code は構成されたソースからドキュメントに直接アクセスして分析できるため、正確なドキュメントベースのガイダンスをより効果的に提供できます。
Claude Code がドキュメント関連のタスクで Docy を優先するようにするには、プロジェクトのCLAUDE.md
ファイルに次のガイドラインを追加します。
これらの手順をCLAUDE.md
ファイルに追加すると、Claude Code はドキュメントを操作するときに、組み込みの Web フェッチ機能ではなく、一貫して Docy を使用できるようになります。
利用可能なツール
list_documentation_sources_tool
- 利用可能なすべてのドキュメントソースを一覧表示する- パラメータは必要ありません
fetch_documentation_page
- URL でドキュメントページのコンテンツをマークダウンとして取得しますurl
(文字列、必須): コンテンツを取得するURL
fetch_document_links
- ドキュメントページからすべてのリンクを取得しますurl
(文字列、必須): リンクを取得するURL
プロンプト
- ドキュメントソース
- 利用可能なすべてのドキュメントソースをURLと種類とともに一覧表示します
- 引数は必要ありません
- ドキュメントページ
- 特定のURLにあるドキュメントページの全コンテンツをマークダウンとして取得する
- 引数:
url
(文字列、必須): 取得する特定のドキュメントページのURL
- ドキュメントリンク
- ドキュメントページからすべてのリンクを取得して関連コンテンツを見つける
- 引数:
url
(文字列、必須): リンクを取得するドキュメントページのURL
インストール
uvの使用(推奨)
uv
を使用する場合、特別なインストールは必要ありません。uvx uvx
使用してmcp-server-docyを直接実行します。
PIPの使用
あるいは、pip 経由でmcp-server-docy
をインストールすることもできます。
インストール後、次のコマンドを使用してスクリプトとして実行できます。
Dockerの使用
Docker イメージを使用することもできます。
グローバルサーバーのセットアップ
チーム開発や複数プロジェクト開発の場合は、 server/README.md
で、複数のプロジェクト間で共有可能な永続的な SSE サーバーの実行手順をご確認ください。この設定により、共有ドキュメント URL とキャッシュを備えた単一の Docy インスタンスを維持できます。
構成
Claude.app 用に設定する
Claude 設定に追加:
VS Code用の設定
手動でインストールする場合は、VS Code のユーザー設定 (JSON) ファイルに次の JSON ブロックを追加します。Ctrl Ctrl + Shift + P
を押してPreferences: Open User Settings (JSON)
と入力すると、このブロックを追加できます。
オプションとして、ワークスペース内の.vscode/mcp.json
というファイルに追加することもできます。これにより、他のユーザーと設定を共有できるようになります。
mcp.json
ファイルを使用する場合は、mcp
キーが必要であることに注意してください。
設定オプション
アプリケーションは環境変数を使用して構成できます。
DOCY_DOCUMENTATION_URLS
(文字列): 含めるドキュメント サイトの URL のコンマ区切りリスト (例: " https://docs.crawl4ai.com/,https://react.dev/ ")DOCY_DOCUMENTATION_URLS_FILE
(文字列): ドキュメント URL を 1 行に 1 つずつ含むファイルへのパス (デフォルト: ".docy.urls")DOCY_CACHE_TTL
(整数): キャッシュの有効期間(秒)(デフォルト: 432000)DOCY_CACHE_DIRECTORY
(文字列): キャッシュディレクトリへのパス (デフォルト: ".docy.cache")DOCY_USER_AGENT
(文字列): HTTPリクエストのカスタムユーザーエージェント文字列DOCY_DEBUG
(ブール値): デバッグログを有効にする ("true", "1", "yes", または "y")DOCY_SKIP_CRAWL4AI_SETUP
(ブール値): 起動時にcrawl4ai-setupコマンドの実行をスキップします("true", "1", "yes", または "y")DOCY_TRANSPORT
(文字列): 使用するトランスポートプロトコル (オプション: "sse" または "stdio"、デフォルト: "stdio")DOCY_HOST
(文字列): サーバーをバインドするホストアドレス (デフォルト: "127.0.0.1")DOCY_PORT
(整数): サーバーを実行するポート (デフォルト: 8000)
環境変数は直接または.env
ファイル経由で設定できます。
URL設定ファイル
DOCY_DOCUMENTATION_URLS
環境変数を設定する代わりに、プロジェクト ディレクトリに 1 行につき 1 つの URL を含む.docy.urls
ファイルを作成することもできます。
このアプローチは特に次の場合に役立ちます。
- チームとドキュメントソースを共有したいプロジェクト
- バージョン管理で URL を保存すると便利なリポジトリ
- 長い環境変数値を避けたい状況
サーバーは最初にDOCY_DOCUMENTATION_URLS
環境変数内の URL をチェックし、見つからない場合は.docy.urls
ファイルを検索します。
URL ファイルのホットリロード
ドキュメントソースとして.docy.urls
ファイルを使用する場合、サーバーはURLをキャッシュするのではなく、リクエストごとにファイルを読み取るホットリロードメカニズムを実装します。これにより、以下のことが可能になります。
- サーバーの実行中に
.docy.urls
ファイル内のドキュメント URL を追加、削除、または変更します。 - これらの変更は、
list_documentation_sources_tool
や他のドキュメントツールへの後続の呼び出しですぐに反映されます。 - ドキュメントソースを変更するときにサーバーを再起動しないでください
これは、開発中や、実行中のサーバーに新しいドキュメント ソースをすばやく追加する必要がある場合に特に便利です。
ドキュメント URL のベストプラクティス
設定する URL は、理想的には、次の内容を含むドキュメント インデックス ページまたは紹介ページを指す必要があります。
- 目次
- ナビゲーション構造
- 内部リンクと外部リンクのコレクション
これにより、LLM は次のことが可能になります。
- 高レベルのドキュメントページから始める
- リンクを介して関連するサブページを見つける
- 必要に応じて特定のドキュメントに移動します
適切に構造化されたサブページを持つドキュメント サイトを使用することを強くお勧めします。その理由は次のとおりです。
- LLMが関連セクションに集中できるようにすることで、コンテキストの使用を最小限に抑えます。
- ドキュメント化によるナビゲーション効率の向上
- 自然な方法で情報を探索し、見つける方法を提供します
- ドキュメントセット全体を一度に読み込む必要性を軽減
たとえば、ドキュメント サイト全体を読み込む代わりに、LLM はインデックス ページから開始し、関連するセクションを識別し、必要に応じて特定のサブページに移動できます。
キャッシュ動作
MCP サーバーは、パフォーマンスを向上させるためにドキュメントのコンテンツを自動的にキャッシュします。
- 起動時に、サーバーは
DOCY_DOCUMENTATION_URLS
から設定されたすべてのドキュメントURLをプリフェッチしてキャッシュします。 - キャッシュの有効期間(TTL)は、
DOCY_CACHE_TTL
環境変数で設定できます。 - アクセスされた新しいサイトは自動的にキャッシュにロードされ、トラフィックが削減され、応答時間が短縮されます。
- キャッシュされたコンテンツは、
diskcache
ライブラリを使用して永続的なディスクベースのキャッシュに保存されます。 - キャッシュの場所は、
DOCY_CACHE_DIRECTORY
環境変数で設定できます(デフォルト: ".docy.cache")。 - キャッシュはサーバーの再起動後も保持され、頻繁にアクセスされるドキュメントのパフォーマンスが向上します。
キャッシュの例外
ほとんどのコンテンツはパフォーマンスのためにキャッシュされますが、特定の例外があります。
- ドキュメント URL リスト:
.docy.urls
ファイルを使用する場合、ドキュメント ソースのリストはキャッシュされません。代わりに、URL のホット リロードをサポートするために、各リクエストごとにファイルが再読み込みされます。 - ページコンテンツ: ドキュメントページの実際のコンテンツは、設定されたTTLに従ってキャッシュされます。
このハイブリッド アプローチは、コンテンツ アクセスのパフォーマンス上の利点とドキュメント ソース管理の柔軟性の両方を実現します。
地域開発
- 開発モードで実行します:
fastmcp dev src/mcp_server_docy/__main__.py --with-editable .
- API にアクセスするには、次の URL にアクセスしてください:
http://127.0.0.1:6274
- MCP インスペクターで実行:
uv run --with fastmcp --with-editable /Users/oliverborchers/Desktop/Code.nosync/mcp-server-docy --with crawl4ai --with loguru --with diskcache --with pydantic-settings fastmcp run src/mcp_server_docy/__main__.py
デバッグ
MCPインスペクタを使用してサーバーをデバッグできます。UVXインストールの場合:
または、パッケージを特定のディレクトリにインストールした場合や、そのディレクトリで開発している場合は、次のようにします。
トラブルシューティング: Claude Code CLI で「ツールが見つかりません」というエラーが発生する
Claude Code CLI で「ERROR Tool not found for mcp__docy__fetch_documentation_page」のようなエラーが発生した場合は、次の手順に従ってください。
- 現在のディレクトリにドキュメントの URL を含む
.docy.urls
ファイルを作成します。
- SSE トランスポート プロトコルを使用して Docker を使用してサーバーを実行し、URL ファイルをマウントします。
- SSE エンドポイントを使用するように Claude Code
.mcp.json
を構成します。
この構成:
- ドキュメントソースの環境変数の代わりにマウントされた
.docy.urls
ファイルを使用します - デフォルトのstdioモードからSSE(Server-Sent Events)プロトコルに切り替えます
- コンテナ外からサーバーにアクセスできるようにする
- HTTPアクセス用にポート8000でサーバーを公開する
SSE トランスポートは、HTTP 経由でアクセスする必要があるスタンドアロン サービスとしてサーバーを実行する場合に推奨されます。これは、Docker のデプロイメントに特に便利です。
リリースプロセス
このプロジェクトでは、自動リリースに GitHub Actions を使用しています。
pyproject.toml
のバージョンを更新するgit tag vX.YZ
で新しいタグを作成します (例:git tag v0.1.0
)git push --tags
でタグをプッシュします。
これにより、次の処理が自動的に実行されます。
pyproject.toml
のバージョンがタグと一致していることを確認します- テストとリントチェックを実行する
- ビルドしてPyPIに公開する
oborchers/mcp-server-docy:latest
およびoborchers/mcp-server-docy:XYZ
としてビルドし、Docker Hub に公開します。
貢献
mcp-server-docy の拡張と改善にご協力いただけることを歓迎いたします。新機能の追加、既存機能の強化、ドキュメントの改善など、皆様からのご意見は大変貴重です。
他の MCP サーバーと実装パターンの例については、https: //github.com/modelcontextprotocol/serversを参照してください。
プルリクエストを歓迎します。mcp-server-docy をさらに強力で便利なものにするために、新しいアイデア、バグ修正、機能強化などを自由にご提供ください。
ライセンス
mcp-server-docyはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server to run commands.Last updated -2204104JavaScriptMIT License
- Python
- Python
- MIT License