Skip to main content
Glama
STATUS.md8.32 kB
# プロジェクト状況 最終更新: 2025-11-23 ## 現在の実装状況 ### ✅ 完了している項目 #### プロジェクト基盤 - [x] Pythonプロジェクト構造の構築 - [x] `pyproject.toml`によるプロジェクト設定 - [x] 依存関係の定義(`requirements.txt`) - [x] 開発ツールの設定(black, ruff, mypy, pytest) - [x] `.gitignore`の設定 - [x] 環境変数設定用の`.env.example` #### MCPサーバーの骨組み - [x] MCPサーバークラス(`EvernoteMCPServer`)の実装 - [x] stdio経由の通信設定 - [x] ツール定義の枠組み(4つのツール) - `list_notebooks`: ノートブック一覧取得 - `search_notes`: ノート検索 - `get_note`: ノート取得 - `create_note`: ノート作成 - [x] 各ツールのハンドラーメソッドのスタブ実装 - [x] エラーハンドリングの基本構造 #### Evernote統合層 - [x] `EvernoteClient`クラスの骨組み - [x] 各API操作のメソッドスタブ - [x] サンドボックス/本番環境切り替えの設定 #### 型定義 - [x] `Notebook`, `Note`, `SearchResult`のTypedDict定義 #### ドキュメント - [x] README.md(セットアップ手順、開発コマンド) - [x] CLAUDE.md(Claude Code向けガイド) - [x] docs/ARCHITECTURE.md(アーキテクチャ解説) - [x] docs/STATUS.md(このファイル) ### ⚠️ 未実装・スタブ状態の項目 #### Evernote API統合 - [ ] Evernote SDK(evernote3)の初期化 - [ ] 認証トークンを使用したAPIクライアント生成 - [ ] サンドボックス/本番環境のエンドポイント切り替え実装 - [ ] 各API操作の実装 - [ ] `list_notebooks()` - ノートブック一覧取得 - [ ] `search_notes()` - ノート検索 - [ ] `get_note()` - ノート内容取得 - [ ] `create_note()` - ノート作成 - [ ] ENML(Evernote Markup Language)の処理 - [ ] エラーハンドリング(APIレート制限、認証エラー等) #### レスポンス処理 - [ ] Evernote APIレスポンスからMCP形式への変換 - [ ] 日本語を含むノート内容の適切な処理 - [ ] 検索結果のフォーマット - [ ] エラーメッセージの日本語化 #### テスト - [ ] 単体テスト(各クライアントメソッド) - [ ] 統合テスト(MCP通信) - [ ] モックを使用したテスト - [ ] E2Eテスト #### 追加機能 - [ ] ノートの更新機能 - [ ] ノートの削除機能 - [ ] タグ管理機能 - [ ] 添付ファイル対応 - [ ] ノートブック作成/削除 - [ ] リソース(画像等)の取得 ## 動作確認状況 ### 🔴 未確認 現時点では以下の動作確認がまだ行われていません: - [ ] 依存パッケージのインストール確認 - [ ] サーバーの起動確認 - [ ] Claude Desktopとの連携確認 - [ ] Evernote APIへの接続確認 - [ ] 各ツールの動作確認 - [ ] エラーハンドリングの動作確認 ### 確認が必要な環境 1. **Python環境** - Python 3.10以上がインストールされているか - 仮想環境が正常に作成できるか 2. **Evernote API** - 開発者トークンの取得 - サンドボックス環境へのアクセス - APIの利用制限の確認 3. **MCPクライアント** - Claude Desktopのインストール - stdio通信の設定 ## 今後の実装ロードマップ ### Phase 1: 基本機能の実装 (優先度: 高) **目標**: 最小限の機能でMCPサーバーを動作させる 1. **環境構築とテスト** (推定: 1-2時間) - [ ] 仮想環境の作成と依存パッケージのインストール - [ ] Evernote開発者トークンの取得 - [ ] サーバーの起動テスト 2. **Evernote APIクライアントの実装** (推定: 3-4時間) - [ ] evernote3パッケージの初期化 - [ ] 認証処理の実装 - [ ] エンドポイント設定(サンドボックス/本番) - [ ] 接続テスト 3. **ノートブック一覧取得の実装** (推定: 2-3時間) - [ ] `list_notebooks()`の実装 - [ ] レスポンスの整形 - [ ] エラーハンドリング - [ ] 動作確認 4. **ノート取得機能の実装** (推定: 3-4時間) - [ ] `get_note()`の実装 - [ ] ENMLコンテンツの処理 - [ ] テキスト抽出 - [ ] 動作確認 ### Phase 2: 検索・作成機能の実装 (優先度: 中) **目標**: ノートの検索と作成を可能にする 5. **ノート検索機能の実装** (推定: 4-5時間) - [ ] `search_notes()`の実装 - [ ] Evernote検索構文の対応 - [ ] 検索結果のページネーション - [ ] 結果のフォーマット - [ ] 動作確認 6. **ノート作成機能の実装** (推定: 4-5時間) - [ ] `create_note()`の実装 - [ ] テキストからENMLへの変換 - [ ] タグの設定 - [ ] ノートブック指定 - [ ] 動作確認 ### Phase 3: 追加機能とテスト (優先度: 中) **目標**: 機能拡張とコードの品質向上 7. **テストの実装** (推定: 5-6時間) - [ ] 単体テストの作成 - [ ] モックを使用したテスト - [ ] 統合テストの作成 - [ ] CI/CD設定(オプション) 8. **エラーハンドリングの強化** (推定: 2-3時間) - [ ] APIレート制限への対応 - [ ] 再試行ロジック - [ ] 詳細なエラーメッセージ - [ ] ロギング機能 ### Phase 4: 高度な機能 (優先度: 低) **目標**: より高度な操作への対応 9. **ノート更新・削除機能** (推定: 3-4時間) - [ ] `update_note()`の実装 - [ ] `delete_note()`の実装 - [ ] 楽観的ロック対応 10. **タグ・リソース管理** (推定: 4-5時間) - [ ] タグ一覧取得 - [ ] タグ作成・削除 - [ ] 画像等のリソース取得 - [ ] 添付ファイル対応 11. **パフォーマンス最適化** (推定: 2-3時間) - [ ] キャッシング機能 - [ ] バッチ処理 - [ ] 並列処理の最適化 ## 次に取り組むべきタスク ### 最優先タスク(今すぐ実行可能) 1. **依存パッケージのインストール** ```bash python -m venv venv venv\Scripts\activate # Windows pip install -r requirements.txt ``` 2. **Evernote開発者トークンの取得** - [Evernote Developers](https://dev.evernote.com/)にアクセス - Developer Tokenを取得 - `.env`ファイルに設定 3. **サーバーの起動テスト** ```bash python -m mcp_notes_connector.server ``` - エラーが出ないか確認 - 基本的な通信が成立するか確認 ### 中期タスク(Phase 1完了後) 4. **Evernote APIクライアントの実装開始** - [evernote_client.py](../src/mcp_notes_connector/evernote_client.py)の`EvernoteClient.__init__`を実装 - evernote3パッケージのドキュメントを参照 - サンドボックス環境での接続テスト 5. **ノートブック一覧機能の実装** - 最もシンプルな機能から実装 - 動作確認しやすい ## 技術的な課題・検討事項 ### 既知の課題 1. **evernote3パッケージの非同期対応** - evernote3は同期的なAPIを提供 - `asyncio`での実行方法を検討(`asyncio.to_thread()`等) 2. **ENMLの処理** - ENML形式の理解が必要 - プレーンテキストへの変換方法 - Markdownからの変換方法 3. **レート制限** - Evernote APIのレート制限を調査 - 適切な再試行ロジックの実装 ### 検討が必要な項目 - [ ] ログ出力の方針(stderrへの出力方法) - [ ] 大きなノートの処理方法 - [ ] タイムゾーン処理 - [ ] 文字エンコーディングの扱い - [ ] Claude Desktopへの登録方法 ## 参考リンク - [Evernote API Documentation](https://dev.evernote.com/doc/) - [MCP Specification](https://modelcontextprotocol.io/) - [evernote3 Package Documentation](https://pypi.org/project/evernote3/) - [Python MCP SDK](https://github.com/modelcontextprotocol/python-sdk) ## 開発メモ ### 2025-11-23 - プロジェクト構造を作成 - TypeScriptからPythonに変更 - MCPサーバーの骨組みを実装 - ドキュメントを整備

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AnotherStream/mcp-notes-connector'

If you have feedback or need assistance with the MCP directory API, please join our Discord server