kintoneローカルMCPサーバーのテストを行いました

こんにちは。kintone拡張基盤チームQAの massan です。今回は、今年2025年8月にリリースされたkintoneローカルMCPサーバー(以下 kinone MCPサーバー)のQAプロセスについてご紹介します。

kintone MCPサーバーの紹介

拡張基盤チームでは現在、Claude DesktopやCursorといった生成AIからkintoneを操作できるMCPサーバーを公開しています。8月の初回リリースから機能追加を経て、現バージョンではアプリ検索から基本的なレコード操作、アプリ作成までをサポートしています。

cybozu.dev

開発が決まった頃からQAが参加しており、MCPサーバーについての学習をしたり、サポートする機能の明確化や、リリース前までのテストなどを行っていました。

kintone MCPサーバーのQAプロセス

QAプロセスとしては主に以下のものが行われました。

  • PdE(プロダクトエンジニア)によるコードレビュー、ユニットテストの実装
  • インスペクタを使った動作確認
  • QAによる手動テスト

チームではユニットや結合レベルでのテストは本開発に限らず基本的にPdEにお任せしており、QAはあまり関与していません。QAが回帰テストの設計をしているときなどに「こういう観点も繰り返し見たい」とチームに共有し、もしその観点をカバーする自動テストがなければ追加を検討する程度です。

インスペクタは、多くのMCPサーバー開発の場で行われている事例を参考に使用しました。今回の開発では、機能テスト前の動作確認や、生成AIと接続した状態の機能テストで挙動がおかしいとき、原因の切り分け等で大いに役立ちました。

QAによる手動テスト

開発中には担保するべき品質特性の整理やセキュリティに関してPSIRTとの相談も行いましたが、ここでは手動での機能テストのご紹介をします。AIが多少コードを書けるようになり、テスト設計や自動テスト実装もしてくれる昨今ですが、今回のように要件を固めながら進めるプロジェクト、ドメイン知識をもったテストが必要な状況で人間のQAがいる意義はあったのではないかと思います。

自動テストでkintone MCPサーバー単体の機能、インスペクタを使った動作確認でリクエストとレスポンスの動作は概ね担保されているため、手動テストでは以下のことを重点的に行いました。

  • 生成AIツールとkintone MCPサーバーが接続できる(セットアップができる)こと
  • 生成AIツールがkintone MCPサーバーを使いこなせること

要はユーザーが使う方法でテストする、といういつも通りのアプローチです。手探りの中始めたテストですが、次第にリクエストとレスポンスがAPI通りに得られるからといって生成AIツールがMCPサーバーを使いこなしてくれるわけではないということを実感しました。機能が意図した通りに動くからといって必ずしもユーザーが快適に使えるわけではない、といった具合です。これは生成AIツールがkintone自体の仕様に精通しているわけではないということに起因していそうです。複雑な必須パラメータをもつフィールドの設定や小さな記法の誤りによるエラーの切り分けは、人間がブラウザ上で確認したり普段の経験をもとに直接パラメータを与えてしまったりした方が処理が早い場合もありました。これらを初回リリース前にすべて改善することは現実的ではなかったため、生成AIツールができる操作、ドメイン知識の補助があればできる操作、ほとんど難しい操作の探索も兼ねてテストを進めました。

そのようなテスト中の学習から観点を以下のように整理し、スコープを整理したりチームへのフィードバックを行いました。

  • Claude Desktop以外の生成AIツールやエンジンで使えるか
  • kintone内やkintoneヘルプ内の表現で指示を出して操作できるか
  • ツール実行時になんらかのエラーになったとき、生成AIが自力で解決できるか

見つかった挙動としては例えば、APIで数値型・文字列型いずれでも受け付けるパラメータがClaude Desktop以外ではエラーの繰り返しとなって使いこなせないなどがあり、Claude以外での使用を妨げるとして初回リリース前に修正しました。他にもテストやフィードバックで見つかった使用性の悪い挙動は今後の開発の情報源にもなるため、改修の有無にかかわらず一覧化して管理しています。

おわりに・kintone MCPサーバーの推しの使い方

いかがだったでしょうか。

レコードの分析やアプリの作成などある程度いろんな使い方ができるkintone MCPサーバーですが、個人的な一推しの使い方は「フィールド設定をまとめて編集」です💐

Cursorのスクリーンショット。kintoneのフィールドコードを変更する指示と、作業結果としてのフィールドコード一覧が抜粋されている。

フィールドコードの一括変更例(指示と作業結果を抜粋)

アプリにフィールドを配置した後にフィールドコードを一つずつ適切なものに変えたり…やっぱりあのアプリと揃えた設定にしたかったり…など、ブラウザ操作でするとクリックや画面遷移、ヒューマンエラーで辟易するような作業も指示一つでやってもらえるのがお気に入りポイントです。

一般的なMCPサーバーというツール自体、まだ認知度も低く利用者層が限られているというのが現状です。kintone MCPサーバーの機能も限られてはいますが、いただいたフィードバックも参考に機能拡充していくつもりですので、少しでも便利に使っていただける場面があれば幸いです。

機能に関してお気づきの点があればぜひissueにお寄せください。

https://github.com/kintone/mcp-server/issues