RaycastのMCP Integrationを試してみる
先日Mac用のランチャーであるRaycastのv1.98.0で、待望の MCP(Model Context Protocol) Integration が追加されました。
独自のAIモデルであるRay-1を開発したり、AI Extensionへの対応を行ったりと近年RaycastはAI方面は非常に力を入れている印象ですが、やはりMCP対応もすぐに来ましたね。
今回はGoで簡易的なMCPサーバーを実装しつつ、MCP Integrationをサクッと試してみました。
環境
- M4 MacBook Pro
- macOS: Sequoia 15.4.1
- Go: 1.23.4
- Raycast: v1.98.0
実装手順
- プロジェクト初期化
mkdir sample-mcp-server
cd sample-mcp-server
go mod init github.com/gosarami/sample-mcp-server
- 適当なMCPサーバーを書く
MCPサーバー実装用のGoのライブラリはいくつか存在しますが、その中でも github.com/mark3labs/mcp-go
が割とよく採用されていそうだったので、それをベースに実装してみます。
なお、執筆現在Raycast IntegrationではMCPサーバーとクライアント(AIエージェント等)が標準入出力を通じて通信する最も一般的な方式である stdio
しかサポートしていないので、それを前提に書きます。
package main
import (
"context"
"fmt"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
func main() {
// MCPサーバーの生成
s := server.NewMCPServer("hello-mcp", "1.0.0")
// ツール(機能)の追加
tool := mcp.NewTool("hello_world",
mcp.WithDescription("Say `Hello, World!`"),
)
s.AddTool(tool, helloHandler)
// サーバーの起動(標準入出力経由)
if err := server.ServeStdio(s); err != nil {
fmt.Printf("Server error: %v\n", err)
}
}
// リクエストを受けて "Hello, MCP World!" を返すハンドラ
func helloHandler(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
return mcp.NewToolResultText("Hello, MCP World!"), nil
}
今回はとにかく動作確認さえできれば良いので、 Hello, MCP World!
という文字列を単に返すだけの簡素なToolを用意しました。
ちなみに後から以下のライブラリ公式のQuickStartがあることを知ったので、こちらをベースにした方がMCPサーバーっぽい動きをより体感できるかもしれません。
- ビルド・デプロイ
実装が完了したら所定のPATHにデプロイします。
go build -o mcp-server
chmod +x mcp-server
sudo mv mcp-server /usr/local/bin/mcp-server
- MCPサーバー設定ファイルの編集
MCPサーバーを登録するために、以下の mcp-config.json
を用意します。
{
"mcpServers": {
"my-mcp-server": {
"type": "stdio",
"command": "/usr/local/bin/mcp-server",
"args": [],
"env": {}
}
}
}
- RaycastにMCPサーバーを登録する
RaycastにMCPサーバーを登録するには、MCP -> Import Servers
を選択します。
以下の画面でEnterを押し、Select File
から先ほど作成した mcp-config.json
を選択するとImportできます。
MCP -> Manage Servers
を選択し、以下のように今回作成したMCPサーバーが登録されていればOKです。
動作確認
先ほどのManage Servers画面でMCPサーバーを選択した状態でEnterすると、そのMCPサーバーにmentionが設定された状態でそのままAIプロンプトに遷移するため、以下のようにHello Worldツールを実行するように指示します。
@my-mcp-server hello_worldツールを実行しなさい
その後以下のようにツール実行の承認プロンプトが出てくるため、cmd + Enter
でApproveします。
ちなみにActionsの Confirm Always
から自動Approveするように構成することもできるっぽいです。
承認して以下のように Hello, MCP World!
と返れば成功です。
ちょっとハマったこととか
Importした mcp-config.json
が誤っている場合、直接どの箇所が間違っているかについてのエラーがRaycast上で詳しく出力されるわけではないので、原因を調査するのに若干時間がかかりました。
誤っている場合はManage Servers画面でMCPサーバーのステータスが赤くなるので、実行ファイルのパスやパーミッションが正しいかなど mcp-config.json
の内容を見直してみましょう。
なお小ネタとして、デバッグには公式のMCP Inspectorを利用するのが鉄板かなと思いますが、APIの動作確認によく使うPostmanもつい先日MCP対応されたので、今回触っている最中に以下のようにデバッグに使ってました。
最後に
普段メインでClaude Desktopなどを使っている場合はあまり出番がないかもしれませんが、RaycastでPro以上の課金をしてQuick AIなどを常用しているような方は今後よく使う機能だと思うので、ぜひ試してみてください。
Discussion