Model Context Protocol (MCP) サーバを使ってみた・作ってみた
Model Context Protocol(MCP)は、AI(LLM)の能力を拡張するためのプロトコルです。このブログ記事では、以下について書きます。
- MCPの概要
- MCPを使ってみた
- MCPを作ってみた
MCPとは何か?
Model Context Protocolは、AI(GPTやClaudeなどのLLM)が外部システムやAPIと通信するための標準化されたプロトコルでAnthropic社が定めたものです。MCPを使用することで、AIアシスタントは以下のようなことが可能になります:
- インターネット上の情報にアクセスする
- データベースを検索する
- ファイルシステムを操作する
- 外部APIを呼び出す
- GitやGitHubなどの開発ツールを操作する
MCPの公式サイトの紹介文には以下のような概念図があります。
modelcontextprotocol.io introductionより引用
また以下のように「MCPはAIアプリケーションのUSB-Cみたいなものと考えてくれ(適当訳)」という表現もあります。
Think of MCP like a USB-C port for AI applications.
要はMCPを使って、いろいろな機能を手軽にLLMに追加したり、削除できるよということです。
MCPを使うとどういうメリットがあるかというと、長ったらしい.clinerules
や、特定の機能を使うための環境構築をブロックとして自由に組み込んだり、切り離したりできます。
Anthropic社が作ったプロトコルではありますが、オープンな規格なので、Claudeだけでなく、どんなLLMでも基本的には使うことができます。
私はCline(Roo Code)の環境でMCPを使ってみました。Clineに関しては以下記事参照ください。
MCPを使ってみた
実際にMCPを使ってみます。公式のMCPサーバのGitHubリポジトリにずらっと、MCPサーバが並んでいます。MCPサーバはオープンな規格で誰でも作れるので、公式以外にも個人で作った野良MCPサーバもたくさんネット上にあります。
さまざまなMCPサーバがあって、セットアップ方法をみるとClaude Desktopについて書いてあったり、セットアップ方法もDockerやらuvやらnpmやら様々で、最初はそもそもClineで使えるのかも分からず困惑しました。
結論から書くと、Cline(Roo Code)で公式MCPサーバは手軽に使うことができます。
MCPサーバには、MCPサーバのセットアップとMCPクライアントのセットアップの2つが必要なのですが、Clineで公式MCPサーバを使うときには、(MCPサーバによりますが)MCPサーバのセットアップはほぼ自動化されています。
ClineでのMCPサーバの設定
Cline(Roo Code)の以下のMCPサーバ設定画面で「MCP設定を編集」を選択します。
するとcline_mcp_setttings.json
が開くので、ここにMCPサーバの設定を書きます。本家のClineだと、MCPストアがあって、MCPを選択することで手軽にセットアップできるようなのですが、Roo Codeはまだこれからみたいなので、今は自分で手書きで設定する必要があります。
MCPサーバはMCPのルールに則っていれば、好きに作れてしまうので設定方法はMCP次第で無数にあるのですが、セットアップを手軽にしつつ、環境の競合を起きにくくするために、仮想環境を用いたものが便利ですし、推奨されていることが多いです。代表的なものはDocker、uv, npmを使ったものです。大体どれも必要になってくるので、環境をセットアップしておきましょう。
Docker環境のセットアップに関しては以下記事を参照ください。
uvのセットアップ方法は以下記事を参照ください。
npmに関しては以下記事を参照ください。
おすすめなのはDockerを使用するものです。公式のMCPサーバだと、PCにDocker環境さえセットアップされていたら、設定を書くと記載したDockerコマンドを実行してDockerイメージをダウンロードしてセットアップしてくれます。
PythonベースのMCPの場合は、多くがuvでのセットアップを推奨しています。uvを使うと手軽に仮想環境に環境構築できるので良いと思います。
今回は、brave-searchとfetchとgithubという3つのMCPサーバをインストールしてみます。このMCPサーバの選定とセットアップに関しては以下記事を参考にさせていただきました(というかこの記事がほぼ全て)
以下の設定をcline_mcp_setttings.json
にコピペします。<BRAVE_API_KEY>
<GITHUB_PERSONAL_ACCESS_TOKEN>
は、それぞれのサービスに登録して取得してください。方法は、ChatGPTとかに聞いてください。無料で取得できます(Brave Searchはクレジットカード登録が必要です)。
{
"mcpServers": {
"brave-search": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BRAVE_API_KEY",
"mcp/brave-search"
],
"env": {
"BRAVE_API_KEY": "<BRAVE_API_KEY>"
},
"alwaysAllow": [
"brave_web_search"
]
},
"fetch": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp/fetch"
],
"alwaysAllow": [
"fetch"
]
},
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"mcp/github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<GITHUB_PERSONAL_ACCESS_TOKEN>"
}
}
}
}
設定を追加すると、エラーがなければ、ClineのMCPサーバの設定画面に以下のようにMCPサーバの設定が追加され、サーバーのセットアップも自動でされます。
これで、MCPサーバとMCPクライアントの設定は完了です。自分の場合はそのまま使えましたが、念の為VS Codeエディタを再起動しておくとよいかもしれません。
設定がうまくいかないときは、MCPサーバのREADMEのURLをコピーして、Clineに以下のようにお願いすれば結構いい感じにしてくれます。
以下のMCPサーバをこのPCで使えるように設定してください。
@https://github.com/modelcontextprotocol/servers/xxxx
Dockerの MCP error -32000 エラーが出る場合
私の環境では、以下のようなエラーがでる場合がありました。
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. See 'docker run --help'. MCP error -32000: Connection closed
Rancher Desktopのバージョンアップをすることで動くようになりました。1.16.0と1.18.2で動作することを確認しました。
なお、Clineにエラーを調べてもらうことで問題発見できました。
色々なMCPサーバを使ってみる
実際にMCPサーバの威力を体感してみましょう。以下のようなプロンプトをClineに入力します。
BraveSearchでおすすめのMCP Serverを探して、リスト化して書き出して
すると、なんということでしょう。bravesearchで検索、検索したサイトをfetchでコンテンツ取得、githubでの検索と、複数のMCPサーバーを駆使して、レポートを作成してくれました。
実際にLLMが作成したレポートは以下です。そのままコピペしています。もはやジェネリックDeep Researchですね。
作成したMCPサーバのレポート
おすすめMCP Serverリスト
Model Context Protocol (MCP)は、AIモデルが外部ツールやデータソースと安全に対話するためのオープンプロトコルです。このリストでは、特に有用で人気のあるMCP Serverをカテゴリ別に紹介します。
目次
- 公式リファレンス実装サーバー
- ファイルシステムとバージョン管理
- データベースとストレージ
- 検索とウェブ関連
- コミュニケーションとノート取り
- AI・ML関連サービス
- 開発ツールと自動化
- その他の特殊用途サーバー
- MCP関連ツールとリソース
公式リファレンス実装サーバー
これらはAnthropicによって開発された公式のリファレンス実装です。
- Filesystem - ファイルシステムへの安全なアクセスを提供し、設定可能なアクセス制御機能を備えています
- GitHub - リポジトリ管理、ファイル操作、GitHub API統合を提供
- Brave Search - Brave検索APIを使用したウェブ検索と地域検索機能
- Fetch - ウェブコンテンツの取得と変換機能
- PostgreSQL - スキーマ検査機能を備えた読み取り専用データベースアクセス
- SQLite - データベース操作とビジネスインテリジェンス機能
- Memory - ナレッジグラフベースの永続的メモリシステム
ファイルシステムとバージョン管理
ファイルシステムやバージョン管理システムとの統合を提供するサーバー。
- Git - Gitリポジトリの読み取り、検索、操作ツール
- GitLab - GitLab APIを使用したプロジェクト管理
- Google Drive - Google Driveのファイルアクセスと検索機能
- Everything Search - Everything SDKを使用した高速Windowsファイル検索
データベースとストレージ
データベースやストレージシステムとの統合を提供するサーバー。
- MongoDB - MongoDBデータベース用のMCPサーバー
- MongoDB Lens - MongoDBデータベース用の機能豊富なMCPサーバー
- MySQL - 設定可能なアクセス制御とスキーマ検査機能を備えたMySQLデータベース統合
- BigQuery - スキーマ検査とクエリ機能を備えたBigQuery統合
- Snowflake - 読み書き機能とインサイト追跡機能を備えたSnowflakeデータベース統合
- Airtable - Airtableデータベースへの読み書きアクセス
検索とウェブ関連
検索エンジンやウェブ関連の機能を提供するサーバー。
- Puppeteer - ブラウザ自動化とウェブスクレイピング
- Kagi - Kagi検索API統合
- Exa - Exa AI検索API
- Playwright - Playwrightを使用したブラウザ自動化とウェブスクレイピング
- Google Maps - 位置情報サービス、経路案内、場所の詳細情報
コミュニケーションとノート取り
コミュニケーションツールやノート取りアプリとの統合を提供するサーバー。
- Slack - チャンネル管理とメッセージング機能
- Obsidian - Obsidianとの統合、ファイル管理、検索、コンテンツ操作ツール
- Notion - 個人のToDoリスト管理のためのNotion API統合
- Apple Notes - Apple Notesとの対話
- Sentry - Sentry.ioからの問題の取得と分析
AI・ML関連サービス
AI・ML関連サービスとの統合を提供するサーバー。
- OpenAI - MCPプロトコルを使用してClaudeから直接OpenAIモデルにクエリを実行
- Perplexity - Perplexityとの対話
- HuggingFace Spaces - HuggingFace Spacesの使用、画像、音声、テキストなどをサポート
- any-chat-completions-mcp - Perplexity、Groq、xAIなどのOpenAI SDK互換のChat Completions APIとのチャット
開発ツールと自動化
開発ツールや自動化機能を提供するサーバー。
- Docker - Dockerコンテナ、docker compose、ログの実行と管理
- Windows CLI - PowerShell、CMD、Git Bashシェルへの制御されたアクセスを可能にするWindowsシステム用の安全なコマンドライン対話
- Windows Control - nut.jsを使用したマウス、キーボード、ウィンドウ管理、スクリーンキャプチャなどのWindowsシステム操作のプログラム制御
- Kubernetes - Kubernetesクラスターへの接続とポッド、デプロイメント、サービスの管理
- Make - MakeのシナリオをAIアシスタント用の呼び出し可能なツールに変換
その他の特殊用途サーバー
特定の用途に特化したサーバー。
- Pandoc - Pandocを使用したシームレスな文書形式変換、Markdown、HTML、プレーンテキストをサポート、PDF、csv、docxなどの他の形式も開発中
- Data Exploration - .csvベースのデータセットに対する自律的なデータ探索、最小限の労力で知的な洞察を提供
- CoinCap - CoinCapの公開APIを通じてリアルタイムの暗号通貨市場データを提供するMCPサーバー
- Apple Shortcuts - Apple Shortcutsとの統合
- Vega-Lite - VegaLite形式とレンダラーを使用して取得したデータから視覚化を生成
MCP関連ツールとリソース
MCP Serverの管理や使用に役立つツールとリソース。
- mcp-cli - MCP Serverのインスペクタ
- mcp-client - MCP REST APIとCLIクライアント、OpenAI、Claude、Gemini、Ollamaなどをサポート
- MCP-Bridge - 既存のOpenAI互換クライアントでMCPを使用するためのOpenAIミドルウェアプロキシ
- MCP-Chatbot - ツールサーバーをOpenAI互換のLLM APIと統合するシンプルかつパワフルなCLIチャットボット
- MCP-Connect - クラウドベースのAIサービスがHTTP/HTTPSリクエストを介してローカルのStdioベースのMCPサーバーにアクセスできるようにするクライアント
- mcp-get - MCP Serverのインストールと管理のためのCLIツール
インストール方法
TypeScriptベースのサーバーはnpx
で直接使用できます。例えば:
npx -y @modelcontextprotocol/server-memory
Pythonベースのサーバーはuvxまたはpipで使用できます:
# uvxを使用
uvx mcp-server-git
# pipを使用
pip install mcp-server-git
python -m mcp_server_git
Claude Desktopでの設定例
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
参考リンク
使ってみたMCPサーバ
使ってみたらとりあえず列挙していきます。Dockerとuvとnpmがインストールされていることを前提としています。
設定ファイルはcline_mcp_setttings.json
を想定していますが、Cursorなどの他のMCPクライアントでも同様の設定で動くと思います。
Brave Search
設定と使用例は上で紹介したので省略。
fetch
設定と使用例は上で紹介したので省略。
GitHub
設定と使用例は上で紹介したので省略。
Slack
Slackに投稿したり、チャンネルの内容を読んだりできます。
READMEの通りに設定すればできました。MCPサーバはDockerでセットアップしました。
Botを作ってSlackサーバに追加して、xxxチャンネルにxxxと投稿してとか言えば、投稿してくれます。
YouTube
YouTubeの情報を取得できます。設定は以下の記事が参考になりました。
Macの場合はHomebrewでyt-dlp
を以下コマンドでインストールします。
$ brew install yt-dlp
あとは設定ファイルに以下を書き込むだけです。
{
"mcpServers": {
"youtube": {
"command": "npx",
"args": [
"-y",
"@anaisbetts/mcp-youtube"
]
}
}
}
Notion
NotionのAPIでできることは一通りできます。具体的には、読み書き検索等ができます。
あらかじめ、git cloneでNotion公式サーバのリポジトリをダウンロードしておきます。
Notionの設定は以下のとおりです。
- NotionのIntegrationsのページでIntegrationを作成してAPI Keyを取得
- MCPサーバでアクセスしたいページに、作成したIntegrationを接続
cline_mcp_setttings.json
に以下を書き込みます。
{
"mcpServers": {
"notionApi": {
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": {
"OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2022-06-28\" }"
}
}
}
}
Bearer ntn_****
のntn_****
のところに、NotionのAPI Keyを書き込んでください。
公式じゃないMCPサーバのセットアップ方法
公式MCPが出た今、あまり必要なさそうですが、一応残しておきます。
以下のページに詳しくセットアップ方法が記載されています。
MCPサーバのセットアップ方法は以下です。
$ git clone https://github.com/suekou/mcp-notion-server.git
$ cd mcp-notion-server/notion
$ npm install
$ npm run build
$ npm link
Notionの設定は以下のとおりです。
- NotionのIntegrationsのページでIntegrationを作成してAPI Keyを取得
- MCPサーバでアクセスしたいページに、作成したIntegrationを接続
cline_mcp_setttings.json
に以下を書き込みます。
{
"mcpServers": {
"notion": {
"command": "node",
"args": [
"buildしたファイルのパス"
],
"env": {
"NOTION_API_TOKEN": "先程取得したトークン"
}
}
}
}
buildしたファイルのパスはMCPサーバをおいた場所です。例えば"/Users/karaage/mcp-notion-server/notion"
といった形で指定してください(mcp-notion-serverでなく、その下のnotionまで指定する必要があります)。
ArXiv MCP Server
uvさえインストールされていたら、特別な事前設定は不要です。cline_mcp_setttings.json
に以下を書き込みます。
<file path>
には論文を置く、ファイルの絶対パスを指定します。
{
"mcpServers": {
"arxiv-mcp-server": {
"command": "uv",
"args": [
"tool",
"run",
"arxiv-mcp-server",
"--storage-path", "<file path>"
]
}
}
}
論文を探したり、ダウンロードしたりできます。ダウンロードされた論文はMarkdown形式で保存されます。
MarkItDown-MCP
パワーポイントやPDFのファイルをMarkdownに変換できます。Microsoftが公式のMCPサーバを出しています。
公式だと、Dockerのセットアップ方法が書いてありますが、対象のファイルがあるパスをマウントしないと使えないのでuv tool
でセットアップするのがよいでしょう。
設定ファイルに以下を書き込めばOKです。
{
"mcpServers": {
"markitdown": {
"command": "uv",
"args": [
"tool",
"run",
"markitdown-mcp"
]
}
}
}
Playwright MCP
ブラウザを操作して色々できるソフトです。
以下設定を書くだけで手軽にセットアップできます。主にブラウザを使ってのソフトのテストなどの自動化に使います。
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
}
}
}
FreeCAD MCP
FreeCADというCADソフトのMCPサーバーです。これによりAIモデリングができます。以下が作ってみた様子です。データは、3Dプリンタで出力もできました。
セットアップは以下記事とGitHubリポジトリのREADMEを参照すればOKです。
上記からの変更点としては、Mac環境で試したのですが、FreeCADのインストールはHomebrewを使えればbrew install freecad
が手軽です。
アドオン(Mod)のインストール場所ですが、READMEにはMacだと ~/Library/Application Support/FreeCAD/Mod/
と記載されていましたが、私の環境では駄目で~/Library/Preferences/FreeCAD/Mod/
以下にFreeCADMCPフォルダをコピーすることでセットアップできました。
cline_mcp_setttings.json
には、README通り、以下を書き込めばOKです。
{
"mcpServers": {
"freecad": {
"command": "uvx",
"args": [
"freecad-mcp"
]
}
}
}
BlenderMCP
無料3DCG制作ツールBlenderのMCPサーバです。
以下のように簡単に3DCGが作成できます。
以下のnpaka先生の記事が分かりやすいですので、設定は以下を参照ください。
Blenderのインストールは、MacでHomebrewが使えれば以下コマンドでOKです。
$ brew install blender
AbletonMCP
Ableton LiveというDTMアプリ(作曲・演奏アプリ)をコントロールできるMCPサーバです。自分がClineとMCPサーバを使って作ってみた曲です。
セットアップ方法は、Ableton Live側は、ソフトをインストールした後(私はひとまず30日の体験版で試しました)、GitHubリポジトリのREADMEに書いてあるとおり、Contents/App-Resources/MIDI Remote Scripts/
にAbletonMCP_Remote_ScriptをフォルダごとコピーすればOKです。Ableton Liveのフォルダは、私の場合は以下コマンドで開けました。
$ open /Applications/Ableton\ Live\ 12\ Trial.app/Contents/App-Resources/MIDI\ Remote\ Scripts
Cline側はcline_mcp_setttings.json
にREADME通り、以下の通り記載すればOKです。
{
"mcpServers": {
"AbletonMCP": {
"command": "uvx",
"args": [
"ableton-mcp"
]
}
}
}
以下記事が詳しく書いてあり参考になります。
Spotify
git clone https://github.com/varunneal/spotify-mcp
でダウンロードした後、cline_mcp_setttings.json
に以下を書き込みます。
"spotify": {
"command": "uv",
"args": [
"--directory",
"/path/to/spotify_mcp",
"run",
"spotify-mcp"
],
"env": {
"SPOTIFY_CLIENT_ID": "YOUR_CLIENT_ID",
"SPOTIFY_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
"SPOTIFY_REDIRECT_URI": "http://localhost:8888"
}
}
/path/to/spotify_mcp
にはgit cloneしたspotify-mcp
の絶対パスを直接記入します。
SpotifyのCLIENT IDとCLIENT SECRET IDの取得方法は以下記事が参考になりました。
リダイレクトURLは、かならず"http://localhost:8888"
にしてください。"http://localhost:8888/"
だとだめです。cline_mcp_setttings.json
の設定と必ず同じにしてください(私はハマりました)。
file-search-mcp
ファイル検索ができるMCPです。以下記事を参考にセットアップします。
cline_mcp_setttings.json
の例は以下です。
"file-search": {
"command": "<リポジトリへのパス>/target/release/file-search-mcp",
"args": [],
"env": {}
}
Sequential Thinking MCP Server
段階的な思考ができるようになるMCPです。
以下コマンドでDockerイメージをPullしましょう。
$ docker pull mcp/sequentialthinking
あとは、cline_mcp_setttings.json
を以下の通り設定しましょう。
{
"mcpServers": {
"sequentialthinking": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"mcp/sequentialthinking"
]
}
}
}
試してないけど面白そうなMCPサーバ
試したら追記します。
JLCPCB Parts MCP Server
JLCPCBのPCBA向けの、部品探しを補助するMCPサーバ。
JR東日本 遅延情報 MCPサーバー
便利そうです。Webサービスに普通に欲しいですね。
MCPサーバを作る:Git/GitHub MCP サーバー
既存のMCPサーバーは多くの機能を提供していますが、特定のニーズに合わせて独自のMCPサーバーを作成することもできます。今回は、GitとGitHubの操作を統合したMCPサーバーを作成してみました。
なぜ独自のGit/GitHub MCPサーバーを作ったのか
GitとGitHubのMCPサーバーは既にそれぞれ存在していましたが、現状、Pull Requestを作成して、レビューするといった流れをスムーズに実現できなかったので、ローカルのGitリポジトリの操作と、GitHubのAPIを組み合わせて使用できるMCPサーバーを作ってみました。
といいつつ、実際は自分の理解のための練習という位置づけがほとんどです。機能的には以下となります。
- ファイルのステージング、コミット、プッシュなどの基本的なGit操作
- GitHubのPull Request作成とレビュー機能
- PRテンプレートの自動入力機能
今までは、長ったらしい.clinerules
とGitHub CLI(gh)
により実現していましたが、このMCPサーバーを使えば、手軽にLLMを使ったgit操作、Pull Request作成、Pull Requestレビューが実現できます。
MCPサーバの作り方
おおよそ予想つくと思いますが、Clineに作ってもらいました。プロンプトは以下みたいな感じです。
以下のような`.clinerules`をMCPサーバー化したいです。お願いします。
### Git操作
- gitの操作はgit statusでステータス確認しながら慎重に行ってください
- git管理されているファイルは、git mv や git rm を使って移動削除してください
### Pull Request(PR)
#### PR作成時
- PRを要望されたら、gitコマンドで差分を確認したうえで、`gh pr` コマンドを使ってPRを作成してください
- PRのdescriptionは .github/pull_request_template.md を読み取ってフォーマットを合わせてください
#### PRレビュー時
以下の手順でファイルごとにコメントを付けてください:
1. チェックする観点は .github/pull_request_template.md を参照してください
2. PRの差分を確認:
```bash
gh pr diff <PR番号>
```
3. ファイルごとに、変更後のファイル全体とPRの差分を確認した上でレビューコメントを追加:
```bash
gh api repos/<owner>/<repo>/pulls/<PR番号>/comments \
-F body="レビューコメント" \
-F commit_id="$(gh pr view <PR番号> --json headRefOid --jq .headRefOid)" \
-F path="対象ファイルのパス" \
-F position=<diffの行番号>
```
パラメータの説明:
- position: diffの行番号(新規ファイルの場合は1から開始)
- commit_id: PRの最新のコミットIDを自動取得
こんな無茶振りで作れるのか??と思ったのですが、ちゃんと作れました。ビックリです。といっても、まともに動くようにするのは、それなりに大変でした。そもそもNode.jsもJavascriptも全くわからないので。作る途中でLLMに聞きながら、なんとなく理解しながら作りました。それでもなんとか作れました。
作ったMCPサーバは以下となります。公式のMCPサーバのリポジトリをforkしたものに追加しています。
自作MCPサーバのセットアップ方法
今回は公式のMCPサーバでないので、自分でMCPサーバからセットアップする必要があります。npmを使います。
MCPサーバのセットアップは以下の通りです。
# リポジトリのディレクトリに移動
git clone https://github.com/karaage0703/mcp-servers.git
cd mcp-servers/src/git-github
# 依存関係をインストール
npm install
# ビルド
npm run build
# グローバルにインストール
npm install -g .
クライアント(Cline)の設定はcline_mcp_setttings.json
に以下の通り記載します。
{
"mcpServers": {
"git-github": {
"command": "git-github",
"env": {
"GITHUB_TOKEN": "your-github-token-here"
},
"disabled": false,
"alwaysAllow": []
}
}
}
これで、VS Codeエディタを再起動すれば使えるようになります。
自作MCPサーバ使用例
このMCPサーバーを使用すると、Clineは以下のようにGitとGitHubの操作を行うことができます:
ユーザー: リポジトリの状態を確認してください。
Claude: リポジトリの状態を確認します。
<use_mcp_tool>
<server_name>git-github</server_name>
<tool_name>git_status</tool_name>
<arguments>
{
"path": "/path/to/your/repo"
}
</arguments>
</use_mcp_tool>
リポジトリの状態は以下の通りです:
- 変更されたファイル: src/index.ts
- 未追跡のファイル: docs/new-feature.md
変更をステージングに追加しますか?
ユーザー: はい、変更をステージングに追加し、コミットしてください。
Claude: 変更をステージングに追加します。
<use_mcp_tool>
<server_name>git-github</server_name>
<tool_name>git_add</tool_name>
<arguments>
{
"path": "/path/to/your/repo",
"files": ["."]
}
</arguments>
</use_mcp_tool>
変更がステージングに追加されました。次にコミットします。
<use_mcp_tool>
<server_name>git-github</server_name>
<tool_name>git_commit</tool_name>
<arguments>
{
"path": "/path/to/your/repo",
"message": "新機能の実装と既存コードの修正"
}
</arguments>
</use_mcp_tool>
コミットが完了しました。コミットハッシュ: a1b2c3d4e5f6...
ユーザー: Pull Requestを作成してください。
Claude: Pull Requestを作成します。まず、現在のブランチをリモートにプッシュします。
<use_mcp_tool>
<server_name>git-github</server_name>
<tool_name>git_push</tool_name>
<arguments>
{
"path": "/path/to/your/repo",
"branch": "feature/new-feature",
"remote": "origin"
}
</arguments>
</use_mcp_tool>
ブランチがリモートにプッシュされました。次に、Pull Requestを作成します。
<use_mcp_tool>
<server_name>git-github</server_name>
<tool_name>github_create_pr</tool_name>
<arguments>
{
"path": "/path/to/your/repo",
"title": "新機能の追加",
"body": "このPRでは新しい機能を追加しています。",
"head": "feature/new-feature",
"base": "main",
"use_template": true,
"auto_fill": true,
"reason": "ユーザーからの要望に応えるため",
"test_info": "ローカル環境でテスト済み"
}
</arguments>
</use_mcp_tool>
Pull Requestが作成されました。URL: https://github.com/username/repo/pull/123
最小限のMCPサーバー
理解を深めるために、最小限の構成でMCPサーバーを使ってみました(Python SDKを使用しています)。こちらもよろしければ参考にしてみてください。
まとめ
Model Context Protocol(MCP)について、概要に加えて、使い方と作り方を簡単に紹介しました。実際に作ってみて、MCPが少しだけ理解できたような気がします。
実際、Clineにいろいろなことをやらせたりしているのですが、やりたいことに応じて.clinerules
を書き換えたり、リポジトリを用意したりするのも手間ですし、機能同士を組み合わせるみたいなことができないので、MCPを使って手軽に機能拡張できるのは、なかなか良いなと感じました。
MCP自体が、デファクトになっていくかはまだわからないですが、このようにLLMの機能をUSBのように手軽に追加したり削除したりする仕組み自体は必要になるんだろうなと実感していますし、今だとそのような世界観を実現するのはMCPがかなり有力そうだなと思いました。
引き続き、MCPを試したり作ってみたいなと思います。
関連記事
参考リンク
変更履歴
- 2025/04/15 最小限のMCPサーバについて追記
- 2025/04/13 公式NotionMCPサーバについて記載・markitdown-mcpについて記載
- 2025/04/06 参考リンク追記
- 2025/03/24 YouTube, NotionのMCPサーバの接続に関して追記
Discussion