Skip to main content
Glama

Kintone MCP Server

by r3-yamauchi
lookup.js7.36 kB
// src/server/tools/documentation/lookup.js import { LOOKUP_FIELD_MIN_WIDTH } from '../../../constants.js'; /** * ルックアップフィールドのドキュメントを取得する関数 * @returns {string} ドキュメント文字列 */ export function getLookupDocumentation() { return ` # LOOKUP(ルックアップ)フィールドの仕様 ## 概要 ルックアップフィールドは、他のkintoneアプリのレコードを参照し、その値を自動的に取得するフィールドです。ユーザーが参照先のレコードを選択すると、関連するフィールドの値が自動的にコピーされます。 ## 重要な注意点 ルックアップフィールドは、実際には基本的なフィールドタイプ(SINGLE_LINE_TEXT、NUMBERなど)に、lookup属性を追加したものです。 フィールドタイプとして "LOOKUP" を指定するのではなく、適切な基本タイプを指定し、その中にlookupプロパティを設定します。 ## 主要なプロパティ 1. \`type\`: 基本的なフィールドタイプ("SINGLE_LINE_TEXT"など) 2. \`lookup\` オブジェクト(必須): - \`relatedApp\`: 参照先アプリの情報 - \`app\`: 参照先アプリのID(数値または文字列) - \`code\`: 参照先アプリのコード(文字列) ※ \`app\`と\`code\`のどちらか一方が必須。両方指定した場合は\`code\`が優先されます。 - \`relatedKeyField\`: 参照先アプリのキーフィールドコード(必須) - \`fieldMappings\`: フィールドマッピングの配列(必須) - \`field\`: このアプリ側のフィールドコード - \`relatedField\`: 参照先アプリのフィールドコード - 注意: ルックアップのキーフィールド自体はマッピングに含めないでください - \`lookupPickerFields\`: ルックアップピッカーに表示するフィールドコードの配列(推奨) - \`filterCond\`: 参照先レコードの絞り込み条件(クエリ形式、省略可) - \`sort\`: 参照先レコードのソート条件(クエリ形式、推奨) 3. \`required\`: 必須フィールドかどうか(true/false、省略可) ## ルックアップの仕組み 1. **参照先アプリの指定**: - 参照先のkintoneアプリを指定します(アプリIDまたはアプリコード) - 参照先アプリは運用環境にデプロイされている必要があります 2. **キーフィールドの指定**: - 参照先アプリのどのフィールドを検索キーとして使用するかを指定します - 通常は一意性のあるフィールド(レコード番号、コード番号など)を使用します 3. **フィールドマッピング**: - 参照先アプリのどのフィールドの値を、このアプリのどのフィールドにコピーするかを指定します - 複数のフィールドをマッピングできます - マッピング先のフィールドは事前に作成しておく必要があります 4. **ルックアップピッカー**: - ユーザーがルックアップフィールドをクリックすると表示される検索ダイアログ - 表示するフィールドを指定できます(lookupPickerFields) - 絞り込み条件やソート順も指定できます ## 使用例 ### 基本的な顧客情報ルックアップ \`\`\`json { "type": "SINGLE_LINE_TEXT", "code": "customer_lookup", "label": "顧客検索", "required": true, "lookup": { "relatedApp": { "app": "123", "code": "customers" }, "relatedKeyField": "customer_id", "fieldMappings": [ { "field": "customer_name", "relatedField": "name" }, { "field": "customer_email", "relatedField": "email" }, { "field": "customer_phone", "relatedField": "phone" } ], "lookupPickerFields": ["customer_id", "name", "email", "phone"], "filterCond": "status = \\"active\\"", "sort": "name asc" } } \`\`\` ### 商品情報ルックアップ(価格自動計算) \`\`\`json { "type": "SINGLE_LINE_TEXT", "code": "product_lookup", "label": "商品検索", "lookup": { "relatedApp": { "code": "products" }, "relatedKeyField": "product_code", "fieldMappings": [ { "field": "product_name", "relatedField": "name" }, { "field": "unit_price", "relatedField": "price" }, { "field": "stock", "relatedField": "available_stock" } ], "lookupPickerFields": ["product_code", "name", "price", "available_stock", "category"], "filterCond": "available_stock > 0", "sort": "category asc, name asc" } } \`\`\` ## 応用例 ### 複数のルックアップを連携させる 複数のルックアップフィールドを連携させることで、階層的なデータ参照が可能になります。 例えば、「部門」→「プロジェクト」→「タスク」という階層構造を実現できます。 1. 部門ルックアップフィールドを作成 2. プロジェクトルックアップフィールドを作成し、filterCondで部門IDを参照 \`\`\` "filterCond": "department_id = \\"" & department_lookup & "\\"" \`\`\` 3. タスクルックアップフィールドを作成し、filterCondでプロジェクトIDを参照 ### 計算フィールドとの連携 ルックアップフィールドで取得した値を計算フィールドで利用できます。 例えば、商品の単価と数量から合計金額を計算する場合: \`\`\` unit_price * quantity \`\`\` ## 注意事項 1. ルックアップフィールドを設定する前に、マッピング先となるフィールドが事前に作成されている必要があります。 2. マッピング先のフィールドは、参照先フィールドと互換性のある型である必要があります。 3. 参照先アプリが存在し、指定したフィールドが存在することを確認してください。 4. 参照先アプリは運用環境にデプロイされている必要があります。プレビュー環境のアプリは参照できません。 5. ルックアップフィールドの値が変更されると、マッピングされたフィールドの値も自動的に更新されます。 6. ルックアップフィールドの作成は create_lookup_field ツールを使用すると簡単です。 7. ルックアップのキーフィールド自体はフィールドマッピングに含めないでください。 8. lookupPickerFieldsとsortは省略可能ですが、指定することを強く推奨します。 9. ルックアップフィールドは「取得」と「クリア」のリンクが表示されるため、通常のフィールドよりも幅を広めに設定することをお勧めします。このMCP Serverでは最小幅(` + LOOKUP_FIELD_MIN_WIDTH + `)を自動的に設定します。 ## 関連情報 - ルックアップフィールドは、関連レコードリストフィールドや関連テーブルフィールドと組み合わせて使用することで、より高度なデータ連携が可能になります。 `; }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/r3-yamauchi/kintone-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server