MCPについて調査&普段の開発でも実際に使えるのか、生産性が上がるか調査
初めてZennのスクラップという機能を使ってみます。
最近MCPに関しての話題がホットです。
そこで、実際の業務でも何かしら使えるのかどうか調査してみたいと思います。
とは言えども、
時間は有限、時は金なりなので、予め各セクションで制限時間を決めます。
制限時間の対象は概要調査。実際に手を動かしたり詳細調査などは概要調査次第で別途調整。
取り組む時間は下記
- そもそもMCPについて(入門と詳細の記事が2つあればベスト)30min
- 実際に普段開発でよく使うツールと MCP を合わせる事で何ができ、何が便利になるのか調査
- GitHub(30min)
- Notion(30min)
- Slack(30min)
合計、2hで行きましょう。
以降は各セクション毎にまとめていきます
良さげな入門を見つけたのでこの資料を見ます。
メモ
- 今まで会社内で使っていたツールを SaaS 化して他の会社でも使えるようにする(厳密には違うけど)
とか
- うちの店でしかこの味は出せねぇ秘伝のレシピを一般市場に販売します!
とか
まぁそんな感じ。
その為に MCPサーバー君がいると。
MCPサーバーを立てる事によって、そこに搭載されているモデル(AIエージェント君)を使ってそのサービスの機能が使えると。
APIで叩く的な
MCP の P はプロトコルの P なので、そのための規格って感じ。
(補足)プロトコルとは、インターネットのルール的なものです。
インフラとかやってる人だと耳にタコだが
HTTP、FTP、SMTP、TCP、UDPとか、そういうやつ。
これが分かりやすい。
MCPクライアントを使って、MCPサーバーに上がってるサービス(ツール)のCRUDなどが出来ると。
MCPクライアントは
- claude desktop
- Cline
- amazon bedrock(初めて聞きました)
- Cursor
などかな。
つまりは AI 内臓してる IDE なら良さそう。
まとめ
- 他人のRAGを自分の中に取り組みたい
- 自分の RAG を公開したい
とかの課題を解決するのが MCP と。
MCPサーバーをたてるのは現状では考えておらず、
公開されているMCPサーバーを使って何が出来るかを主軸に考えています。
そこで、下記の記事を拝見。MCPサーバーをまとめてくれている。
ここまでで
- そもそもMCPについて 30min
は一旦良いかと思うので、
- 実際に普段開発でよく使うツールと MCP を合わせる事で何ができ、何が便利になるのか調査
- GitHub(30min)
- Notion(30min)
- Slack(30min)
Notion編
の記事を見る。
これが主に出来る事ですかね。
- データベースのCRUD
- コメントを記載
- ユーザーの取得や全てのユーザーのリスト化?
- ブロック要素の取得
- ナレッジベースの検索(ただし下記の通りページタイトル検索でないとヒットしないっぽい。本文検索だとAPIの仕様的に厳しい?)
SearchのAPIは Search by titleしかなさそうなんですよね。Returns all pages or databases, excluding duplicated linked databases, that have titles that include the query param. とあるようにこのAPIでは、ページタイトルでしか検索出来ないのだと思います。
色々便利そうではあるが、検索の部分が厳しいかもしれない。
タイトルを覚えているなら Notion 開いてタイトル検索すれば解決してしまう。
あと、議事録の作成も便利ではある…が!
この手打ちとNotionを開いて該当のDBで作成だとなんだかんだ普通にNotion開いた方が早そう🤔
とはいえども、まだ Notion の MCPサーバーは出たばかり(4/7か4/8)なので、これからどこまで便利になるか次第ですかね!
今はまだ使わないですが、アンテナは貼っておきたい所。
現時点で、とてもいいかも!って思った機能はこちら
のサイトで
Cursorから開いているファイルの内容をNotionに転記するよう依頼してみました。
すると、Notionに内容の転記とコメントの追加が行われました!
とある。
例えば開発をしながらドキュメントなを作成する時、これが大変便利であると思う。
- 今実装した○○について○○データベースにマニュアルやナレッジを作成して
などが出来るのではないか。
ドキュメントを作成するのが苦手なエンジニア多い気がします(特に私の周りでは)
これがあると開発しながらドキュメントの作成が並行して出来るのは!
Slack編
が分かりやすい。
ざっくり下記の様な基本的な事が出来そう。
- 指定したチャンネルにメッセージを送信できる
- チャンネルの最近のメッセージを取得
- メッセージに絵文字リアクションを追加
- スレッド返信やスケジュールメッセージも出来そう
ただスケジュールメッセージはSlackの標準機能にもあるからスレッドの送信予約とかが出来るなら差別化出来そう。
個人的に良いな〜って思ったのは「メッセージの取得」ですかね。
例えば日々業務で活発なチャンネルはどうしても埋もれていってしまう。あとスレッドが数十件とか行くと「前に話したこういう話題どれだっけ?」となることもあります。
そこで、代わりに探してもらうとかも出来そうなのは良いなと。
GitHub編
の記事を見る。
PR や issue に対して CRUD、ブランチ作成、リポジトリ検索など幅広い事が出来そう。
下記は「https://apidog.com/jp/blog/github-mcp-server 」より引用
issue 系
- get_issue: オーナー、リポジトリ、イシュー番号を指定してイシューの詳細を取得します
- create_issue: カスタマイズ可能なタイトル、本文、担当者、およびラベルで新しいイシューを作成します
- add_issue_comment: 既存のイシューにコメントを追加します
- list_issues: 様々な基準でリポジトリのイシューをリストおよびフィルタリングします
- update_issue: 既存のイシューを更新します
- search_issues: GitHub全体でイシューを検索します
PR 系
- get_pull_request: PRの詳細を取得します
- list_pull_requests: リポジトリのPRをリストおよびフィルタリングします
- merge_pull_request: オープンプルリクエストをマージします
- get_pull_request_files: PRで変更されたファイルを取得します
- create_pull_request: 新しいPRを作成します
- update_pull_request_branch: 基本からの最新の変更でPRブランチを更新します
リポジトリ 系
- create_or_update_file: リポジトリ内の単一ファイルを変更します
- push_files: 複数のファイル変更を一度にコミットします
- search_repositories: GitHub全体でリポジトリを検索します
- create_repository: 新しいリポジトリを作成します
- get_file_contents: リポジトリからファイルの内容を取得します
- create_branch: リポジトリ内に新しいブランチを作成します
若干話が逸れますが、
.cursor/mcp.jsonはgithubにpushするとMCP経由でハッキングされる事もあるようなので、設定する人は必ず.gitignoreファイルに書く様に。
丁度時間もピッタリなので、一旦この辺で〆。
あくまで簡単にではありますが、
今話題のMCPについて調査、普段自分が使っているツールでもMCPサーバが公開しているので出来る事や実際に使っている人の記事を見てどこまで出来るか調査などが出来ました。
GitHubとSlackも便利ではありますが、個人的に Notion の MCPサーバーが一番使うイメージが出来ました。
特に開発しながら指定のデータベースに doc を作れるのは良いかも。。