mcpField
S
Simplenote Mcp Server

Simplenote Mcp Server

ローカル
github.com/docdyhr生産性21今日更新

Simplenote Mcp Server について

Simplenote MCP Serverは、SimplenoteのノートをClaude DesktopなどのMCPクライアントにつなぎ、ノートを記憶やコンテンツソースとして使えるようにします。高度な検索、任意の暗号化、公開共有を備えています。

主な機能

  1. 01ノートの作成、読み取り、更新、削除
  2. 02タグや日付で絞り込むブール検索
  3. 03任意のAES-256-GCMクライアント側暗号化
  4. 04ノートの公開とURL生成
  5. 05キャッシュとバックグラウンド同期

活用シーン

  1. 01Claude Desktopでのノート検索と整理
  2. 02機密ノートの暗号化
  3. 03ノートの公開URLでの共有

MCP 対応

MCP Python SDKを使い、Simplenoteのノート管理ツール、リソース、プロンプトをClaude DesktopなどのMCPクライアントに公開します。stdioとHTTPのトランスポートに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

翻訳後に原文が更新されています。最新の内容は原文をご確認ください。

Simplenote MCP サーバー

Simplenote MCP サーバーのロゴ

MCP Python SDK を使用して、Simplenote と Claude Desktop を連携する軽量な MCP サーバーです。

これにより、Claude Desktop はメモリバックエンドまたはコンテンツソースとして、Simplenote のノートを操作できます。

CI/CD パイプライン セキュリティ

Python バージョン バージョン テストカバレッジ ライセンス:MIT

PyPI ダウンロード数 Docker プル数 GitHub スター数

MCP サーバー コードスタイル:black Ruff Smithery

MseeP で検証済み

新着情報

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-handoff MCP プロンプト:セッション継続ワークフロー(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いいえfalseAPI 呼び出しをスキップします。認証情報なしでのテストに使用します
MCP_TRANSPORTいいえstdiostdio または http — MCP プロトコルトランスポート
MCP_HTTP_HOSTいいえ127.0.0.1MCP_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_noteID を指定してノートの全内容とメタデータを取得します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_tag1回の呼び出しで複数のノートにタグを付けます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 環境
  • 設定ファイルのサンプル
  • プレコミットフック
  • すべての評価ファイルの検証環境
テスト戦略
  1. ユニットテスト:コアロジックを対象とする従来の Python pytest
  2. 統合テスト:MCP プロトコル準拠のテスト
  3. スモークテスト:基本機能の迅速な検証
  4. 評価テスト:実環境での使用状況を LLM ベースで評価
  5. パフォーマンステスト:負荷テストとストレステスト
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 エコシステムにおけるコミュニティの形成
  • 🛡️ コミュニティとの関わりを通じた信頼性の確認

⭐ このリポジトリにスターを付ける — クリックするだけで、私たちにとって大きな励みになります!


MseeP.ai Security Assessment Badge

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。