[MCP]Githubリポジトリを消せるのか検証
概要
MCPでGit操作ができるようだが、使ったことがなったので使ってみた。
全然知識ないなりに気になったのは、リポジトリの削除などの危険な操作を行ったときにどういう挙動になるのか。
せめて削除の時にはほんとにいいの?みたいな確認レスポンスは出してくれることを期待して試してみた。
結論
消えない。
GithubのMCPにリポジトリ等々を削除する機能は用意されていない。
なので、「普通」は消えない。
MCPの構成を作成
Cursor、Docker(MCPサーバー)
で検証。
基本的にはReadmeの通りに作成すればOK!
servers/src/github at main · modelcontextprotocol/servers
簡単に手順を書くと以下でできる
MCPサーバーを立てる
- mcp serverをgit clone しておく
- server の中のgithub/mcpのdockerをビルドして実行する
Cursorに設定を行う
- git からaccess token を取得しておく(※repo権限はつけておくこと!)
- File → preferences → Cursor Settings で設定画面を起動
- MCP → Add new global MCP server に設定と公式リファレンスに書いてある設定をgit access tokenだけ書き換えて記載する
設定完了!!!
まずは手始めにリポジトリを作ってみよう
まずはプロンプトでリポジトリの作成を依頼、、どうやら成功したみたい
ほんとに作成されているのか見てみると、ちゃんと作成されていました
自然言語で作られる時点でなんか怖い感じがありました、、
本題、リポジトリを消してみる
どうにかして消してと依頼してみる
早速削除を依頼してみると、、
どうやら削除のAPI自体が用意されてなかったみたい(笑)
実際ドキュメントを確認してみると、作成関連の機能はあるが削除の機能というのは存在していないことが分かった。
ドキュメントはちゃんと最初に読もうねって話。ただ実際やってみて消えないことが分かったのでとりあえず安心できた!!
いきなりにアップデートされて削除機能が付きませんように、、
もう一回どうにかして消してと依頼してみる
もしかしたら無理やり消してくれとお願いしたら今ある機能で何とかけしてくるんじゃないかと予想、とりあえずやってみよう!
※いったん適当にNextのプロジェクトを入れておいた
プロンプトで「どうにかして削除するのと同様の事をすることはできない?」と依頼してみるとReadmeの中身を書き換えてきた。
まあ、、これくらいなら、、
次に「どうにかしてリポジトリを空にして」と再度お願いしてみる、
最終手段的にすると予想はしていたが、rmで全部からにしてコミットしてプッシュするという手段で対応してきた
実際にmainブランチしかないサンプルプロジェクトであるため、空になった(笑)
まあMCPでリポジトリを削除するみたいな破壊的なことではないので、いいでしょうという感じ。
コマンドについてはCursorが実行時確認があるのでそこで回避できるし、
実際のプロジェクトならmainに直プッシュなんて基本出来ないように設定するだろうし、
あまり関係ないかもしれない。
ただし!Cursorのコマンド自動実行モードをONにしているとMCPの機能の実行もrmコマンドも勝手に実行されてしまうので、改めて注意しなければならないなと思った。
Discussion