時系列のログ形式で記載しています。
https://github.com/ganyariya/misskey-mcp-server
Issue を MCP 経由で作成してもらう
MCP をセットアップする
github-mcp-server を VSCode でセットアップします。
VSCode Install Server
をクリックすれば MCP Server を起動する設定を自動で .settings.json
に追加してくれます。
url: https://github.com/github/github-mcp-server
title: "GitHub - github/github-mcp-server: GitHub's official MCP Server"
description: "GitHub's official MCP Server. Contribute to github/github-mcp-server development by creating an account on GitHub."
host: github.com
favicon: https://github.githubassets.com/favicons/favicon.svg
image: https://opengraph.githubassets.com/b69fada27b90c4b619ff063e054aa45e2cd4ac46284a0dbd92e1cf511388a7b6/github/github-mcp-server
https://apidog.com/jp/blog/github-mcp-server-jp/
追加してくれる設定は上記のようになります。 misskey-mcp-server を起動すると自動で pat の入力ポップアップがでるため、必要な権限を割り当てた pat を用意して記入しましょう。
ツールボタンを押して MCP Server: GitHub
が出れば OK です。
MCP で Issue を立てるまえに cursor project rules を用意する
url: https://docs.cursor.com/context/rules
title: "Cursor – Rules"
description: "Control how the Agent model behaves with reusable, scoped instructions."
host: docs.cursor.com
favicon: https://mintlify.s3-us-west-1.amazonaws.com/cursor/_generated/favicon/favicon-32x32.png?v=3
url: https://zenn.dev/globis/articles/cursor-project-rules
title: "Cursor の Project Rules 活用と改善"
host: zenn.dev
image: https://res.cloudinary.com/zenn/image/upload/s--haxWOm3p--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Cursor%2520%25E3%2581%25AE%2520Project%2520Rules%2520%25E6%25B4%25BB%25E7%2594%25A8%25E3%2581%25A8%25E6%2594%25B9%25E5%2596%2584%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:tanukiti1987%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzJkZmVkY2VkZTAuanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:GLOBIS%2520Tech%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jSl9iTE5Nby1YenpDUWhUNTUxajFVXzNWaGZiZVlNVm1neGo3aEYtbzNhVXljeUVQSVU9czk2LWM=%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png
project rule とは
Cursor において新たに推奨されるようになったカスタムルールのファイルです。
.cursor/rules/
ディレクトリ配下に好きな構成で .mdc
という拡張子で用意します。
YAML Frontmatter でルール条件を設定でき、常に発動するようなルールも用意できます。
Cursor 以外のエディタを使う場合も .cursor/rules/xxx
を参照してください。と用意できそうですね。
Cursor にルールを生成させる
README.md へ今の実装状況を Cursor に記述させる
https://github.com/ganyariya/misskey-mcp-server/pull/6
今の API / Misskey MCP Rule 実装状態を Cursor に記述させました。 こういうのを全部やってくれて便利ですね。
Issue を MCP に用意させる
現時点におけるリファクタ/機能改善 Issue を用意させる
- Go のベストプラクティスに沿うようにリファクタしてほしい
- ディレクトリ構成を修正する
- エラーハンドリングを追加する
- テストは追加しなくてよい
- テストを追加する
- GitHub Actions を追加する
- Goreleaser を追加してバイナリをビルドする
上記のタスクをまずは共通タスクとして用意します。
1 つ目の Issue を作ってみる
1 つ目の Issue 作成は丁寧に履歴として残します。
misskey-mcp-server リポジトリに issue を追加してほしいです
以下の内容で追加してください
Issue タイトルは良い内容を考えてください。
---
.cursor/rules ディレクトリのファイルを必ず読んでからコーディングしてください。
以下を達成してほしいです
# 要件: リファクタリング
今後別の misskey api を mcp から叩けるようにします。
ここで、他の api エンドポイントの mcp tool を追加しやすいように go のベストプラクティスに沿った内容になるようリファクタしてください。
- ディレクトリ構成
- エラーハンドリング
- ロガーの追加
ただし、テストは別の Issue で実装するため、テストは実装しないでください。
https://github.com/ganyariya/misskey-mcp-server/issues/7
VSCode の mcp 拡張 + copilot agent でちゃんと Issue が作成できました。 英語で書いてくれなかったため、それはプロンプトを修正します。
2 つ目の Issue をつくる
misskey-mcp-server リポジトリに issue を追加してほしいです
以下の内容を `英語に翻訳して` 追加してください。グローバルの人々に使ってもらえるようにするためです。
Issue タイトルは良い内容を考えてください。
---
.cursor/rules ディレクトリのファイルを必ず読んでからコーディングしてください。
以下を達成してほしいです
要件: テストの追加
Go のベストプラクティスにそってテストを追加してください。
golang/mock を使ってもらえるとベストです。
ただし、過度にテストを実装する必要はありません。ドメインロジックのみテストできればよいです。
E2E テストなど、通信まわりのテストは必要ありません。
ドメインロジックのみテストするようにします。
また、ドメインロジックのみテストする、というテストの方針について .cursor/rules に記載してください
https://github.com/ganyariya/misskey-mcp-server/issues/8
VSCode 単体で MCP 経由で Issue 作れるのよいですねぇ…。 会社の方針的にも使えそう…。
同様に Issue をつくる
https://github.com/ganyariya/misskey-mcp-server/issues/9
各 API の Issue はリファクタを終わらせてからやります。
Jules に 1 つ目の Issue を実装させる
Google Jules が 2025/05/31 時点では 1 日 60 タスクまで無料のため、 Issue を起点に実装させます。
assign-to-jules
というラベルをつけることで Jules がそれを検知して PR を作成してくれるようです。
url: https://zenn.dev/yuulab/articles/2b11efc30ebc10
title: "Googleの新しいコーディングAIエージェントJulesを使ってみた"
host: zenn.dev
image: https://res.cloudinary.com/zenn/image/upload/s--WrQNwFgX--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Google%25E3%2581%25AE%25E6%2596%25B0%25E3%2581%2597%25E3%2581%2584%25E3%2582%25B3%25E3%2583%25BC%25E3%2583%2587%25E3%2582%25A3%25E3%2583%25B3%25E3%2582%25B0AI%25E3%2582%25A8%25E3%2583%25BC%25E3%2582%25B8%25E3%2582%25A7%25E3%2583%25B3%25E3%2583%2588Jules%25E3%2582%2592%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%25A6%25E3%2581%25BF%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:yuuuto%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg3YjJhZmQ1MTkuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png
https://github.com/ganyariya/misskey-mcp-server/issues/7
しっかり Jules 内でタスクを実行してくれていました。
https://github.com/ganyariya/misskey-mcp-server/pull/10
結果を見たところ、だめでした。
ビルドすると misskey
という名前が衝突してエラーになります。
go build してエラーがでないこと、というルールを追加して再度チャレンジする必要があります。
ルールを見直す
https://github.com/ganyariya/misskey-mcp-server/pull/10 https://github.com/ganyariya/misskey-mcp-server/pull/11 https://github.com/ganyariya/misskey-mcp-server/issues/12
うまく動かなかったため、 clinerules を修正した これでもだめであれば、よりリファクタの方針を詳細に書いてなんとかしないといけないです。
go build -o misskey-mcp-server cmd/misskey-mcp-server/main.go
cp misskey-mcp-server $HOME/go/bin/misskey-mcp-server
https://github.com/ganyariya/misskey-mcp-server/pull/13
想定してたようなリファクタ内容ではなかったです。 原因としてはこちらから与える設計やおこなってもらいたいことが曖昧なのが原因だとおもいます。 他の API をつくっていくうえでファイル構成については再度リファクタしようとおもいます。
GitHub Actions で goreleaser を設定する
https://github.com/ganyariya/misskey-mcp-server/pull/17 https://github.com/ganyariya/misskey-mcp-server/pull/18 https://github.com/ganyariya/misskey-mcp-server/commit/f9456a548b1308f2f03c85e2df2304bf0e36bbb5
jules が賢くなく、 うまく actions が動きませんでした。 問題の究明と修正は Github Copilot Agent Mode になおしてもらいました。
API ごとの Issue を作ってもらう
README.md の MCP Tools Implementation Status に今の mcp tool の実装状況があります。
ここで、まだ未実装のものについて、各 mcp tool (endpoint) ごとに独立した GithubIssue を作ってもらえますか?
なお、英語に翻訳してつくってください。海外の人にも使ってもらうことを想定しているためです。
---
Template
Title: mcp-tool xyz(実際のmcp-tool名を記入) を実装する
.cursor/rules ディレクトリのファイルを必ず読んでからコーディングしてください。
以下を達成してほしいです
- mcp-tool xyz(実際のmcp-tool名を記入) を実装する
- misskey endpoint: xyz (実際の misskey endpoint を記入)
すでに存在する実装 internal/misskey_tools/note/post_note.go などを参考にしてください。
コメントは冗長なので書かないでください。
API を 1 つ実装してもらう
https://github.com/ganyariya/misskey-mcp-server/pull/48
上記で実装してもらった。
まとめ
- Cursor Project Rules 便利
- どのような条件で読み込ませられるか?を自動で cursor に判定させられる
- ルール自体は
docs/agent/xxx
配下に別途おいて Quartz や Docusaurus でデプロイしておくとよいのではdocs/agent/xxx
を.cursor/rules
で間接参照する- 他の AI においても使いやすくするため&デプロイするため
- Jules はあまりかしこくない
- 無料版で運用されているため、おそらくまだ強い AI が載せられていない
- 今後強くなりそう
misskey-mcp-server
はしばらく開発しなくてよいかな…- よく考えたら misskey を mcp で扱いたいことがない…
- それよりは別の開発ツールを go + AIでつくったほうがよいかな