【現在は公式改修済み】CursorとNotion MCPの組み合わせで発生するMethod xxx not foundのエラーを解決する
はじめに
こんにちは、株式会社Mediiの渡辺です
Notion公式のMCPがリリースされて話題になってますね!
早速Cursorで試しましたがMethod xxx not foundのエラー…
本記事ではエラーを解決して、CursorでNotion MCPを実行する方法について記載します
前提
- Notionのインテグレーション追加やトークンの取得方法は本記事では扱いません
- nodeのインストールも本記事では扱いません
- node v22.14.0を使用しています
背景
実はNotionのMCPは自作して使っていました
そこに公式のリリースが来たので、本家はどんなもんじゃいと思い、早速試してみました
(公式が一番ありがたいです!ありがとうございます!)
READMEに従い、mcp.jsonに以下の定義を追加して、
"notionApi": {
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": {
"OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2022-06-28\" }"
}
}
そして、いざCursorでNotion MCPを実行してみると…
なんかエラーが出ますね
CursorかNotion MCPの方で改善されると期待していますが、早く試したかったので、力技で解決しました
原因
Claude Desktopなどで試してみるとわかりやすいのですが、Notion MCPのtool名はハイフン(-)を使っています
例:API-retrieve-a-page
しかし、Cursorでは全てアンダースコア(_)で認識してしまいます
例:API_retrieve_a_page
設定画面を見ても、すべてアンダースコア
Cursorからはアンダースコアを含む名前でtoolを実行しますが、MCPの実装側すべてハイフン前提なので、そんなMethodないよってエラーになります
operation名の解決に失敗してエラーになっていると思われる
解決方法
力技です。Notion MCPのコードを修正してビルドします
npmでglobalインストールしてもよいですが、個人的にglobalインストールしたくないので、git cloneする方法にしています
コードの取得
まずはコードをcloneします(ZIPのダウンロードでも良いです)
git clone https://github.com/makenotion/notion-mcp-server.git
cd notion-mcp-server
以下のファイルを修正します
scripts/notion-openapi.json
src/openapi-mcp-server/mcp/proxy.ts
src/openapi-mcp-server/openapi/parser.ts
コードの修正
-
scripts/notion-openapi.json
全部は書きませんが、以下のように"operationId"の値をすべてアンダースコアに書き換えます
- "operationId": "retrieve-a-page",
+ "operationId": "retrieve_a_page",
-
src/openapi-mcp-server/mcp/proxy.ts
ここをアンダースコアにします
- const toolNameWithMethod = `${toolName}-${method.name}`;
+ const toolNameWithMethod = `${toolName}_${method.name}`;
-
src/openapi-mcp-server/openapi/parser.ts
ここをアンダースコアにします
- openApiLookup[apiName + '-' + uniqueName] = { ...operation, method, path }
+ openApiLookup[apiName + '_' + uniqueName] = { ...operation, method, path }
ビルド
下記のコマンドを実行します
npm install
npm run build
bin/cli.mjs
が生成されていることを確認します
MCPの設定
mcp.jsonを修正します
argsにはbin/cli.mjs
のフルパスを入力してください
トークンも適切なものを入れてください
{
"mcpServers": {
"notion": {
"command": "node",
"args": [
"<cli.mjsのフルパス>"
],
"env": {
"OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2022-06-28\" }"
}
}
}
}
CursorでNotion MCPを実行すると…
動いた!!
おわりに
今回はいち早く試したかったので、力技で解決しましたが、CursorかNotion MCPの方で改善されると期待しています
ただ、NotionのMCP程度であれば、比較的簡単に実装できるので、自分でMCP開発にチャレンジしてみるのも良いかもしれません
Discussion
Cursor側で改善され,動くようになってました.
ありがとうございます!
私の方でも動作確認できたので、取り急ぎ注記追加しました
現在は必要ない情報ですので、折を見て非公開にします