Skip to main content
Glama
Kintone MCP Server

Kintone MCP Server

by r3-yamauchi

MCP server for kintone sample

This is a sample code of Model Context Protocol (MCP) server that can be used for kintone integration. It was automatically created using generative AI and is provided as is.

Using this MCP server, you can view and update kintone data from MCP host apps such as the Claude Desktop app, and even create kintone apps themselves.

For more information about this repository, see the DeepWiki documentation .

How to use Claude Desktop app

1. Download the source code

You can download it to any location, but it's best to use a path that consists of alphanumeric characters only and has no spaces in between.

2. Install Node.js

Please use Node.js 18 or later.

3. npm install

npm i

4. Edit the Claude Desktop app configuration file

Find the configuration file called claude_desktop_config.json and add the settings to the "mcpServers" section of this file as shown below.

{
  "mcpServers": {
    "kintone": {
      "command": "node",
      "env": {
        "KINTONE_DOMAIN": "[あなたが使用するサブドメイン].cybozu.com",
        "KINTONE_USERNAME": "MCP接続で使用するkintoneユーザー名",
        "KINTONE_PASSWORD": "kintoneユーザーのパスワード(平文)"
      },
      "args": [
        "[kintone-mcp-serverを配置したパス]/server.js"
      ]
    }
  }
}

5. Restart the Claude Desktop app

After saving the changes to claude_desktop_config.json, quit the Claude Desktop app and restart it. Even if the app appears to have been quitted, it may still be running in the background, so right-click on the app icon and select Quit.

6. Operation check

First, ask Claude to "Find the app ID for the kintone app " An example of an app name that can be accessed by the kintone user you set ." The kintone app name you enter here must be specified exactly, word for word.

7. List of features provided by this MCP server

For annotation attributes for each tool, see docs/tool-annotations.md .

Record Operations

  • get_record : Get a record from the kintone app

  • search_records : Search for records in the kintone app

  • create_record : Create a new record in the kintone app

  • update_record : Update an existing record in the kintone app

  • add_record_comment : Add a comment to a kintone record

File Operations

  • upload_file : Upload a file to kintone

  • download_file : Download a file from kintone (Note: In the current implementation, files over 1MB may not be downloaded correctly)

App Information

  • get_apps_info : Get information on multiple kintone apps by specifying search keywords

  • get_form_layout : Get the form layout of the kintone app

  • get_app_actions : Gets the app action settings for the kintone app.

  • get_app_plugins : Get a list of plugins added to the kintone app

  • get_process_management : Get the process management settings of the kintone app

App operation

  • create_app : Create a new kintone app

  • add_fields : Add fields to the kintone app

  • update_field : Update the settings of an existing kintone field

  • update_form_layout : Change the form layout of the kintone app

  • update_app_settings : Change general app settings

  • deploy_app : Start of production operation of kintone app (reflected in the production environment)

  • get_deploy_status : Check the status of application settings in the production environment

  • move_app_to_space : Move the kintone app to the specified space

  • move_app_from_space : Move the kintone app away from the space

Space Operations

  • get_space : Get general information about a space

  • update_space : Update space settings

  • update_space_body : Update the space body

  • get_space_members : Get the list of space members

  • update_space_members : Update space members

  • add_thread : Add a thread to a space

  • update_thread : Update a thread

  • add_thread_comment : Add a comment to a thread

  • add_guests : Add guest users

  • update_space_guests : Update space guest members

User Group Information

  • get_users : Get kintone user information

  • get_groups : Get kintone group information

  • get_group_users : Gets a list of users belonging to a specified group

kintone connection information

  • get_kintone_domain : Get the domain to which kintone is connected

  • get_kintone_username : Gets the username used to connect to kintone

8. Other

I wrote a blog post about what you can do with this MCP server, so please take a look.

"kintone" is a registered trademark of Cybozu, Inc.

The contents described here are for informational purposes only, and we cannot provide individual support. Please note that we cannot respond to inquiries about the settings or if the software does not work in your environment.

