🧑‍🔧

CursorでMCP Serverを設定してみた&詰まったこと

に公開

この記事では、Cursorでmcp設定時に詰まったこと、わかったことまとめていきます。
設定したmcpはgithubとnotionです。

MCP Serverのレポ

前提

  • Dockerがinstall済みであること

設定手順

まず、mcpの設定手順はCursor->基本設定->Cursor Settings->MCPの順に設定します。

画面上部の[Add new global MCP server]のクリックして、レポジトリに記載されているjsonをコピペします。

私の設定例は以下です。
レポジトリの設定だけではCursorがたまにリクエストをちゃんと完了できていなかったので、いくつかプロパティを追加しています。

GitHub

  "github": {
    "owner": "<GITHUBのアカウント名>",
    "repo": "<GITHUBのレポジトリ名>",
    "state": "all",
    "command": "docker",
    "args": [
      "run",
      "-i",
      "--rm",
      "-e",
      "GITHUB_PERSONAL_ACCESS_TOKEN",
      "ghcr.io/github/github-mcp-server"
    ],
    "env": {
      "GITHUB_PERSONAL_ACCESS_TOKEN": "<パーソナルアクセストークン>"
    }
  },

<パーソナルアクセストークン>はこちらから作成,取得してください。
https://github.com/settings/personal-access-tokens
notionの設定例は以下です。

Notion

  "notionApi": {
    "command": "docker",
    "args": [
      "run",
      "--rm",
      "-i",
      "-e", "OPENAPI_MCP_HEADERS",
      "mcp/notion"
    ],
    "env": {
      "OPENAPI_MCP_HEADERS": "{\"Authorization\":\"Bearer ntn_****\",\"Notion-Version\":\"2022-06-28\"}"
    }
  }

notion側でintegrationの設定をする必要があります。
詳細はこちらを参照。

npxで設定する例もあったのですが、私の環境ではなぜかうまくいきませんでした。
nvm環境上で実施していました。
npxでうまくいった方がいらしたらコメントで教えていただけると喜びます。

npxの例

{
  "mcpServers": {
    "notionApi": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server"],
      "env": {
        "OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2022-06-28\" }"
      }
    }
  }
}

Tip

ツールを55個以上利用しているとパフォーマンスが落ちることがあり、いくつかのモデルでは40個以上は対応していないそうです。

そこで、toolsの数を制限する方法を調べました。

githubに関しては、新たな環境変数GITHUB_TOOLSETSを指定することで減らすことができました。

  "github": {
    "owner": "<GITHUBのアカウント名>",
    "repo": "<GITHUBのレポジトリ名>",
    "state": "all",
    "command": "docker",
    "args": [
      "run",
      "-i",
      "--rm",
      "-e",
      "GITHUB_PERSONAL_ACCESS_TOKEN",
      "-e"
     "GITHUB_TOOLSETS"
      "ghcr.io/github/github-mcp-server"
    ],
    "env": {
      "GITHUB_PERSONAL_ACCESS_TOKEN": "<パーソナルアクセストークン>",
      "GITHUB_TOOLSETS="repos,issues,pull_requests,code_security"
    }
  },

他にもコマンドで制限する方法もあります。
詳細は↓。
https://github.com/github/github-mcp-server?tab=readme-ov-file#the-all-toolset

Discussion