Simplenote Mcp Server について
Simplenote MCP Serverは、SimplenoteのノートをClaude DesktopなどのMCPクライアントにつなぎ、ノートを記憶やコンテンツソースとして使えるようにします。高度な検索、任意の暗号化、公開共有を備えています。
主な機能
- 01ノートの作成、読み取り、更新、削除
- 02タグや日付で絞り込むブール検索
- 03任意のAES-256-GCMクライアント側暗号化
- 04ノートの公開とURL生成
- 05キャッシュとバックグラウンド同期
活用シーン
- 01Claude Desktopでのノート検索と整理
- 02機密ノートの暗号化
- 03ノートの公開URLでの共有
MCP 対応
MCP Python SDKを使い、Simplenoteのノート管理ツール、リソース、プロンプトをClaude DesktopなどのMCPクライアントに公開します。stdioとHTTPのトランスポートに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
Simplenote MCP サーバー

MCP Python SDK を使用して、Simplenote と Claude Desktop を連携する軽量な MCP サーバーです。
これにより、Claude Desktop はメモリバックエンドまたはコンテンツソースとして、Simplenote のノートを操作できます。
新着情報
30 個のツール — Bear の全機能に加え、Simplenote 独自の機能、Claude コンパニオンツール、Vault 暗号化に対応
Vault — オプトイン方式のクライアント側ノート暗号化:Simplenote では保存データは暗号化されません。create_note/update_note で encrypt: true を指定できるようになり、encrypt_note/decrypt_note を使って既存のノートを暗号化・復号できます。ノート本文は Simplenote API に送信される前に AES-256-GCM 暗号文に変換されます。詳しくはdocs/security/encryption-design.mdをご覧ください。
作業メモリのコンパニオン用途に向けて、MCP リソースとプロンプトを強化しました。
- 修正:
list_resources/read_resourceで、スキーマ外フィールドを使ったタグ/日付/ページネーションのメタデータが暗黙のうちに破棄されていました。現在は、正しい仕組みである MCP 仕様の_meta拡張フィールドを通じて付与されます。 session-handoffMCP プロンプト:セッション継続ワークフロー(Status:/Next:/Blockers:形式を使うget_or_create_noteとadd_text)を組み立て、セッションをまたいでコンテキストを引き継ぎます。
取り消し不能な削除ツールには、必須の安全ガードを設けています。
permanent_delete_note:単一のノートを完全に削除します。confirm=trueが必須です。デフォルトではドライランプレビューを表示します。empty_trash:ゴミ箱内のすべてのノートを完全に削除します。デフォルトはdry_run=true(プレビュー)です。dry_run=falseとconfirm=trueの両方が必須です。- 1334 件のテストに合格、カバレッジ 79%以上、リンティング/型チェックのエラーはゼロ
詳しくは、CHANGELOG と ROADMAP.md をご覧ください。
v1.17.0
search_notesの非同期処理を修正:ブール AND 検索でサーバーがハングしなくなりました。検索はタイムアウト 30 秒のスレッドプールエグゼキューターで実行されます。- 部分文字列の事前フィルター:「test」を検索すると、「testing」や「tested」などを含むノートも正しく返されるようになりました。
- 実際のエンジンを使った統合テストスイートを追加し、テストヘルパーのインポートエラーを修正しました。
詳しくは、CHANGELOGをご覧ください。
v1.16.0
publish_note:ノートを公開 URL で公開します。Simplenote MCP 独自の機能で、public_urlを返します。unpublish_note:ノートへの一般公開アクセスを解除します。すでに非公開の場合は何も行いません。
詳しくは、CHANGELOGをご覧ください。
🔧 機能
- 📝 ノート管理の全機能:Simplenote のノートの読み取り、作成、更新、削除
- 🔍 高度な検索:ブール演算子、フレーズ検索、タグや日付によるフィルター
- ⚡ 高パフォーマンス:バックグラウンド同期を備えたインメモリキャッシュ
- 🔐 安全な認証:環境変数によるトークンベースの認証
- 🔑 Vault 暗号化:機密性の高いノート向けのオプトイン方式のクライアント側 AES-256-GCM 暗号化 — Simplenote 自体では保存データは暗号化されません
- 🧩 MCP 互換:Claude Desktop やその他の MCP クライアントで動作
- 🐳 Docker 対応:マルチステージビルドとセキュリティ強化を備えた完全なコンテナ化
- 📊 モニタリング:ヘルス、レディネス、メトリクス用のオプションの HTTP エンドポイント
- 🧪 堅牢なテスト:1334 件のテストと継続的インテグレーションを備えた包括的なテストスイート
- 🔒 セキュリティ強化:Bandit、pip-audit、依存関係チェックによる定期的なセキュリティスキャン
🚀 クイックスタート
前提条件
- Simplenote アカウント(simplenote.comで作成できます)
- Python 3.10 以降(Docker を使わずにインストールする場合)、または Docker
オプション 1:Docker(推奨)
すぐに始めるには、事前ビルド済みの Docker イメージを使用するのが最も簡単です。
# Pull and run the latest image
docker run -d \
--name simplenote-mcp \
-e [email protected] \
-e SIMPLENOTE_PASSWORD=your-password \
-e MCP_TRANSPORT=http \
-e MCP_HTTP_HOST=0.0.0.0 \
-e MCP_HTTP_AUTH_TOKEN=your-random-secret-token \
-p 8000:8000 \
docdyhr/simplenote-mcp-server:latest
MCP_HTTP_HOST が 127.0.0.1/localhost 以外の場合、MCP_HTTP_AUTH_TOKEN が必要です。設定されていない場合、サーバーは起動を拒否します(下記の「セキュリティ」セクションを参照)。MCP_TRANSPORT=http を指定しない場合、サーバーはデフォルトで stdio 経由で実行され、公開ポートでは何もリッスンしません。
Docker のヘルスチェック: ヘルス監視は、上記の MCP プロトコル用ポートとは別の HTTP エンドポイントです。デフォルトでは無効になっており、-e ENABLE_HTTP_ENDPOINT=true -e HTTP_HOST=0.0.0.0 -p 8080:8080 で明示的に有効にする必要があります(Docker の -p マッピングはコンテナのループバックではなくネットワークインターフェースに転送するため、公開ポートから実際にアクセスするには HTTP_HOST を 0.0.0.0 にする必要があります。127.0.0.1 のデフォルト値が使えるのは、これらのエンドポイントを同じコンテナ内の別のプロセスから呼び出す場合だけです)。
- ヘルス:
http://localhost:8080/health - レディネス:
http://localhost:8080/ready - メトリクス:
http://localhost:8080/metrics(Prometheus 形式)
HTTP_HOST がループバック以外に設定されていて、HTTP_ENDPOINT_AUTH_TOKEN が設定されていない場合、サーバーは起動を拒否します。そうしないと、ポートにアクセスできる誰もがこれらのエンドポイントに到達できるためです。ループバック以外にバインドする必要がある場合は、ベアラートークンを設定してください(上記の MCP_HTTP_AUTH_TOKEN と同じ仕組みで、Authorization: Bearer <token> を介して検証されます)。ループバックからの呼び出しは常に信頼されるため、ローカルのヘルスチェックに影響することはありません。可能な場合はループバックのみにバインドし、-p 8080:8080 ではなく -p 127.0.0.1:8080:8080 で公開してください。
または、Docker Compose を使用します。
# Clone the repository for docker-compose.yml
git clone https://github.com/docdyhr/simplenote-mcp-server.git
cd simplenote-mcp-server
# Set environment variables
export [email protected]
export SIMPLENOTE_PASSWORD=your-password
# Run with Docker Compose
docker-compose up -d
オプション 2:Smithery(ワンクリックインストール)
Smithery から自動でインストールします。
npx -y @smithery/cli install @docdyhr/simplenote-mcp-server --client claude
この方法では、Claude Desktop に MCP サーバーが自動的に設定されます。
オプション 3:従来の Python インストール
git clone https://github.com/docdyhr/simplenote-mcp-server.git
cd simplenote-mcp-server
pip install -e .
simplenote-mcp-server
🗂 ドキュメントマップとアーカイブ
- ユーザー、開発者、運用担当者向けのドキュメントやメンテナンスチェックリストをまとめて確認するには、まず
docs/DOCUMENTATION_GUIDE.mdを参照してください。 - 過去のプロジェクト概要は
docs/archive/2025/に移動しました。これにより、リポジトリのルートには現在のロードマップとガイドをまとめています。 - すぐに情報を見つけたい場合は、
rg "<topic>" docs/を実行するか、MkDocs 形式の目次があるdocs/index.mdを開いてください。
🐳 Docker デプロイ
コンテナの機能
- イメージサイズを最適化する マルチステージビルド
- root 以外のユーザーと最小限の攻撃対象領域による セキュリティ強化
- ヘルス監視用エンドポイントを内蔵
- リソース制限と適切なシグナル処理
- 永続データ用のボリュームをサポート
事前ビルド済みイメージの使用
サーバーを使用する最も簡単な方法は、事前ビルド済みの Docker イメージを使うことです。
# Pull the latest image
docker pull docdyhr/simplenote-mcp-server:latest
# Run with Docker (see Quick Start above for the required MCP_HTTP_* env vars)
docker run -d \
-e [email protected] \
-e SIMPLENOTE_PASSWORD=your-password \
-e MCP_TRANSPORT=http \
-e MCP_HTTP_HOST=0.0.0.0 \
-e MCP_HTTP_AUTH_TOKEN=your-random-secret-token \
-p 8000:8000 \
docdyhr/simplenote-mcp-server:latest
# Or use Docker Compose (set MCP_HTTP_AUTH_TOKEN in your environment/.env first)
docker-compose up -d
利用可能なタグ:
latest- 最新の安定版リリースv1.18.1- 特定のバージョンmain- 最新の開発ビルド
本番環境へのデプロイ
# Build and run the production container
docker-compose up -d
# Or build manually
docker build -t simplenote-mcp-server .
docker run -d \
-e [email protected] \
-e SIMPLENOTE_PASSWORD=your-password \
-e MCP_TRANSPORT=http \
-e MCP_HTTP_HOST=0.0.0.0 \
-e MCP_HTTP_AUTH_TOKEN=your-random-secret-token \
-p 8000:8000 \
simplenote-mcp-server
Docker を使用した開発
# Use the development compose file for live code mounting
docker-compose -f docker-compose.dev.yml up
Docker の機能
- イメージサイズを最適化する マルチステージビルド(346MB)
- マルチプラットフォーム対応:
linux/amd64およびlinux/arm64 - セキュリティ強化:root 以外のユーザー、読み取り専用ファイルシステム、新しい権限の付与なし
- ヘルスチェックと自動再起動ポリシー
- リソース制限:1 CPU、512MB メモリ
- ログ記録:永続ログボリューム
- 環境変数による設定
- CI/CD パイプライン:Docker Hub へのビルドと公開を自動化
- セキュリティスキャン:すべてのイメージで Trivy による脆弱性スキャンを実施
- コンテナ署名:サプライチェーンのセキュリティを確保する Sigstore cosign 署名
- Kubernetes 対応:セキュリティを強化した本番環境向け Helm チャート
- 更新の自動化:依存関係の Dependabot、自動バージョン管理ワークフロー
- ヘルス監視:継続的なヘルスチェックとアラート
- エンタープライズ向け通知:CI/CD のステータスを Slack とメールで連携
☸️ Kubernetes デプロイ
Helm の使用(推奨)
本番環境向けの Helm チャートを使用して Kubernetes にデプロイします。
# Install from local chart
helm install my-simplenote ./helm/simplenote-mcp-server \
--set simplenote.email="[email protected]" \
--set simplenote.password="your-password"
# Or with external secrets (recommended for production)
helm install my-simplenote ./helm/simplenote-mcp-server \
--set externalSecrets.enabled=true \
--set externalSecrets.secretStore.name="vault-backend"
Kubernetes の機能
- セキュリティ強化:非 root ユーザー、読み取り専用ファイルシステム、ケイパビリティの削除
- リソース管理:CPU/メモリの上限とリクエストを設定済み
- 自動スケーリング:Horizontal Pod Autoscaler に対応
- ヘルスチェック:ライブネスプローブとレディネスプローブ
- 外部シークレット:外部シークレット管理と連携
- サービスメッシュ対応:Istio などのサービスメッシュと互換性あり
本番環境の設定
# values.yaml for production
replicaCount: 3
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 10
resources:
limits:
cpu: 1000m
memory: 512Mi
requests:
cpu: 500m
memory: 256Mi
⚙️ 設定
環境変数
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
SIMPLENOTE_EMAIL | はい | - | Simplenote アカウントのメールアドレス |
SIMPLENOTE_PASSWORD | はい | - | Simplenote アカウントのパスワード |
SYNC_INTERVAL_SECONDS | いいえ | 120 | キャッシュの同期間隔(秒) |
CACHE_MAX_SIZE | いいえ | 10000 | メモをメモリに保持する最大数 — メモの総数以上に設定してください |
LOG_LEVEL | いいえ | INFO | ログレベル(DEBUG、INFO、WARNING、ERROR) |
SIMPLENOTE_OFFLINE_MODE | いいえ | false | API 呼び出しをスキップします。認証情報なしでのテストに使用します |
MCP_TRANSPORT | いいえ | stdio | stdio または http — MCP プロトコルトランスポート |
MCP_HTTP_HOST | いいえ | 127.0.0.1 | MCP_TRANSPORT=http の場合のバインドホスト |
MCP_HTTP_AUTH_TOKEN | 条件付き | - | Bearer トークン。MCP_HTTP_HOST がループバック以外の場合は必須 |
MCP_HTTP_ALLOWED_HOSTS | いいえ | - | DNS リバインディング対策用の、カンマ区切りの許可リスト |
MCP_HTTP_ALLOWED_ORIGINS | いいえ | - | カンマ区切りの Origin 許可リスト(上記と併用) |
ENABLE_HTTP_ENDPOINT | いいえ | false | /health、/ready、/metrics 用の個別サーバーを有効にします |
HTTP_HOST | いいえ | 127.0.0.1 | 上記のモニタリングエンドポイントのバインドホスト |
HTTP_PORT | いいえ | 8080 | 上記のモニタリングエンドポイントのポート |
HTTP_ENDPOINT_AUTH_TOKEN | 条件付き | - | Bearer トークン。HTTP_HOST がループバック以外の場合は必須 |
Claude Desktop との連携
claude_desktop_config.json に追加します。
{
"mcpServers": {
"simplenote": {
"description": "Access and manage your Simplenote notes",
"command": "simplenote-mcp-server",
"env": {
"SIMPLENOTE_EMAIL": "[email protected]",
"SIMPLENOTE_PASSWORD": "your-password",
"CACHE_MAX_SIZE": "10000"
}
}
}
}
🔍 高度な検索
ブール論理とフィルターを備えた強力な検索機能です。
# Boolean operators
project AND meeting AND NOT cancelled
# Phrase matching
"action items" AND project
# Tag filtering
meeting tag:work tag:important
# Date ranges
project from:2023-01-01 to:2023-12-31
# Combined query
"status update" AND project tag:work from:2023-01-01 NOT cancelled
🛠️ 利用可能なツール
| ツール | 説明 | パラメーター |
|---|---|---|
create_note | 新しいノートを作成します | content、tags(任意) |
update_note | ノートの全内容を置き換えます(破壊的操作) | note_id、content、tags(任意) |
delete_note | 論理削除:ノートをゴミ箱に移動します | note_id |
restore_note | ノートをゴミ箱から元に戻します | note_id |
permanent_delete_note | ノートを完全に削除します(confirm=true が必要です) | note_id、confirm |
empty_trash | ゴミ箱内のすべてのノートを完全に削除します(デフォルトはドライランです) | dry_run(デフォルトは true)、confirm(デフォルトは false) |
get_note | ID を指定してノートの全内容とメタデータを取得します | note_id |
add_text | 上書きせずにテキストを末尾または先頭に追加します | note_id、text、position("end" | "beginning") |
search_notes | フィルターとページネーションを使って全文検索します | query、limit、offset、tags、from_date、to_date、created_after、modified_after、pinned、fuzzy、sort_by |
add_tags | ノートにタグを追加します | note_id、tags |
remove_tags | ノートから指定したタグを削除します | note_id、tags |
replace_tags | ノートのすべてのタグを置き換えます | note_id、tags |
list_tags | ノート数とともにすべてのタグを一覧表示します | sort_by("alpha" | "count") |
rename_tag | すべてのノートのタグ名をアトミックに変更します | old_tag、new_tag、dry_run(任意) |
get_note_versions | ノートのバージョン履歴を一覧表示します | note_id |
restore_version | ノートを以前のバージョンに戻します | note_id、version_number |
get_or_create_note | タイトルで検索し、なければアトミックに作成します | title、tags(任意)、default_content(任意) |
append_to_daily_note | 今日のノートにタイムスタンプ付きの項目を追加します | text、tags(任意) |
replace_section | 他の箇所に触れずに、Markdown のセクションを1つ置き換えます | note_id、header、content |
find_untagged_notes | タグのないノートを検索します | limit(任意) |
bulk_tag | 1回の呼び出しで複数のノートにタグを付けます | note_ids、tags |
export_notes | ノートを Markdown または JSON でエクスポートします | format、tags(任意)、query(任意) |
find_and_merge_duplicates | 重複したノートを検出して統合します | dry_run(任意)、similarity_threshold(任意) |
get_server_info | サーバーのバージョン、作成者、ランタイムのデバッグ情報 | (パラメーターなし) |
📊 パフォーマンスとキャッシュ
- バックグラウンド同期によるインメモリキャッシュ
- 大量のノートコレクションに対応するページネーション
- タグとコンテンツのインデックス検索
- 繰り返しの検索に対応するクエリ結果のキャッシュ
- Simplenote API の呼び出しを最小限に抑えたAPI 使用の最適化
🎯 最近の改善
✅ 2025年1月 - パフォーマンスとコード品質
重大なバグの修正:
- Claude Desktop のタイムアウトを修正 - 起動時間を55秒以上から1秒未満に短縮(98%改善)
- ブロッキングする Simplenote API 呼び出しにスレッドプール実行を導入
- バックグラウンドでの読み込みにより、キャッシュの初期化を真にノンブロッキング化
- シャットダウン時の
anyio.BrokenResourceErrorを解消
コードのリファクタリング - フェーズ1完了:
- キャッシュモジュールの複雑度を削減:複雑度の高い関数(CC >= 15)を5個から0個に削減(100%削減)
- 保守性が向上:キャッシュの MI を12.7から16.2に改善(+28%)
- コードの構成を改善するため、23個のヘルパーメソッドを抽出
- キャッシュカバレッジ67%を維持しながら、670個すべてのテストが成功
- 詳細は
REFACTORING_PHASE1_COMPLETE.mdを参照してください
ドキュメントの強化:
- 完全なバージョン履歴を含む包括的な
CHANGELOG.mdを追加 - ユーザーテストガイド
TESTING_CLAUDE_DESKTOP.mdを作成 - コード複雑度分析ツール(
check_complexity.py)を追加 - リファクタリング計画と完了レポートを文書化
品質ツール:
- 自動複雑度分析のために Radon を統合
- ベースライン指標:CC >= 15 の関数が22個(28個から削減)
- 平均保守性指数:57.9(維持)
- 診断エラーはゼロで、すべての品質ゲートに合格
✅ 2025年9月 - 品質と信頼性の強化
✅ 品質と信頼性の強化
テストスイートの安定化:
- 間欠的な失敗の原因となっていたテストの分離に関する問題を修正
- 適切なタイムアウト処理により、テストのクリーンアップを改善
- テストの信頼性向上のため、フィクスチャ管理を強化
- 個別実行とスイート実行の両方で、一貫したテスト結果を達成
CI/CD パイプラインの最適化:
- ワークフローを28個から16個のアクティブなワークフローに集約
- セキュリティ、ヘルス、バッジのチェックを統合した監視ワークフローを導入
- 現実的な15.6%のベースラインにより、テストカバレッジのレポートを改善
- Docker ビルドの検証とセキュリティスキャンを強化
コード品質の向上:
- すべてのリンティング(Ruff)、フォーマット、型チェック(MyPy)が安定して成功するよう改善
- 高深刻度のセキュリティ脆弱性はゼロ(Bandit、pip-audit、safety で検証)
- コードフォーマットと pre-commit フックの設定を標準化
- エラー処理とユーザー向けエラーメッセージを強化
🔧 開発者エクスペリエンス
テストの改善:
- コア機能を網羅する包括的なテスト724件
- テストの分離を改善する関数スコープのフィクスチャ
- 現実的なカバレッジのベースライン(15.6%)を確立
- 適切なクリーンアップを伴う、効率化されたテスト実行
ドキュメントの強化:
- 現在の Docker セットアップに合わせてデプロイガイドを更新
- ヘルスモニタリングエンドポイントのドキュメントを改善
- よくある問題のトラブルシューティングガイドを追加
- 現在のステータスとロードマップに関するドキュメント
コンテナーの改善:
- イメージサイズを最適化するマルチステージ Docker ビルド
- ヘルスモニタリングエンドポイント(
/health、/ready、/metrics)を内蔵 - root 以外のユーザーを使用してセキュリティを強化
- シグナル処理とグレースフルシャットダウンを改善
🧪 テストと評価
MCP 評価 ✅
ステータス:✅ 動作中 - TypeScript ラッパーによる mcp-evals の統合が完了しています!
このプロジェクトでは、信頼性とパフォーマンスを確保するため、mcp-evals を使用した包括的な評価を実施しています:
# Setup evaluation environment
npm install
npm run validate:evals
# Run evaluation suites
npm run eval:smoke # Quick smoke tests (2-3 minutes) ✅ VERIFIED
npm run eval:basic # Standard evaluations (5-10 minutes)
npm run eval:comprehensive # Full evaluation suite (15-30 minutes)
最新のテスト結果:5件中4件が優秀な結果で成功(平均4.1/5):
- サーバーの起動:4.6/5 ⭐(優秀)
- 認証:4.0/5 ⭐(良好)
- ノート操作:3.8/5 ⭐(良好)
- 検索:5.0/5 ⭐(完璧)
- エラー処理:1.4/5 ⚠️(改善が必要)
評価の種類
- スモークテスト:基本機能の検証
- CRUD 操作:ノートの作成、読み取り、更新、削除
- 検索とフィルタリング:ブール検索、タグによるフィルタリング、日付範囲
- エラー処理:認証、ネットワークの問題、エッジケース
- パフォーマンス:大規模なデータセット、並行操作
- セキュリティ:入力の検証、認証の強制
自動テスト
評価は次の場合に自動的に実行されます。
- プルリクエスト:スモークテストと基本テスト
- リリース:包括的な評価スイート
- 手動トリガー:詳細なレポート付きの全テストマトリックス
評価では、OpenAI の GPT モデルを使用して以下を評価します。
- 正確性:回答の正しさ
- 完全性:結果の網羅性
- 関連性:回答の適切さ
- 明確さ:回答の読みやすさ
- パフォーマンス:操作の効率性
📁 詳細な評価ドキュメントについては、evals/README.md をご覧ください。
従来のテスト
# Python unit tests
pytest
# Code quality checks
ruff check .
mypy simplenote_mcp
🛡️ セキュリティ
- 環境変数を介したトークンベースの認証
- Docker イメージにハードコードされた認証情報がない
- 非 root ユーザーを使用したセキュリティ強化済みコンテナ
- 本番コンテナでの読み取り専用ファイルシステム
- 不正利用を防ぐためのリソース制限
- MCP HTTP トランスポートはデフォルトでフェイルクローズです:
MCP_TRANSPORT=httpは、MCP_HTTP_AUTH_TOKENが設定されていない場合、ループバック以外のMCP_HTTP_HOSTでは起動を拒否します(共有ベアラーシークレットで、定時間比較によってチェックされます)。ループバックのバインド(127.0.0.1/localhost)はトークンなしで動作し、stdio と同等のローカルプロセスの信頼レベルに合致します。ループバック以外のバインドで DNS リバインディング対策を有効にするには、MCP_HTTP_ALLOWED_HOSTS/MCP_HTTP_ALLOWED_ORIGINS(カンマ区切り)を設定してください。これはプライベートネットワーク(VPN/Tailscale/SSH トンネル経由)向けです。静的な共有トークンには、OAuth の失効、監査、有効期限の機能がないため、トークンを設定していてもインターネットに直接公開しないでください。
🚨 トラブルシューティング
よくある問題
認証の問題:
SIMPLENOTE_EMAILとSIMPLENOTE_PASSWORDが正しく設定されていることを確認してください- 認証情報に誤字がないか確認してください
Docker の問題:
# Check container logs
docker-compose logs
# Restart services
docker-compose restart
# Rebuild if needed
docker-compose up --build
Claude Desktop の接続:
# Verify tools are available
./simplenote_mcp/scripts/verify_tools.sh
# Monitor logs
./simplenote_mcp/scripts/watch_logs.sh
診断コマンド
# Test connectivity
python simplenote_mcp/tests/test_mcp_client.py
# Check server status
./simplenote_mcp/scripts/check_server_pid.sh
# Clean up and restart
./simplenote_mcp/scripts/cleanup_servers.sh
📚 開発
mcp-evals を使ったクイックセットアップ
# One-command setup including evaluations
./setup-dev-env-with-evals.sh
# Or manual setup
git clone https://github.com/docdyhr/simplenote-mcp-server.git
cd simplenote-mcp-server
pip install -e ".[dev,test]"
npm install # For mcp-evals
ローカル開発
# Run the server
python simplenote_mcp_server.py
# Run Python tests
pytest
# Run mcp-evals
npm run eval:smoke # Quick validation
npm run eval:basic # Standard tests
npm run eval:all # Full test suite
# Code quality
ruff check .
ruff format .
mypy simplenote_mcp
開発環境
セットアップスクリプトにより、以下が作成されます。
- すべての依存関係を含む Python 開発環境
- mcp-evals 用の Node.js 環境
- 設定ファイルのサンプル
- プレコミットフック
- すべての評価ファイルの検証環境
テスト戦略
- ユニットテスト:コアロジックを対象とする従来の Python pytest
- 統合テスト:MCP プロトコル準拠のテスト
- スモークテスト:基本機能の迅速な検証
- 評価テスト:実環境での使用状況を LLM ベースで評価
- パフォーマンステスト:負荷テストとストレステスト
MCP 評価の実行
Docker 方式(推奨)
tsx で権限の問題が発生する可能性があるため、Docker で MCP 評価を実行することをおすすめします。
# Run smoke tests
./scripts/run-evals-docker.sh smoke
# Run basic evaluations
./scripts/run-evals-docker.sh basic
# Run comprehensive evaluations
./scripts/run-evals-docker.sh comprehensive
# Run all evaluations
./scripts/run-evals-docker.sh all
直接実行方式(権限に問題がない場合)
npm run eval:smoke
npm run eval:basic
npm run eval:comprehensive
npm run eval:all
Docker を使った開発
# Development with live code reload
docker-compose -f docker-compose.dev.yml up
# Build and test
docker build -t simplenote-mcp-server:test .
docker run --rm simplenote-mcp-server:test --help
🤝 貢献
貢献を歓迎します。ガイドラインについては、CONTRIBUTING.md をお読みください。
📄 ライセンス
このプロジェクトは MIT ライセンスの下で公開されています。詳細については、LICENSE ファイルをご覧ください。
🔗 関連プロジェクト
⭐ プロジェクトを支援する
このプロジェクトが役に立ったと感じたら、ぜひ GitHub でスターを付けてください。皆さまの支援は、次のことにつながります。
- 🚀 このツールが役立つ他の開発者への認知度向上
- 💪 開発とメンテナンスの継続への励み
- 📈 Model Context Protocol エコシステムにおけるコミュニティの形成
- 🛡️ コミュニティとの関わりを通じた信頼性の確認
⭐ このリポジトリにスターを付ける — クリックするだけで、私たちにとって大きな励みになります!
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
