🗂

RaycastのMCP Integrationを試してみる

に公開

先日Mac用のランチャーであるRaycastのv1.98.0で、待望の MCP(Model Context Protocol) Integration が追加されました。

https://www.raycast.com/changelog/1-98-0
https://manual.raycast.com/model-context-protocol

独自の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 しかサポートしていないので、それを前提に書きます。

main.go
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サーバーっぽい動きをより体感できるかもしれません。

https://github.com/mark3labs/mcp-go?tab=readme-ov-file#quickstart

  • ビルド・デプロイ

実装が完了したら所定のPATHにデプロイします。

go build -o mcp-server
chmod +x mcp-server
sudo mv mcp-server /usr/local/bin/mcp-server
  • MCPサーバー設定ファイルの編集

MCPサーバーを登録するために、以下の mcp-config.json を用意します。

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