Available Tools

79 tools
add_fieldsA

kintoneアプリにフィールドを追加します。各フィールドには code(フィールドコード)、type(フィールドタイプ)、label(表示名)の指定が必須です。 初期値を設定する際は、フィールドタイプごとに defaultValue または defaultNowValue を使用できます。defaultValue には文字列を指定し、日付なら "YYYY-MM-DD"、時刻なら "HH:MM"、日時なら "YYYY-MM-DDTHH:MM:SS" 形式を守ってください。defaultNowValue は true/false または "true"/"false" を受け付け、省略時は false として扱われます。 日付・時刻・日時フィールドで defaultValue と defaultNowValue: true を同時に指定した場合、defaultNowValue: true が優先され defaultValue は無視されます。 フィールドコードに使用できる文字: ひらがな、カタカナ、漢字、英数字、記号(__・・$¥) 注意: システムフィールドタイプ(CREATOR, MODIFIER, RECORD_NUMBER, CREATED_TIME, UPDATED_TIME)は追加できません。これらはkintoneによって自動的に作成されるフィールドです。 type: CREATOR のようなシステムフィールドタイプを指定すると、エラーが発生します。 代替方法として、以下のようなフィールドを追加できます:

  • CREATOR(作成者)の代わりに「申請者」などの名前でUSER_SELECTフィールド

  • MODIFIER(更新者)の代わりに「承認者」などの名前でUSER_SELECTフィールド

  • CREATED_TIME(作成日時)の代わりに「申請日時」などの名前でDATETIMEフィールド

  • UPDATED_TIME(更新日時)の代わりに「承認日時」などの名前でDATETIMEフィールド

  • RECORD_NUMBER(レコード番号)の代わりに「管理番号」などの名前でSINGLE_LINE_TEXTフィールド 例: { "app_id": 123, "properties": { "number_field": { "type": "NUMBER", "code": "number_field", "label": "数値フィールド" }, "text_field": { "type": "SINGLE_LINE_TEXT", "code": "text_field", "label": "テキストフィールド" } } } また、ルックアップフィールドをフォームに配置する際は 250 以上の幅を明示的に指定してください。

Inputs: app_id (required), properties (required).

add_guestsC

ゲストユーザーを追加します

Inputs: guests (required).

add_layout_elementC

既存のフォームレイアウトに要素を追加します

Inputs: app_id (required), element (required), position.

add_record_commentC

kintoneレコードにコメントを追加します

Inputs: app_id (required), record_id (required), text (required), mentions.

add_threadC

スペースにスレッドを追加します

Inputs: space_id (required), name (required).

add_thread_commentC

スレッドにコメントを追加します

Inputs: space_id (required), thread_id (required), text (required), mentions.

create_appC

新しいkintoneアプリを作成します

Inputs: name (required), space, thread.

create_choice_fieldC

選択肢フィールド(ラジオボタン、チェックボックス、ドロップダウン、複数選択)の設定を生成します。 フィールドコードに使用できる文字: ひらがな、カタカナ、漢字、英数字、記号(__・・$¥) 例: { "field_type": "RADIO_BUTTON", "code": "radio_field", "label": "ラジオボタン", "choices": ["選択肢1", "選択肢2", "選択肢3"], "align": "HORIZONTAL" }

Inputs: field_type (required), label (required), choices (required), code, +2 more.

create_form_layoutC

フィールド情報からフォームレイアウトを自動生成します

Inputs: app_id (required), fields (required), options.

create_group_layoutC

グループ要素を作成します

Inputs: code (required), label (required), fields (required), openGroup, +1 more.

create_lookup_fieldC

ルックアップフィールドの設定を生成します。 フィールドコードに使用できる文字: ひらがな、カタカナ、漢字、英数字、記号(__・・$¥) 例: { "code": "lookup_field", "label": "ルックアップ", "relatedAppId": 123, "relatedKeyField": "customer_id", "fieldMappings": [ { "field": "name", "relatedField": "customer_name" }, { "field": "email", "relatedField": "customer_email" } ] }

