mcp-server-docy

MIT License
2

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 が一般的なドキュメント作成タスクにどのように役立つかの例を以下に示します。

# Verify implementation against documentation Are we implementing Crawl4Ai scrape results correctly? Let's check the documentation. # Explore API usage patterns What do the docs say about using mcp.tool? Show me examples from the documentation. # Compare implementation options How should we structure our data according to the React documentation? What are the best practices?

Docy を使用すると、Claude Code は構成されたソースからドキュメントに直接アクセスして分析できるため、正確なドキュメントベースのガイダンスをより効果的に提供できます。

Claude Code がドキュメント関連のタスクで Docy を優先するようにするには、プロジェクトのCLAUDE.mdファイルに次のガイドラインを追加します。

## Documentation Guidelines - When checking documentation, prefer using Docy over WebFetchTool - Use list_documentation_sources_tool to discover available documentation sources - Use fetch_documentation_page to retrieve full documentation pages - Use fetch_document_links to discover related documentation

これらの手順を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をインストールすることもできます。

pip install mcp-server-docy

インストール後、次のコマンドを使用してスクリプトとして実行できます。

DOCY_DOCUMENTATION_URLS="https://docs.crawl4ai.com/,https://react.dev/" python -m mcp_server_docy

Dockerの使用

Docker イメージを使用することもできます。

docker pull oborchers/mcp-server-docy:latest docker run -i --rm -e DOCY_DOCUMENTATION_URLS="https://docs.crawl4ai.com/,https://react.dev/" oborchers/mcp-server-docy

グローバルサーバーのセットアップ

チーム開発や複数プロジェクト開発の場合は、 server/README.mdで、複数のプロジェクト間で共有可能な永続的な SSE サーバーの実行手順をご確認ください。この設定により、共有ドキュメント URL とキャッシュを備えた単一の Docy インスタンスを維持できます。

構成

Claude.app 用に設定する

Claude 設定に追加:

"mcpServers": { "docy": { "command": "uvx", "args": ["mcp-server-docy"], "env": { "DOCY_DOCUMENTATION_URLS": "https://docs.crawl4ai.com/,https://react.dev/" } } }
"mcpServers": { "docy": { "command": "docker", "args": ["run", "-i", "--rm", "oborchers/mcp-server-docy:latest"], "env": { "DOCY_DOCUMENTATION_URLS": "https://docs.crawl4ai.com/,https://react.dev/" } } }
"mcpServers": { "docy": { "command": "python", "args": ["-m", "mcp_server_docy"], "env": { "DOCY_DOCUMENTATION_URLS": "https://docs.crawl4ai.com/,https://react.dev/" } } }

VS Code用の設定

手動でインストールする場合は、VS Code のユーザー設定 (JSON) ファイルに次の JSON ブロックを追加します。Ctrl Ctrl + Shift + Pを押してPreferences: Open User Settings (JSON)と入力すると、このブロックを追加できます。

オプションとして、ワークスペース内の.vscode/mcp.jsonというファイルに追加することもできます。これにより、他のユーザーと設定を共有できるようになります。

mcp.jsonファイルを使用する場合は、 mcpキーが必要であることに注意してください。

{ "mcp": { "servers": { "docy": { "command": "uvx", "args": ["mcp-server-docy"], "env": { "DOCY_DOCUMENTATION_URLS": "https://docs.crawl4ai.com/,https://react.dev/" } } } } }
{ "mcp": { "servers": { "docy": { "command": "docker", "args": ["run", "-i", "--rm", "oborchers/mcp-server-docy:latest"], "env": { "DOCY_DOCUMENTATION_URLS": "https://docs.crawl4ai.com/,https://react.dev/" } } } } }

設定オプション

アプリケーションは環境変数を使用して構成できます。

  • 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ファイルを作成することもできます。

https://docs.crawl4ai.com/ https://react.dev/ # Lines starting with # are treated as comments https://docs.python.org/3/

このアプローチは特に次の場合に役立ちます。

  • チームとドキュメントソースを共有したいプロジェクト
  • バージョン管理で URL を保存すると便利なリポジトリ
  • 長い環境変数値を避けたい状況

