【小ネタ】 CursorのMCP機能はtoolの名前にdash(-)が含まれていると認識しない

【小ネタ】 CursorのMCP機能はtoolの名前にdash(-)が含まれていると認識しない

Clock Icon2025.02.21

はじめに

小ネタです。最近MCPを勉強がてら自分で実装を試しています。

GoogleカレンダーのMCPで、期間を指定して予定が取得できる機能があります。利用方法はREADME.mdを参照してください。

https://github.com/shuntaka9576/cal2prompt

一昨日(02/19)からCursorとMCP連携した際に動作しなくなり、v0.1.3で修正したので共有します。

バージョンは以下の通りです。私の記憶では同じバージョンで急に動作しなくなったので、エディタの先のエージェント実装が起因していると考えており、バージョンは関係ないと推測しています。

$ cursor --version
0.45.11
f5f18731406b73244e0558ee7716d77c8096d150
arm64

おそらく一時的なもので今後修正されると思われます。

結論

CursorにMCPを認識させたいならツール名にdash(-)を使わず、underscore(_)で書く。

{
  "tools": [
    {
+     "name": "list_calendar_events",
-     "name": "list-calendar-events",
      "description": "Retrieves events from Google Calendar within the specified time range. Format: yyyy-MM-dd or yyyy-MM-dd HH:mm. (Currently we only parse yyyy-MM-dd).",
      "inputSchema": {
        "type": "object",

(中略)

挙動確認

Cursor

NG: ツール名にdash(-)

CleanShot 2025-02-21 at 08.25.43@2x

OK: ツール名にunderscore(_)

認識します。(日付はめちゃくちゃですね...Claude DesktopとWindsurfは正確です)
CleanShot 2025-02-21 at 08.42.57@2x

Claude Desktop(おまけ)

Claude Desktopでは両方認識します。日付も正確です。

OK: ツール名にdash(-)

CleanShot 2025-02-21 at 08.30.23@2x

OK: ツール名にunderscore(_)

CleanShot 2025-02-21 at 08.45.36@2x

Windsurf(おまけ)

Windsurfでも両方認識します。日付も正確です。

OK: ツール名にdash(-)

認識しますね!日付の指定も正確です。
CleanShot 2025-02-2102-2

OK: ツール名にunderscore(_)

認識しますね!おしゃれな一言を追加してきました。時刻も正確です!
CleanShot 2025-02-21 at 08.47.32@2x

さいごに

MCPの解釈は提供元のシステムプロンプトによるのでしょうか。興味深いですね。MCPはtools useをRPC経由でやっているだけなのでその解釈の差だと思われます。

ドキュメントに明記こそされていませんが、Exampleは全てunderscore(_)ですね。Exampleを忠実に真似する気持ちが大事という教訓でした。
https://modelcontextprotocol.io/docs/concepts/tools

余談ですがMCP設定は、WindsurfはコンフィグがClaude Desktop互換でよかったです。Claude Desktopの設定をシンボリックリンクで参照させれば良さそうです。

参考

https://forum.cursor.com/t/cursor-refuses-to-use-my-mcp-server/51709

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.