LCL Engineers' Blog

バス比較なび・格安移動・バスとりっぷを運営する LCLの開発者ブログ

SlackのMCPサーバを立てて、Cursorと連携した話

こんにちは。エンジニアチームの小林(id:kasei_san)です。 CursorがMCPをサポートしたことを知ったので、実際にSlackのMCPサーバと連携するまでを記事にしてみました。

環境

  • Mac OS Sonoma
  • Cursor 0.46.7

そもそもMCPとは?

MCPは、アプリケーションがLLMにコンテキストを提供する方法を標準化するオープンプロトコルです。MCPは、AIアプリケーション向けのUSB-Cポートのようなものと考えてください。 USB-Cがデバイスを様々な周辺機器やアクセサリーに接続する標準的な方法を提供するように、MCPはAIモデルを異なるデータソースやツールに接続する標準的な方法を提供します。 https://docs.anthropic.com/ja/docs/agents-and-tools/mcp

MCPにより、各種アプリケーションとLLMが連携できるようになります。 これにより、LLM経由でSlackを読み書きしたり、GitHubのPRを出すなど、今まで以上にLLMの可能性が広がるはずです……!!

MCPサーバとは?

MCPプロトコルを実装したサーバです。このサーバを介して、LLMはアプリケーションとやり取りを行います。

具体的にどんなMCPサーバがあるの?

例えば、以下のようなものがあります。

  1. Slack
    • チャンネルの読み書き
    • スレッド返信
    • リアクション追加
  2. Notion
    • ドキュメントの作成・編集
    • データベースの操作
  3. GitHub
    • Issue管理
    • PRレビュー
  4. ヘッドレスブラウザ
    • Web操作の自動化
    • スクリーンショット作成

MCP公式の各サーバを紹介するリポジトリがありますので、こちらもご参照ください。

CursorもMCPをサポート

さて、2025/01/23のアップデートでCursorもMCPをサポートしました。

ここからは、実際にSlackのMCPサーバとCursorを連携してみようと思います。

Slackアプリケーションの設定

まず、MCPサーバと連携するための、Slackアプリケーションを用意します。 詳細は公式のドキュメントを参照してください。

手順は以下の通りです。

  1. Slack APPの作成

    1. Slack APIにアクセス
    2. 「Create New App」→「From scratch」を選択
    3. App Name入力、ワークスペース選択
  2. 必要な権限の付与 以下のBot Token Scopesを追加:

    • channels:history
    • channels:read
    • chat:write
    • reactions:write
    • users:read
  3. ワークスペースへのインストール

    1. 「Install to Workspace」をクリック
    2. 認証を承認
  4. トークンの取得

    • SLACK_TEAM_IDの取得
    • OAuth & PermissionsからSLACK_BOT_TOKENを取得
  5. チャンネルへの招待 投稿したいチャンネルで /invite @アプリ名 を実行

SlackのMCPサーバのセットアップ

その後、MCP Starter というアプリを使用して、SlackのMCPサーバの設定を行います。

  • SlackのMCPサーバ本体は npx @modelcontextprotocol/server-slack ですが、後述の理由により、MCP Starterを使用しています。

  • MCP Starterのセットアップ

git clone https://github.com/daniel-lxs/mcp-starter
cd mcp-starter
go build -o mcp-starter
  1. 設定ファイルの作成(config.json)
{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-*********", // 先ほど取得したBotトークン
        "SLACK_TEAM_ID": "T********"         // チームID
      }
    }
  }
}

Cursor側の設定

最後に、Cursorで利用するMPCサーバの設定を行います。

  1. Cursorを開き、以下の手順で設定画面を開きます:

    • Cursor → 基本設定 → Cursor Settings → MCP → Add New MCP Server
  2. 以下の情報を入力:

    • name: slack
    • type: command
    • Command: /path/to/mcp-starter/mcp-starter /path/to/config.json

となります。

これで全ての準備は完了です。

動作確認

実際に、CursorのChatからSlackに書き込んでみます。

Cursor からMCPサーバを経由して、Slackに書き込みが行われることを確認できました。

これから

これにより、CursorからMCPサーバを使って、様々なアプリケーションと連携が可能になりました。 今回はSlackとの連携でしたが、例えばヘッドレスブラウザと連携することで、SystemTestを効率化したり、スクリーンショットを作成したり、 PostgreSQLと連携して、LLMからローカルのテストDBを変更したりなど、様々な作業効率化が考えられます。夢が広がりますね。

おまけ: なぜMCP Starterが必要か?

CursorでMCPサーバをコマンドで起動しても、TTYがないためにサーバが通信することができず、終了してしまうため。 TTYをラップするために、MCP Starterが必要です。

このために、bashでは起動できても、Cursor の MCP連携のコマンドに npx -y @modelcontextprotocol/server-slack を書くと client closed というエラーが出てしまいます。

windows環境でも似たような問題は発生していて、こちらでは、cmd /c を挟むことで解決しているようです。