プロジェクト概要

このプロジェクトは、インターネット上のレシピ情報からレシピデータを自動生成・管理し、MCP(Model Context Protocol)サーバーとしてLLMクライアント(例:Claude for Desktop)に提供します。LLMはサーバーが公開するツールを呼び出すことで、レシピ検索や献立提案などの機能を利用できます。

主な機能

  • レシピデータの提供: 生成・管理されたレシピデータをLLMが利用できる形式で提供します。
  • レシピ関連ツールの実行: タグ指定でのレシピ検索、今日の献立提案、調理時間やカロリーでの絞り込みなど、レシピに関する様々な操作をLLMの指示で実行できるツールを提供します。

インストール手順

  1. Gitリポジトリをクローンします。
    git clone https://github.com/ackkerman/recipes.git
    cd recipes
  2. プロジェクトに必要な依存関係をインストールします。'pnpm' が必要です。
    pnpm i
  3. (オプション)レシピデータを生成します。このステップで'docs/.vitepress/recipes.json'が作成されます。既にデータがある場合はスキップ可能です。
    pnpm run update
  4. MCPサーバーが読み込むデータファイルへのシンボリックリンクを作成します。
    ln -s ./docs/.vitepress/recipes.json mcp-server/recipes.json
  5. Pythonの仮想環境ツール'uv'を使用してサーバーを実行するため、'uv'をインストールしていない場合はインストールしてください。
    # 例 (Homebrewを使用する場合)
    brew install uv

MCPサーバーの構成(LLMクライアント側)

LLMクライアント(例:Claude for Desktop)からこのMCPサーバーを利用するには、クライアントの設定ファイル(例: 'claude_desktop_config.json')の 'mcpServers' セクションに以下の情報を追記する必要があります。

  • サーバー名: 'menu'
  • 起動コマンド (command): 'uv'
  • コマンド引数 (args):
    • '--directory'
    • プロジェクトの絶対パス('recipes'リポジトリをクローンしたディレクトリ)
    • 'run'
    • 'server.py'

例(設定ファイルへの追記内容の説明): クライアントの設定ファイルを開き、「mcpServers」という設定項目(通常はJSONオブジェクト)を探します。そこに、以下の情報を持つ「menu」という名前の新しいエントリを追加します。 「command」にはサーバーを起動するための実行可能ファイル名('uv')を指定します。 「args」にはコマンドに渡す引数をリスト形式で指定します。最初の引数は'--directory'、次の引数はクローンしたレシピプロジェクトのフォルダの絶対パス、その次に'run'、最後にサーバー本体のファイル名'server.py'を指定します。

基本的な使用方法

上記のクライアント側の設定が完了し、MCPサーバーが起動している状態で、対応するLLMクライアント(例:Claude for Desktop)に対して、このサーバーが提供するツールを利用するようなプロンプト(指示)を与えます。

例:

  • 「今日の夕食の献立を考えて」
  • 「タグが『主菜』のレシピを教えて」
  • 「調理時間30分以内で、カロリーが500kcal以下のレシピを教えて」

LLMはこれらの指示を解釈し、内部的にMCPサーバーの適切なツールを呼び出し、その結果に基づいて応答を生成します。

信息

分类

网页与API