Inputs: label (required), relatedKeyField (required), fieldMappings (required), code, +6 more.

create_recordA

kintoneアプリに新しいレコードを作成します。事前に対象アプリのフィールド構造を把握するため、`get_form_fields` やフォームの配置情報を確認できる`get_form_layout` を実行し、必要なフィールドコードと配置を整理してから本ツールを使用することを推奨します。各フィールドは { "value": ... } の形式で指定します。 例: { "app_id": 1, "fields": { "文字列1行": { "value": "テスト" }, "文字列複数行": { "value": "テスト\nテスト2" }, "数値": { "value": "20" }, "日時": { "value": "2014-02-16T08:57:00Z" }, "チェックボックス": { "value": ["sample1", "sample2"] }, "ユーザー選択": { "value": [{ "code": "sato" }] }, "ドロップダウン": { "value": "sample1" }, "リンク_ウェブ": { "value": "https://www.cybozu.com" }, "テーブル": { "value": [{ "value": { "テーブル文字列": { "value": "テスト" } } }] } } }

Inputs: app_id (required), fields (required).

create_recordsC

kintoneアプリに複数のレコードを一括作成します(最大100件)

Inputs: app_id (required), records (required).

create_reference_table_fieldC

関連テーブルフィールドの設定を生成します。 フィールドコードに使用できる文字: ひらがな、カタカナ、漢字、英数字、記号(__・・$¥) 例: { "code": "related_table", "label": "関連テーブル", "relatedAppId": 123, "conditionField": "customer_id", "relatedConditionField": "customer_id" }

Inputs: label (required), conditionField (required), relatedConditionField (required), code, +7 more.

create_table_layoutC

テーブルレイアウトを作成します

Inputs: rows (required), options.

deploy_appC

kintoneアプリの設定をデプロイします

Inputs: apps (required).

download_fileA

kintoneアプリからファイルをダウンロードします。注意: 現在の実装では1MB以上のファイルは正常にダウンロードできない場合があります。

Inputs: file_key (required).

evaluate_records_aclC

指定した条件でレコードのアクセス権限を評価します

Inputs: app_id (required), record_ids (required).

get_app_aclB

kintoneアプリのアクセス権限を取得します

Inputs: app_id (required), preview.

get_app_actionsB

kintoneアプリのアクション設定を取得します。レスポンスには各アクションの実行条件(filterCond)も含まれます。filterCondは、アプリアクションを実行できる条件をkintoneクエリ構文で定義したものです。

Inputs: app_id (required), lang.

get_app_customizeB

kintoneアプリのJavaScript/CSSカスタマイズ設定を取得します

Inputs: app_id (required), preview.

get_app_pluginsC

kintoneアプリに追加されているプラグインの一覧を取得します

Inputs: app_id (required).

get_apps_infoA

アプリ名(またはその部分文字列)で検索、アプリIDで絞り込み、さらに任意でアプリコードやスペースIDでも絞り込んでkintoneアプリの情報を取得します。app_name と app_id のいずれか一方は必ず指定し、app_code と space_id は任意で組み合わせ可能です。

Inputs: app_name, app_id, app_code, space_id.

get_available_field_typesB

利用可能なフィールドタイプの一覧を取得します

Inputs: no named parameters.

get_deploy_statusC

kintoneアプリのデプロイ状態を確認します

Inputs: apps (required).

get_documentation_tool_descriptionC

ドキュメントツールの説明を取得します

Inputs: no named parameters.

get_field_aclC

kintoneアプリのフィールドのアクセス権限を取得します

Inputs: app_id (required), preview.

get_field_creation_tool_descriptionC

フィールド作成ツールの説明を取得します

Inputs: no named parameters.

get_field_type_documentationC

フィールドタイプに関するドキュメントを取得します

Inputs: field_type (required).

get_form_fieldsA