サーバーは最初にDOCY_DOCUMENTATION_URLS環境変数内の URL をチェックし、見つからない場合は.docy.urlsファイルを検索します。

URL ファイルのホットリロード

ドキュメントソースとして.docy.urlsファイルを使用する場合、サーバーはURLをキャッシュするのではなく、リクエストごとにファイルを読み取るホットリロードメカニズムを実装します。これにより、以下のことが可能になります。

  1. サーバーの実行中に.docy.urlsファイル内のドキュメント URL を追加、削除、または変更します。
  2. これらの変更は、 list_documentation_sources_toolや他のドキュメントツールへの後続の呼び出しですぐに反映されます。
  3. ドキュメントソースを変更するときにサーバーを再起動しないでください

これは、開発中や、実行中のサーバーに新しいドキュメント ソースをすばやく追加する必要がある場合に特に便利です。

ドキュメント URL のベストプラクティス

設定する URL は、理想的には、次の内容を含むドキュメント インデックス ページまたは紹介ページを指す必要があります。

  • 目次
  • ナビゲーション構造
  • 内部リンクと外部リンクのコレクション

これにより、LLM は次のことが可能になります。

  1. 高レベルのドキュメントページから始める
  2. リンクを介して関連するサブページを見つける
  3. 必要に応じて特定のドキュメントに移動します

適切に構造化されたサブページを持つドキュメント サイトを使用することを強くお勧めします。その理由は次のとおりです。

  • 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インストールの場合:

DOCY_DOCUMENTATION_URLS="https://docs.crawl4ai.com/" npx @modelcontextprotocol/inspector uvx mcp-server-docy

または、パッケージを特定のディレクトリにインストールした場合や、そのディレクトリで開発している場合は、次のようにします。

cd path/to/docy DOCY_DOCUMENTATION_URLS="https://docs.crawl4ai.com/" npx @modelcontextprotocol/inspector uv run mcp-server-docy

トラブルシューティング: Claude Code CLI で「ツールが見つかりません」というエラーが発生する

Claude Code CLI で「ERROR Tool not found for mcp__docy__fetch_documentation_page」のようなエラーが発生した場合は、次の手順に従ってください。

  1. 現在のディレクトリにドキュメントの URL を含む.docy.urlsファイルを作成します。
https://docs.crawl4ai.com/ https://react.dev/
  1. SSE トランスポート プロトコルを使用して Docker を使用してサーバーを実行し、URL ファイルをマウントします。
docker run -i --rm -p 8000:8000 \ -e DOCY_TRANSPORT=sse \ -e DOCY_HOST=0.0.0.0 \ -e DOCY_PORT=8000 \ -v "$(pwd)/.docy.urls:/app/.docy.urls" \ oborchers/mcp-server-docy
  1. SSE エンドポイントを使用するように Claude Code .mcp.jsonを構成します。
{ "mcp": { "servers": { "docy": { "type": "sse", "url": "http://localhost:8000/sse" } } } }

この構成:

  • ドキュメントソースの環境変数の代わりにマウントされた.docy.urlsファイルを使用します
  • デフォルトのstdioモードからSSE(Server-Sent Events)プロトコルに切り替えます
  • コンテナ外からサーバーにアクセスできるようにする
  • HTTPアクセス用にポート8000でサーバーを公開する

SSE トランスポートは、HTTP 経由でアクセスする必要があるスタンドアロン サービスとしてサーバーを実行する場合に推奨されます。これは、Docker のデプロイメントに特に便利です。

リリースプロセス

このプロジェクトでは、自動リリースに GitHub Actions を使用しています。

  1. pyproject.tomlのバージョンを更新する
  2. git tag vX.YZで新しいタグを作成します (例: git tag v0.1.0 )
  3. 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ファイルをご覧ください。

-
security - not tested
A
license - permissive license
-
quality - not tested

mcp-server-docy

  1. Why Choose Docy?
    1. Docy MCP Server
      1. Using Docy
      2. Installation
      3. Configuration
      4. Local Development
      5. Debugging
      6. Release Process
      7. Contributing
      8. License

    Related MCP Servers

    View all related MCP servers

    ID: 7v3iq7o0fh