0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IntelliJ+GitHub copilotでMCPを使う

Last updated at Posted at 2025-07-19

システム開発で生成AIを使うのが当たり前の時代

今や生成AIの話題は花盛り。
2023年の後半くらいから、chatGPTで話題に火がついてから急速に発展しています。
生成AIもハイプサイクルが訪れ失速するという見方もありましたが、失速するところかむしろ加速しているように思えます。

システム開発においても生成AIを使うのは当たり前になってきました。
生成AIはシステム開発における様々な問題解決、コーディングに最も効力を発揮すると思っています。(他の分野も、勿論そうですが・・・)
今や、システム開発において、生成AIを使うことが当たり前でそれを前提としたQCD(品質、コスト、納期)を求められるようになりました。
逆に、生成AIを使わないことはQCDを大きく落とすことになってしまいます。

IntelliJでMCP使いたいねん

現在、kotlin、spring、PostgreSQLでサーバサイドアプリを開発しています。
既存の.Net、Oracleで作られたレガシーなアプリのモダナイゼーションなんですが、

  • なんでもOracleのSQLでやろうとしている
  • プログラムコードでできそうなものでもSQLに寄せている(怒!)
  • Oracleのストアド(Pl/SQ)を使いまくり
  • 軽く、500行を超える、1000行クラスのSQLがザラにある (;^_^A
  • SQLにビジネスロジックを持ちすぎ

等々、まー、レガシーシステムにありがちな状況。(;^_^A

開発言語はkotlinなのでIDEは、今の所はIntelliJが唯一無二です。
近い将来、vscodeでもできるようになるようですが

サーバサイドはIDEがIntelliJでkotlin、以前からGitHub copilotは使用していました。
GitHub Copilotはpro(昔のindvisual)で10ドル/月と生成AIの中では比較的に安く、vscode、intelliJ、VisualStudio、Eclipse(最近、公式プラグインが出た)と色々なIDEで使えるのでお勧めです。

kotlinのソース上、PostgreSQLのSQL(てか、OracleのゴリゴリのSQLを直したやつ)が出現するので、そこを生成AIで何とかしたい。

で、

MCPを使って、kotlin上のコードのSQLと実際のDBの情報を組み合わせて生成AIにプロンプトを投げると、よりよい結果が得られるんじゃないか、と思ったのですが

このMCPの設定が、色々難しくて、各IDEにも依存するのか、vscode系(vscode、cursor)ではMCPは動くんですが、IntelliJではなかなか動いてくれませんでした
というか、それぞれのIDEのプラグインに依存するかもしれません。
GitHub Copilotプラグインはvscodeが一番早くで進んでいます。
IntelliJのプラグインはvscodeのよりも一歩も、二歩も遅れているように感じます。
で、最近IntelliJのプラグインもアップデートされ、やっとMCPが動くようになりました。

intelliJのGitHub Copilotプラグイン

今のバージョンは1.5.50-243です
スクリーンショット 2025-07-19 121907.png

MCPの設定

  1. intelliJのGitHub Copilot Chatのウィンドウを開きます
    スクリーンショット 2025-07-19 122118.png
    Agentモードにします。(Agentモードじゃないと設定画面出てこない)
    この画像では既にMCPが設定されているので、左端のツールのアイコンの横が 19/28になっていますが、最初は0/0になっているはずです。

  2. ツールのアイコンをクリックする
    スクリーンショット 2025-07-19 122532.png
    この画像では既にMCPが設定されているので一覧にでてきますが、最初は何も出てこないはずです

  3. 青い、Add More Tool・・・のリンクをクリックする
    すると、mcp.jsonがウィンドウに開きます。
    ホーム\AppData\Local\github-copilot\intellij\mcp.json
    にできている模様

  4. ここでmcp.jsonを編集
    上記のPostgreSQL MCPサーバのページによると色々な設定方法がありますが、これでうまくいきました。

{
        "postgresql-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@henkey/postgres-mcp-server",
                "postgresql://hoge:hoge@localhost:5432/hogehoge"
            ]
        }
    }
}

また、IDEにMCPは複数設定することも可能なので、複数の場合はこのように書きます

{
    "servers": {
        "memory": {
            "command": "npx",
            "args": [
                "-y",
                "@modelcontextprotocol/server-memory"
            ]
        },
        "postgresql-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@henkey/postgres-mcp-server",
                "postgresql://hoge:hoge@localhost:5432/hogehoge"
            ]
        }
    }
}

あとはAgentモードでプロンプトを入力して、ツールアイコンをクリックしてMCPで使うtool、使わないtoolをクリックして選択、送信するだけです。

MCPの未来

生成AIがシステム開発に於いて、強力な効果を発揮することは以前からわかっていましたが、生成AIも所詮は学習データに無いものから答えは導き出すことはできません。

そこは、プロンプトとして人間が与えなければいけないんですが、その量が膨大であったり、その情報が外部のシステム(googleDrive、gitHub等々)やクローズドなDBにあったりすると、いちいちそれを入力するのが面倒です。

MCPによって、それが一気に簡略化されたのは喜ばしいことです。2023年後半からの生成AIブームのウェーブ(波)に更に、MCPのウェーブ(波)が二段になってやってきたような感じです。

MCPもまだまだ発展途上で色々問題もあります

  • mcp.jsonの設定が難しい
  • 設定方法が各IDEによって、微妙に異なる

これらを解決するために既にvscodeではMCPがマーケットプレースのような仕組みを取り入れています。

vscodeの最新のMCPの設定方法はこちら。
vscodeの場合はmcp.jsonの定義の一部を外部化、inputsというのが使えるらしい。

おそらく、今後の他のIDEもこのようなマーケットプレィス方式で使いたいMCPをワンクリックでIDEに設定できるような仕組みを導入していくのではないでしょうか?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?