kintoneアプリのフォームフィールド情報を取得します。対象アプリが本番環境に存在しない場合はエラーとなります。プレビュー環境の情報を取得したい場合は get_preview_form_fields を使用してください。

Inputs: app_id (required).

get_form_layoutC

kintoneアプリのフォームレイアウトを取得します

Inputs: app_id (required).

get_groupsC

kintoneのグループ情報を取得します

Inputs: codes.

get_group_usersB

指定したグループに所属するユーザーの一覧を取得します

Inputs: group_code (required).

get_kintone_domainB

kintoneの接続先ドメインを取得します

Inputs: no named parameters.

get_kintone_usernameB

kintoneへの接続に使用されるユーザー名を取得します

Inputs: no named parameters.

get_notificationsC

kintoneアプリの通知条件設定を取得します

Inputs: app_id (required), preview.

get_per_record_notificationsB

kintoneアプリのレコード単位の通知設定を取得します

Inputs: app_id (required), preview.

get_preview_app_settingsC

プレビュー環境のkintoneアプリ設定を取得します

Inputs: app_id (required), lang.

get_preview_form_fieldsC

プレビュー環境のkintoneアプリのフォームフィールド情報を取得します

Inputs: app_id (required), lang.

get_preview_form_layoutC

プレビュー環境のkintoneアプリのフォームレイアウト情報を取得します

Inputs: app_id (required).

get_process_managementB

kintoneアプリのプロセス管理設定を取得します

Inputs: app_id (required), preview.

get_query_language_documentationB

kintoneクエリ言語(検索クエリ)に関する詳細なドキュメントを取得します。演算子、条件式、並び替え、ページングなどの使い方を説明します。

Inputs: no named parameters.

get_recordA

kintoneアプリの1レコードを取得します。事前に対象アプリのフィールド構造を把握したい場合は、`get_form_fields` ツールで利用予定のフィールドコードを確認してから本ツールを呼び出してください。

Inputs: app_id (required), record_id (required).

get_record_aclC

指定したレコードのアクセス権限を取得します

Inputs: app_id (required), record_id (required).

get_record_commentsA

kintoneレコードのコメントを取得します。limit未指定の場合は内部でページングして全件を取得します。大量データになる場合は limit(例: 10)を指定することを推奨します。

Inputs: app_id (required), record_id (required), order, offset, +1 more.

get_reminder_notificationsB

kintoneアプリのリマインダー通知設定を取得します

Inputs: app_id (required), preview.

get_reportsB

kintoneアプリのグラフ設定を取得します

Inputs: app_id (required), preview.

get_spaceB

スペースの一般情報を取得します

Inputs: space_id (required).

get_space_membersC

スペースメンバーのリストを取得します

Inputs: space_id (required).

get_usersC

kintoneのユーザー情報を取得します

Inputs: codes.

get_viewsB

kintoneアプリの一覧(ビュー)の設定を取得します

Inputs: app_id (required), preview.

move_app_from_spaceB

kintoneアプリをスペースに所属させないようにします。注意: kintoneシステム管理の「利用する機能の選択」で「スペースに所属しないアプリの作成を許可する」が有効になっている必要があります。

Inputs: app_id (required).

move_app_to_spaceC

kintoneアプリを指定したスペースに移動します

Inputs: app_id (required), space_id (required).

search_recordsA

kintoneアプリのレコードを検索します。事前に対象アプリのフィールド一覧を把握するため、`get_form_fields` ツールで利用予定のフィールドコードやフィールドタイプを確認してからクエリーを作成することを推奨します。

