Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/scnsh/mcp-esa-server-pythonWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/scnsh/mcp-esa-server-python/mcp-server)<a href="https://agentmods.dev/rules/scnsh/mcp-esa-server-python/mcp-server"><img src="https://agentmods.dev/badge/rules/scnsh/mcp-esa-server-python/mcp-server/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/scnsh/mcp-esa-server-python/mcp-server"><img src="https://agentmods.dev/badge/rules/scnsh/mcp-esa-server-python/mcp-server.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.01040 |
| Opus 5.5 | $0.00000 | $0.00416 |
| Sonnet 5.5 | $0.00000 | $0.00208 |
| Haiku 4.5 | $0.00000 | $0.00104 |
Grade A, and why
mcp-server scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
プロジェクト
esa.ioのAPIを使用して、基本的な操作を行えるMCPサーバーを作る .envで完了変数を管理し、ESA_TOKEN, ESA_TEAM_NAMEでそれぞれAPIトークンとチーム名を管理する。
esa.ioのAPIについては https://docs.esa.io/posts/102 を参照。
使用技術
- python
- uv
開発計画
-
基盤構築フェーズ
- Pythonプロジェクト初期化 (
uv init) - 環境変数設定 (
.env) - APIクライアント基礎 (認証、ベースURL)
- Pythonプロジェクト初期化 (
-
コア機能実装フェーズ
- ユーザー情報取得 (
/user, テスト) - 記事一覧取得 (
/posts, 検索、テスト) - 記事詳細取得 (
/posts/:post_number, テスト) - エラー処理
- ユーザー情報取得 (
-
追加機能と改善フェーズ
- 記事作成 (
POST /posts, テスト) - 記事更新 (
PATCH /posts/:post_number, テスト) - 記事削除 (
DELETE /posts/:post_number, テスト)
- 記事作成 (
-
ドキュメント整理
- ドキュメント作成 (
docs/)
- ドキュメント作成 (
進め方のポイント
- フェーズごとに
git commit - TDD (テスト駆動開発)
- コードを修正したらテスト (
pytest) とフォーマット/リントチェック (ruff format,ruff check) を実行する - 必要に応じて機能追加 (コメント等)
- サーバーのドキュメント作成
FastMCPツールでのロギング
- 注意: MCPツールの
main関数内でのロギングにprintを使用しないでください。 - 推奨: 常に
loggingパッケージを使用してください。 printはpytestのコードでのみ使用してください。- 必要に応じて
logger.info()、logger.warn()、logger.error()、logger.debug()を使用してください。
FastMCPサーバー開発ノート
- MCPサーバーのコード (
main.pyまたはその依存関係) を変更 (ツールの追加/削除、サーバー設定の変更) した後は、CursorでMCPサーバー情報を 再読み込み する必要があります。 - ツールを追加した直後に「見つからない」と表示される場合は、CursorでMCPサーバー接続を再読み込みしてみてください。
- 変更が完全に認識されるまでに、複数回の再読み込みが必要になる場合があります。
環境変数とインポート
- モジュールのインポート時に即座に実行されるコード (例:
src/esa_client.pyのトップレベルでの環境変数チェック) には注意してください。 - サーバーを起動する前に、必要な環境変数 (
ESA_TOKEN,ESA_TEAM_NAME) が正しく設定されていること (例:.envとdotenv経由で) を確認してください。
その他の注意点 (必要に応じて追記)
リント/フォーマットエラーを優先対応
リンターやフォーマッターのエラーが発生した場合は、直ちに修正してください。これらのエラーが解決されるまで、他のタスクに進ないでください。
定期的なフォーマットとリントチェック
コードの品質と一貫性を確保するために、定期的に ruff format && ruff check を実行することを忘れないでください。
追加タスク (Geminiによる)
no-unused-vars (未使用の変数)
- 対応: 未使用のインポートや変数は完全に削除してください。
- 禁止: アンダースコアプレフィックス (例:
_variable) を使用したり、未使用のコードをコメントアウトしたりしないでください。
一般的な未使用コード
- 対応: 現在使用されていない、または直ちに使用する予定のないコードは削除してください。
- 理由: コードベースをクリーンで焦点の合った状態に保ちます。
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 86 lines · 0 tokens per session scan A e226a99ffa99
mcp-server is a cursor rule published in the GitHub repository scnsh/mcp-esa-server-python (1 stars, last pushed 1y ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,040 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other cursor rules, from other repositories
ponytail
Ponytail, lazy senior dev mode. Always pick the simplest solution that works.
angular-20
This rule provides comprehensive best practices and coding standards for Angular development, focusing on modern TypeScript, standalone components, signals, and performance optimizations.
dev-standard
Apache Superset development standards and guidelines for Cursor IDE.
prefer-direct-imports-over-module-mocks
Prefer extracting a testable core over vi.mock / vi.resetModules when unit tests need to reach production logic entangled with config, env, or singletons.
config-validation-and-normalization
Config validation and normalization responsibilities (defineConfig normalizes, the orm section schema validates and resolves paths, the loader reports per-section diagnostics).
control-plane-descriptors
Control plane descriptor and instance implementation patterns.