mcp
Model Context Protocol (MCP)
https://modelcontextprotocol.io/introduction
MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools.
llmにコンテキスト提供するやつ。AIに他のデータモデルやツールにアクセスできるようにする。
mcpがあるとcopilotとかが他のデータソースにアクセスしたりできるのでAI自体が動ける幅拡がるみたいな感じかな。
インストール方法いくつかあるみたい
http
npx
pip
docker
最近だとvercelがmcpを簡単に作れるadapterみたいなの作ってるし、http以外はローカルでやる必要のあるものだから今後httpが主流になりそう感ある。
Streamable HTTPってのが使われているのかな
多分httpとかだと認証もそのページでできたりするっぽいからトークン取得とか必要なかったりするのかな。ようわからん。
Server Sent Events (SSE)とはまた別なのかな。
まぁここら辺vercelのmcp-adapter使えばあんまり難しいこと考えなくても良さそう。
mcp-adapterのreadmeにもクライアントのバージョンによってstreamable http使えないならmcp-remoteでproxyしろみたいなこと書いてある基本的にはcommandとか使わずにこのurlだけで対応できるのが便利ってのとmcp-adapterってvercelが出してるやつ使えば簡単に作れるってことかな。
https://github.com/vercel/mcp-adapter#connecting-to-your-mcp-server-via-stdio
Depending on the version of your client application, remote MCP's may need to use mcp-remote to proxy Streamble HTTP into stdio.
If your client supports it, it's recommended to connect to the Streamable HTTP endpoint directly such as:
"remote-example": {
"url": "http://localhost:3000/api/mcp",
}
Due to client versions, and varying levels of support, you can list mcp-remote as the method for end users to connect to your MCP server.
The above set up snippet will then look like:
"remote-example": {
"command": "npx",
"args": [
"mcp-remote",
"-y",
"http://localhost:3000/api/mcp" // this is your app/api/transport/route.ts
]
}
https://speakerdeck.com/minorun365/yasasiimcpru-men
流れ的にまず、ローカル環境にインストールして使うstdio(これスタンダードIOってことかな)の方法が主流で、最近はリモートMCPってのが出てきて、SSEで通信するものが旧で最近にstreamable httpが出てるみたいな感じ。
社内の機密情報とかはhttpとかだとちゃんと認証入れたり、そもそもアクセスできないようにしないと怖いね。
とはいえ、awsにあげたりとかしてaws側で弾けばいいからそこら辺は普通のアプリケーションと変わらずにできそうかな。mcp使う時の認証はよくわからんけど。
アクセストークン必要みたいな外部のサービスのAPIとかもそのサービスで認証して貰わないとこっちのトークン使われて悪用される可能性もあるから気軽になんでもhttpで公開はやめた方がいい気もする。
そういう意味では全然ローカル環境にインストールさせて使うmcpってのも全然活用できそう。トークン貼り付けるだけでよかったりするし。
トークン貼り付けてmcp-remote使ったら別にhttpでも送れるみたいなのはできるんかな。よう知らん。
広い意味ではragをするためとも言えそう。
というかベクトルDB作って自社データの情報を渡すってのもいつかやりたいよねー
これを他からもアクセスしやすくって形ではmcpで通信できるようにしてあげたら便利か
将来的に自分でmcp作ってみて、ai agentも作って通信させてみたいな。
携帯で全部操作出来るとか面白そう。けど結局はリソースが無いとなんの意味も無いよな。apiあるやつのmcp作ってみてaiがそれから分析するみたいなのも悪くは無いよねー。とりま自分のgptのチャット履歴保存してmcpにしてみるか
まぁ一応既存のmcpを組み合わせたai agentみたいなのを作って指示させて自動化するみたいなアプリケーションとかは作れそうやけど
どうやるのか知らんけど、ベクトルDBとか用意したりするのかなragとか使ったりとか正味よくわからんがそこらへんのai agentとかあたりは一度作ってみないと分かんないねぇー。
作ってないからイメージするのもむずい。
https://speakerdeck.com/shuntaka/introduction-to-mcp