【よく使用されるクエリ例】 • 文字列検索: Customer = "サイボウズ株式会社" (完全一致) • 部分一致: Customer like "株式会社" (部分一致) • ドロップダウン: Status in ("対応中","未対応") (複数値の選択) • 日付範囲: LimitDay >= "2022-09-29" and LimitDay <= "2022-10-29" • 日付関数: LimitDay < TODAY() (今日より前) • 複数条件: Status in ("対応中") and LimitDay < TODAY() • ソート: Status = "対応中" order by 更新日時 desc • ページング: Status = "対応中" order by $id desc limit 20 offset 20 • 空欄チェック: Detail is empty (文字列複数行の空欄) • 非空欄チェック: Detail is not empty (文字列複数行の非空欄) • 添付ファイル有無: Attachments is empty / is not empty • ユーザー検索: 作成者 in (LOGINUSER()) (自分が作成したレコード)

注意: is empty / is not empty は「文字列(複数行)」と「添付ファイル(FILE)」に対してのみ使用でき、「文字列(1行)」などの他のフィールドタイプに対しては使用できません。 クエリ式の詳細仕様や構文とすべての演算子や関数、フィールド別の使用可否といったkintoneの仕様については get_query_language_documentation ツールを実行して確認してください。

Inputs: app_id (required), query, fields.

update_app_aclC

kintoneアプリのアクセス権限を更新します

Inputs: app_id (required), rights (required), revision.

update_app_actionsC

kintoneアプリのアクション設定を更新します。各アクションにはfilterCondプロパティを指定して実行条件を設定できます。例: {"actions": {"アクション名": {"name": "アクション名", "index": "0", "filterCond": "Status = "対応中"", ...}}}

Inputs: app_id (required), actions (required), revision.

update_app_customizeC

kintoneアプリのJavaScript/CSSカスタマイズ設定を更新します

Inputs: app_id (required), scope (required), desktop, mobile, +1 more.

update_app_settingsC

kintoneアプリの一般設定を変更します

Inputs: app_id (required), name, description, icon, +9 more.

update_fieldA

既存のkintoneフィールドの設定を更新します。 注意: システムフィールドタイプ(CREATOR, MODIFIER, RECORD_NUMBER, CREATED_TIME, UPDATED_TIME)は更新できません。 例: { "app_id": 123, "field_code": "text_field", "field": { "type": "SINGLE_LINE_TEXT", "code": "text_field", "label": "更新後のラベル", "required": true } }

Inputs: app_id (required), field_code (required), field (required), revision.

update_field_aclC

kintoneアプリのフィールドのアクセス権限を更新します

Inputs: app_id (required), rights (required), revision.

update_form_layoutA

kintoneアプリのフォームレイアウトを変更します。トップレベルには ROW と SUBTABLE と GROUP を配置できます。SUBTABLEやGROUPはトップレベルに配置する必要があります。ROW内に配置することはできません。SUBTABLEをレイアウトに含める際には、fieldsプロパティでテーブル内に表示するフィールドとその順序を指定する必要があります。また、ルックアップフィールドをフォームに配置する際は 250 以上の幅を明示的に指定してください。

Inputs: app_id (required), layout (required), revision.

update_notificationsB

kintoneアプリの通知条件設定を更新します

Inputs: app_id (required), notifications (required), revision.

update_per_record_notificationsC

kintoneアプリのレコード単位の通知設定を更新します

Inputs: app_id (required), notifications (required), revision.

update_pluginsC

kintoneアプリのプラグイン設定を更新します

Inputs: app_id (required), plugins, revision.

update_process_managementC

kintoneアプリのプロセス管理設定を更新します

Inputs: app_id (required), enable (required), states, actions, +1 more.

update_recordA

kintoneアプリの既存レコードを更新します。更新前に`get_form_fields` や`get_form_layout` でフィールド構造とレイアウトを確認し、利用するフィールドコードが最新であることをチェックしてから操作してください。各フィールドは { "value": ... } の形式で指定します。 例1(レコードIDを指定して更新): { "app_id": 1, "record_id": 1001, "fields": { "文字列1行_0": { "value": "character string is changed" }, "テーブル_0": { "value": [{ "id": 1, "value": { "文字列1行_1": { "value": "character string is changed" } } }]} } }

