Raycast AI ExtensionsでMCPを組み合わせる方法

こんにちは。せーじと申します。元々はWebやバックエンド、時々アプリの開発をしておりましたが、最近はSREをしています。
私は業務や私生活で日常的にRaycastを使っています。

今回はクローズドな勉強会で「[MCPを利用するインターフェースとしてのRaycastのポテンシャル](https://n-seiji.github.io/slides/ai-dev-day/)」という内容で発表した際に、反響が大きかったのでその内容を記事にまとめました。

この記事で紹介することは
・RaycastでMCPを使う方法
・登録したMCPを「Raycast AI Extensionsから使う」
という2点について紹介します。

Raycastについてまだご存知ない方はこちらの記事を御覧ください。

https://qiita.com/se_eiji/items/f866bba5f5134e9875e6

# RaycastでMCPをinstallする

Rayacst v1.98.0でMCPが公式サポートされました。

https://www.raycast.com/changelog/1-98-0

これはcursor等と同様に、色々なところが出しているMCPサーバをRaycastに登録して簡単に使えるようにするというものです。

機能詳細↓

https://manual.raycast.com/model-context-protocol

使い方は至って簡単で

Raycast で install serverを呼び出し、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/5e4c4db9-db6b-4b24-a017-95ebe703e4cf.png)


こんなjson(下記の記事から拝借しました)を

https://zenn.dev/lapras_inc/articles/lapras-mcp-server

```json
{
  "mcpServers": {
    "lapras": {
      "command": "npx",
      "args": [
        "-y",
        "@lapras-inc/lapras-mcp-server"
      ],
      "env": {
        "LAPRAS_API_KEY": "<YOUR_LAPRAS_API_KEY>"
      }
    }
  }
}
```

下記のような形で入力するとすぐにmcpサーバが利用できます。
```text
command => command(使うcommandによってはフルパスを指定する必要があります※後述)
args => スペース区切りで入力
env => Environmentに登録
```


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/58c5a008-7ebd-4419-b91d-333f8a4ad68d.png)

:::note warn
`npx`以外の例えば`uvx`を利用する場合などでサーバをinstallしようとしたときにエラーが発生する場合はフルパス(`which uvx`とかの結果)を指定するとエラーが解消します。
:::

mcpサーバを利用するときにllmはどこの何を利用しているかというと、Raycastを通して利用できるllmから任意のものを指定して利用できます。

RaycastにはAIが標準で組み込まれており、様々なモデルを利用できます。もともとは課金ユーザのみ利用できる機能でしたが、今は無料ユーザでも50req / (たしか) 1day まで無料で利用できます。

https://qiita.com/se_eiji/items/ca51a200a675b8c45574

また、最近ではlocalに起動したモデルも利用できるようになりました。こちらは無料ユーザでも無限に利用できます。

:::note info
localに起動したモデルは公式でサポートされているのは[ollama](https://ollama.com/download)でinstallしたモデルのみです。詳しくは下記のchangelogを参照してください。
:::

https://www.raycast.com/changelog/1-99-0

InstallしたMCPは Manage Serverから確認&管理が簡単にできます。

Raycastを通せば、もはやエンジニアでなくてもMCPを利用できますね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/38c08ddf-5f99-4b08-8b3a-618d4474ab53.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/7022ed8b-d616-4b17-be6a-0b73c23e94b2.png)

Ryacastが公式にサポートしているMCPサーバをいくつか紹介してくれています。

ここに乗ってるものであれば、利用でそこまでつまずくことはないと思います。

https://www.raycast.com/raycast/model-context-protocol-registry


# RaycastでMCPを使う方法

Raycastでmcpを利用する方法は2つあります。

## 専用のチャットを開く

mcpに登録した名前をRaycast上で検索するとmcpサーバが出てくるのでそちらを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/98a5a861-047f-4922-864e-6b45dde09881.png)

選択するとチャットが開くのでなにか入力しsubmit。

実行するかどうかの確認が出てくるので`cmd+Enter`でConfirmすると

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/0bb00ac5-1f2b-47c3-88e3-16600ddbd085.png)

返却が帰ってきます。このまま続けて質問をすることも可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/6aeaea90-27d5-4e44-bcad-06f4c5c738c4.png)


## MCPをAI Exntesionsを使って呼び出す

RaycastにはAI Extensionという機能があります。

https://manual.raycast.com/ai-extensions

至ってシンプルな機能AIとのチャット等で `@{extension名}` と入力するとそのextensionを自然言語で操作できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/09b97485-f273-444e-8570-f0a7747e9a11.png)

これだけでも便利なんですが、`@`で呼び出すということは複数のextensionをつなげて呼び出すこともできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/a6475be6-802f-4bce-bb36-8110f397b755.png)

他にも[Video Downloader](https://www.raycast.com/vimtor/video-downloader)を入れるとyoutubeの要約とかもできます。

:::note info
Video Downloaderはbrewでいくつかのツールを入れる必要があります。Video Downloaderを利用した際に失敗した場合は❌️マークにカーソルを合わせるとerrorログが見られるので、不足しているツールを確認し追加してください。
:::


youtubeを開いた状態で以下のようなプロンプトを入れます。
[プロンプト全文](https://sizu.me/se_eiji/posts/o090nrx87wrx)
※このプロンプトはRayacstの公式slackのtipsとして共有されていたものを利用しています。

今回はこのyoutubeがブラウザで開かれていたのでこれで試します。

https://www.youtube.com/watch?v=1hs2jhROOkg

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/80aa89a6-d5ef-44d4-99ac-56ff10efccf5.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/8fa1ca43-a684-465d-a859-077924952f6b.png)

良さそうですね。
あまり長いyoutubeで試したことはありませんが、是非いろいろ試してみてください。

ちなみに、毎回プロンプトを入力するのは手間なので、AI commandを作成し、ショートカットやaliasで呼び出すこともできます。

create ai commandから

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/c21658d3-bda3-448e-93fb-c1c0868b65ec.png)

こんな感じで設定しすると

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/d745a257-cc14-4d34-8e25-56fe0f0daf2b.png)

設定した名前で呼び出せます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/9cf12ffa-ff65-422e-b1c0-511565f9c1ce.png)

ai commandを作成すると設定 > extensionsに追加されるので、そこにaliasやショートカットを設定すればいつでも呼び出せます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/221e89be-b6a7-4beb-b9f5-fddfe1cb7d4a.png)

今までであればせっせとコードを書いていましたが、本当にプロンプトを書くだけで簡単に作成できます。

他にもgithubのprivate repositoryで職歴を管理していますが、その情報を元にlaprasさんのmcpを使って職歴を更新する。

とかもできます。とても便利。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948850/01cd1626-428f-4edd-b8cf-476b62a677cd.png)

# まとめ

RaycastはMCPを簡単にinstall&管理することができとても便利ですが、それに +α 使い勝手も最高です。本当に自然言語ですべて完結してしまいます。

皆さんも是非試してください。