例2(重複禁止フィールドを指定して更新): { "app_id": 1, "updateKey": { "field": "文字列1行_0", "value": "フィールドの値" }, "fields": { "文字列1行_1": { "value": "character string is changed" }, "テーブル_0": { "value": [{ "id": 1, "value": { "文字列1行_2": { "value": "character string is changed" } } }]} } } レコードIDまたはupdateKeyのいずれかを指定して更新できます。updateKeyを使用する場合は、重複禁止に設定されたフィールドを指定してください。

Inputs: app_id (required), fields (required), record_id, updateKey.

update_record_assigneesC

kintoneレコードの作業者を更新します(プロセス管理)

Inputs: app_id (required), record_id (required), assignees (required).

update_record_statusC

kintoneレコードのステータスを更新します(プロセス管理)

Inputs: app_id (required), record_id (required), action (required), assignee.

update_reminder_notificationsC

kintoneアプリのリマインダー通知設定を更新します

Inputs: app_id (required), notifications (required), revision.

update_reportsC

kintoneアプリのグラフ設定を更新します

Inputs: app_id (required), reports (required), revision.

update_spaceC

スペースの設定を更新します

Inputs: space_id (required), name, isPrivate, fixedMember, +1 more.

update_space_bodyC

スペースの本文を更新します

Inputs: space_id (required), body (required).

update_space_guestsC

スペースのゲストメンバーを更新します

Inputs: space_id (required), guests (required).

update_space_membersD

スペースメンバーを更新します

Inputs: space_id (required), members (required).

update_threadC

スレッドを更新します

Inputs: thread_id (required), name, body.

update_viewsC

kintoneアプリの一覧(ビュー)の設定を更新します

Inputs: app_id (required), views (required), revision.

upload_fileC

kintoneアプリにファイルをアップロードします

Inputs: file_name (required), file_data (required).

upsert_recordA

重複禁止フィールド(updateKey)またはレコードIDをキーに、存在すれば更新・無ければ作成する upsert 機能を使用します。実行前に get_form_fields や get_form_layout でフィールド構造を確認し、利用するフィールドコードが最新であることをチェックしてから実行してください。各フィールドは { "value": ... } の形式で指定します。

Inputs: app_id (required), updateKey (required), fields (required).

upsert_recordsA

複数レコードを一括Upsertします。各要素に重複禁止フィールド(updateKey)と更新内容を指定すると、存在するレコードは更新、存在しないレコードは新規作成されます。最大100件。

Inputs: app_id (required), records (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.9/5.0

    Scored across 79 tools

    Disambiguation3/5

    Most tools are clearly distinct by resource and action, but there is some overlap in documentation tools (e.g., get_documentation_tool_description, get_field_creation_tool_description, get_field_type_documentation) and between create_choice_field, create_lookup_field, create_reference_table_field which all generate field settings, potentially causing confusion. The large number of tools also increases the risk of misselection.

    Naming Consistency5/5

    Tool names consistently follow a verb_noun pattern with snake_case throughout (e.g., create_app, get_form_fields, update_record). There are no deviations in naming conventions, making the set predictable and readable.

    Tool Count2/5

    With 79 tools, the count is excessive for an MCP server, making it overwhelming and difficult for agents to navigate. While Kintone is a comprehensive platform, this many tools suggests poor scoping and could be streamlined into fewer, more general-purpose tools.

    Completeness5/5

    The tool set provides extensive coverage of Kintone's domain, including app management (create, deploy, update), record operations (CRUD, search, comments), field and layout management, permissions, notifications, spaces, threads, and documentation. There are no obvious gaps, and it supports full lifecycle workflows.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that enables Claude AI to interact with Xano databases, providing comprehensive database operations, file management, and request history tracking through a standardized interface.
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that allows AI applications to interact with Kibela knowledge bases, enabling users to search, create, update, and organize content through natural language.
      16
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      A lightweight MCP server that connects AI assistants to Kintone applications for managing records and automating business workflows. It enables secure authentication and natural language interaction for performing CRUD operations and querying data within the Kintone platform.
      10
      1
      MIT