🚀 Standards Finder - RFCとインターネットドラフトのMCPサーバー
このソリューションは、IETFのウェブサイトからRFCやインターネットドラフトを取得、解析、閲覧するための包括的なPython MCPサーバーです。Standards Finderは、RFC文書、インターネットドラフト、およびIETFワーキンググループの文書とプログラム的にやり取りするためのツールとリソースを提供します。
このソリューションは、@mjpitz/mcp-rfc をベースにしており、Kiro を使用したPythonポートと拡張版です。
✨ 主な機能
RFCサポート
- 番号でRFC文書を取得する
- キーワードでRFCを検索する
- RFC文書から特定のセクションを抽出する
- HTMLとTXT形式の両方のRFCを解析する
インターネットドラフトサポート
- 名前でインターネットドラフト文書を取得する(自動的に最新バージョンを検出)
- IETF Datatracker APIを使用してキーワードでインターネットドラフトを検索する
- 自動的または明示的にインターネットドラフトの最新バージョンを取得する
- インターネットドラフトから特定のセクションを抽出する
- HTMLとTXT形式の両方のインターネットドラフトを解析する
- バージョン認識機能(例:
draft-name-05 と draft-name で最新バージョンを区別)
OpenID Foundationサポート
- 名前でOpenID Foundationの仕様を取得する
- キーワードでOpenID仕様を検索する
- OpenID仕様から特定のセクションを抽出する
- すべての主要なOpenID仕様(Connect Core、Discovery、Registrationなど)をサポートする
- メタデータを抽出しながらHTML形式の仕様を解析する
- 長時間実行される操作に対する進捗通知
ワーキンググループサポート
- 完全なワーキンググループ文書 - 任意のIETFワーキンググループのすべてのRFCとインターネットドラフトを取得する
- アクティブな文書フィルタリング - 期限切れ、撤回、または置き換えられたドラフトを自動的に除外する
- ワーキンググループのメタデータ - ワーキンググループの情報、説明、およびステータスを含む
- 柔軟なフィルタリング - RFCまたはドラフトを含める/除外することができ、タイプごとに制限を設定する
- 人気のあるワーキンググループ - httpbis、oauth、tls、quic、dnsopなどでテスト済み
一般的な機能
- スマートキャッシュ - 繰り返しのリクエストのパフォーマンスを向上させる
- 包括的なメタデータ - 著者、日付、ステータス、概要などを抽出する
- セクションベースの解析 - セクションとサブセクションで文書をナビゲートする
- 複数の出力形式 - 完全な文書、メタデータのみ、またはセクションのみ
- 堅牢なエラーハンドリング - 適切なフォールバックと有益なエラーメッセージ
- MCPプロトコル準拠 - MCP互換のクライアントとMCP Inspectorと完全に統合される
- デュアルトランスポートサポート - stdioとHTTPトランスポートモードの両方をサポートする
- 強化されたRFC解析 - さまざまなRFC形式のタイトル抽出を改善する
- 進捗通知 - 長時間実行される操作のリアルタイムの進捗更新
- 高度なロギング - 詳細な初期化フェーズの追跡を含む包括的なロギング
- MCP Inspector互換 - パラメータ検証付きの適切なツールスキーマ形式
- 通知サポート - すべての標準的なMCP通知を適切に処理する
- トランスポートの堅牢性 - 強化されたエラーハンドリングと接続管理
📦 インストール
Standards FinderはPythonの標準ライブラリのみを使用しています。
python3 standard_finder.py
python3 standard_finder.py --http
python3 standard_finder.py --http --port 8080
📚 詳細ドキュメント
MCPクライアントの設定
Stdioモード(デフォルト)の場合:
{
"mcpServers": {
"rfc-server": {
"command": "python3",
"args": ["standard_finder.py"],
"cwd": "/path/to/mcp-rfc",
"disabled": false,
"autoApprove": []
}
}
}
または、HTTP URLを介して直接接続する:
サーバーを起動する:
python3 /path/to/mcp-standard-finder/standard_finder.py --http --port 3000
次に、MCPクライアントを設定する:
{
"mcpServers": {
"rfc-server": {
"url": "http://localhost:3000/mcp",
"transport": "http",
"disabled": false,
"autoApprove": []
}
}
}
uvxを使用する(Pythonに推奨)
uvx --from . standard_finder.py
uvxで設定する:
{
"mcpServers": {
"rfc-server": {
"command": "uvx",
"args": ["--from", ".", "standard_finder.py"],
"cwd": "/path/to/mcp-rfc",
"disabled": false,
"autoApprove": []
}
}
}
利用可能なツール
RFCツール
get_rfc
番号でRFC文書を取得する。
パラメータ:
number (文字列、必須): RFC番号(例:"2616")
format (文字列、オプション): 出力形式(full、metadata、sections)、デフォルト: "full"
例:
{
"number": "2616",
"format": "metadata"
}
search_rfcs
キーワードでRFCを検索する。
パラメータ:
query (文字列、必須): 検索キーワードまたはフレーズ
limit (数値、オプション): 返す結果の最大数、デフォルト: 10
例:
{
"query": "http protocol",
"limit": 5
}
get_rfc_section
RFCから特定のセクションを取得する。
パラメータ:
number (文字列、必須): RFC番号(例:"2616")
section (文字列、必須): 取得するセクションのタイトルまたは番号
例:
{
"number": "2616",
"section": "Introduction"
}
インターネットドラフトツール
get_internet_draft
名前でインターネットドラフト文書を取得する。バージョンが指定されていない場合は、自動的に最新バージョンを取得する。
パラメータ:
name (文字列、必須): バージョン有りまたは無しのインターネットドラフト名(例:"draft-ietf-httpbis-http2-17" または "draft-ietf-httpbis-http2" で最新版)
format (文字列、オプション): 出力形式(full、metadata、sections)、デフォルト: "full"
例:
{
"name": "draft-ietf-httpbis-http2-17",
"format": "metadata"
}
{
"name": "draft-ietf-httpbis-http2",
"format": "full"
}
search_internet_drafts
キーワードでインターネットドラフトを検索する。
パラメータ:
query (文字列、必須): 検索キーワードまたはフレーズ
limit (数値、オプション): 返す結果の最大数、デフォルト: 10
例:
{
"query": "http2 protocol",
"limit": 5
}
get_internet_draft_section
インターネットドラフトから特定のセクションを取得する。
パラメータ:
name (文字列、必須): インターネットドラフト名(例:"draft-ietf-httpbis-http2-17")
section (文字列、必須): 取得するセクションのタイトルまたは番号
例:
{
"name": "draft-ietf-httpbis-http2-17",
"section": "Introduction"
}
get_working_group_documents
特定のIETFワーキンググループのすべてのアクティブなRFCとインターネットドラフトを取得する。
パラメータ:
working_group (文字列、必須): IETFワーキンググループの頭字語(例:"httpbis"、"oauth"、"tls")
include_rfcs (ブール値、オプション): 結果にRFCを含める(デフォルト: true)
include_drafts (ブール値、オプション): 結果にインターネットドラフトを含める(デフォルト: true)
limit (数値、オプション): タイプごとの最大文書数(デフォルト: 50)
例:
{
"working_group": "httpbis",
"include_rfcs": true,
"include_drafts": true,
"limit": 20
}
レスポンスには以下が含まれます:
- ワーキンググループの情報(名前、説明、状態)
- ワーキンググループによって公開されたRFCのリスト
- ワーキンググループからのアクティブなインターネットドラフトのリスト
- 要約統計情報(総数)
OpenID Foundationツール
get_openid_spec
名前でOpenID Foundationの仕様を取得する。
パラメータ:
name (文字列): OpenID仕様の名前または識別子
format (文字列、オプション): 出力形式 - "full"(デフォルト)、"metadata"、または "sections"
例:
await mcp.call_tool('get_openid_spec', {'name': 'openid-connect-core'})
await mcp.call_tool('get_openid_spec', {'name': 'openid-connect-discovery', 'format': 'metadata'})
await mcp.call_tool('get_openid_spec', {'name': 'oauth-2.0-multiple-response-types', 'format': 'sections'})
search_openid_specs
キーワードでOpenID Foundationの仕様を検索する。
パラメータ:
query (文字列): 検索クエリ/キーワード
limit (整数、オプション): 最大結果数(デフォルト: 10)
例:
await mcp.call_tool('search_openid_specs', {'query': 'connect'})
await mcp.call_tool('search_openid_specs', {'query': 'oauth', 'limit': 5})
get_openid_spec_section
OpenID Foundationの仕様から特定のセクションを取得する。
パラメータ:
name (文字列): OpenID仕様の名前
section (文字列): 取得するセクションのタイトルまたは識別子
例:
await mcp.call_tool('get_openid_spec_section', {
'name': 'openid-connect-core',
'section': 'Authentication'
})
利用可能なリソース
リソーステンプレート
RFCリソース
rfc://{number}: 番号でRFC文書を取得する
rfc://search/{query}: キーワードでRFCを検索する
インターネットドラフトリソース
draft://{name}: 名前でインターネットドラフト文書を取得する(バージョンが指定されていない場合は最新バージョンを取得)
draft://search/{query}: キーワードでインターネットドラフトを検索する
draft://latest/{basename}: ベース名でインターネットドラフトの最新バージョンを取得する
ワーキンググループリソース
wg://{group}: ワーキンググループのすべての文書(RFCとインターネットドラフト)を取得する
wg://{group}/rfcs: ワーキンググループのRFCのみを取得する
wg://{group}/drafts: ワーキンググループのインターネットドラフトのみを取得する
OpenID Foundationリソース
openid://{name}: 名前でOpenID Foundationの仕様を取得する
openid://search/{query}: キーワードでOpenID仕様を検索する
コマンドラインオプション
python3 standard_finder.py --help
python3 standard_finder.py
python3 standard_finder.py --stdio
python3 standard_finder.py --http
python3 standard_finder.py --http --port 8080
python3 standard_finder.py --log-level DEBUG
python3 standard_finder.py --log-dir /var/log/rfc
ロギング
サーバーには、自動ローテーションと強化されたデバッグ機能を備えた包括的なロギングが含まれています。
ログの機能
- インスタンス固有のログファイル - 各サーバーインスタンスに独自のログファイルが作成される
- 自動ローテーション - ログファイルは10MBでローテーションされ、5つのバックアップファイルが保持される
- タイムスタンプ付きのファイル名 - 形式:
rfc_server_YYYYMMDD_HHMMSS_PID.log
- 複数のログレベル - DEBUG、INFO、WARNING、ERROR
- 構造化ロギング - タイムスタンプ、関数名、および行番号が含まれる
- 強化された初期化ロギング - MCP初期化フェーズの詳細な追跡
- リクエスト/レスポンスロギング - MCPプロトコルの交換を完全に可視化する
- 進捗通知 - 長時間実行される操作のリアルタイムのロギング
- エラー診断 - 完全なコンテキストを持つ包括的なエラーレポート
ログの場所
- デフォルト:
/tmp/rfc_server/
- カスタム:
--log-dir オプションを使用する
- パーミッション: ディレクトリが書き込み可能であることを確認する
ログの内容
- サーバーのライフサイクル: 詳細な設定を伴う起動/シャットダウンイベント
- MCPプロトコル: 完全なJSONを含むすべてのリクエスト、レスポンス、および通知
- 初期化フェーズ: クライアントの初期化プロセスの詳細なロギング
- ツールの実行: タイミングを含むRFCおよびインターネットドラフトの取得操作
- エラー条件: 完全なリクエストコンテキストを持つスタックトレース
- パフォーマンスメトリクス: キャッシュヒット、レスポンスサイズ、およびタイミングデータ
- トランスポート層: STDIOおよびHTTP接続管理
- 検証: JSON-RPC 2.0の準拠とスキーマ検証
強化された初期化ロギング
🚀 INITIALIZE REQUEST RECEIVED
Handling request: initialize (ID: 1)
Request timestamp: 2024-10-01T18:08:29.123456
Validating initialize request format:
✅ protocolVersion: str
Protocol version: 2024-11-05
✅ clientInfo: dict
Client name: mcp-client
Client version: 1.0.0
📤 SENDING INITIALIZE RESPONSE
==================================================
Initialize response being sent to client:
Response size: 456 bytes
Response ID: 1 (type: int)
Raw JSON: {"jsonrpc":"2.0","id":1,"result":...}
==================================================
✅ INITIALIZE RESPONSE SENT SUCCESSFULLY
📢 NOTIFICATIONS/INITIALIZED RECEIVED
✅ Client initialization confirmed - server is ready for requests
ログエントリの例
2024-10-01 18:08:29,123 - rfc_server - INFO - main:45 - Starting RFC MCP Server with arguments: {'http': True, 'port': 3000}
2024-10-01 18:08:29,456 - rfc_server - INFO - handle_request:289 - 🚀 INITIALIZE REQUEST RECEIVED
2024-10-01 18:08:29,789 - rfc_server - INFO - handle_request:345 - ✅ JSON-RPC 2.0 version confirmed
2024-10-01 18:08:30,012 - rfc_server - INFO - run_stdio:837 - ✅ INITIALIZE RESPONSE SENT SUCCESSFULLY
2024-10-01 18:08:30,234 - rfc_server - INFO - handle_request:567 - 📢 NOTIFICATIONS/INITIALIZED RECEIVED
HTTPモードのテスト
HTTPサーバーを起動する:
python3 standard_finder.py --http
エンドポイントをテストする:
curl http://localhost:3000/health
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}'
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_rfc","arguments":{"number":"2616","format":"metadata"}}}'
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"get_working_group_documents","arguments":{"working_group":"oauth","limit":10}}}'
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"get_openid_spec","arguments":{"name":"openid-connect-core","format":"metadata"}}}'
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":6,"method":"tools/call","params":{"name":"search_openid_specs","arguments":{"query":"oauth","limit":5}}}'
開発
プロジェクト構造
standard_finder.py # メインのMCPサーバー(依存関係なし)
requirements.txt # オプションのPython依存関係
tests/
test_final.py # 包括的なテストスイート
README.md # このファイル
output/ # 生成された出力ファイル
テストの実行
python3 tests/test_final.py
npm test
MCP Inspector互換性
このサーバーは、MCPツールのデバッグとテストのために MCP Inspector と完全に互換性があります。
スキーマ形式
- ラップされたパラメータ - ツールのスキーマは、MCP Inspectorが期待する形式で名前付きの入力ラッパーを使用します(例:
GetRfcInput、SearchRfcsInput)
- 下位互換性 - 既存のクライアント用に直接パラメータ形式もサポートします
- 自動検出 - 両方のパラメータ形式を自動的に検出して処理します
- 包括的なスキーマ - すべての9つのツールには、適切な検証付きの詳細なJSONスキーマ定義があります
- パラメータの説明 - より良いユーザーエクスペリエンスのための豊富なパラメータの説明と制約
プロトコル準拠
- JSON-RPC 2.0 - JSON-RPC 2.0仕様に完全に準拠しています
- MCP通知 -
notifications/initialized やその他の標準的な通知を適切に処理します
- IDの一貫性 - リクエストとレスポンス間でIDのタイプの一貫性を維持します
- エラーハンドリング - 適切なエラーコードを持つ適切なエラーレスポンス形式
MCP Inspectorでのテスト
python3 standard_finder.py --http --port 3000
デバッグ機能
- 強化されたロギング - 初期化フェーズとすべてのMCP操作の詳細なロギング
- リクエスト/レスポンスの追跡 - MCPプロトコルの交換を完全に可視化する
- 検証ロギング - リクエストとレスポンスの詳細な検証
- エラー診断 - スタックトレースを含む包括的なエラーレポート
トランスポートモード
Stdioモード(デフォルト)
- ✅ MCP標準 - 公式のMCPトランスポートプロトコル
- ✅ プロセスベース - クライアントがサーバーをサブプロセスとして起動する
- ✅ 信頼性が高い - 直接のプロセス通信
- ✅ 安全 - ネットワークに公開されない
- ✅ Q CLI互換 - MCPクライアントと完璧に動作する
HTTPモード
- 🌐 ネットワークベース - サーバーがHTTPサービスとして実行される
- 🔧 開発/テスト - デバッグに便利
- 🌍 Web統合 - CORSが有効になっており、ブラウザからのアクセスが可能
- 🔒 ネットワークセキュリティ - 追加のセキュリティ対策が必要
クイックスタートの例
MCPクライアントでの使用
設定が完了したら、MCP互換のクライアントでツールを使用できます。
await mcp.call_tool('get_rfc', {'number': '2616', 'format': 'metadata'})
await mcp.call_tool('search_rfcs', {'query': 'HTTP', 'limit': 5})
await mcp.call_tool('get_internet_draft', {'name': 'draft-ietf-httpbis-http2'})
await mcp.call_tool('search_internet_drafts', {'query': 'websocket'})
await mcp.call_tool('get_working_group_documents', {
'working_group': 'oauth',
'include_rfcs': True,
'include_drafts': True,
'limit': 20
})
await mcp.call_tool('get_working_group_documents', {
'working_group': 'tls',
'include_rfcs': True,
'include_drafts': False,
'limit': 10
})
await mcp.call_tool('get_openid_spec', {
'name': 'openid-connect-core',
'format': 'metadata'
})
await mcp.call_tool('search_openid_specs', {
'query': 'oauth',
'limit': 5
})
リソースの使用
await mcp.read_resource('rfc://2616')
await mcp.read_resource('draft://draft-ietf-httpbis-http2')
await mcp.read_resource('rfc://search/HTTP')
await mcp.read_resource('wg://httpbis')
await mcp.read_resource('wg://oauth/rfcs')
await mcp.read_resource('wg://tls/drafts')
📄 ライセンス
このプロジェクトはApache License 2.0の下でライセンスされています。詳細については LICENSE ファイルを参照してください。
最近の改善点
バージョン0.2504.4 - 最新の機能強化
MCP Inspector互換性
- ツールスキーマ形式 - 名前付き入力ラッパーを使用したMCP Inspector互換形式に更新されました
- パラメータ処理 - ラップされたパラメータと直接パラメータの両方の形式をサポートします
- 自動検出 - パラメータ形式を自動的に検出して処理します
- 包括的なスキーマ - すべての9つのツールに詳細なJSONスキーマ定義があります
プロトコル準拠
- JSON-RPC 2.0 - JSON-RPC 2.0仕様に完全に準拠しています
- MCP通知 -
notifications/initialized やその他の標準的な通知のサポートが追加されました
- IDの一貫性 - リクエストとレスポンス間のIDタイプの保存が強化されました
- エラーハンドリング - 適切なエラーコードを持つエラーレスポンス形式が改善されました
強化されたロギング
- 初期化フェーズの追跡 - MCP初期化シーケンス全体の詳細なロギング
- リクエスト/レスポンスロギング - すべてのMCPプロトコル交換の完全な可視性
- 進捗通知 - 長時間実行される操作のリアルタイムのロギング
- 検証ロギング - リクエストとレスポンスの包括的な検証
- エラー診断 - 完全なコンテキストとスタックトレースを持つ強化されたエラーレポート
トランスポート層の改善
- STDIOの堅牢性 - エラーハンドリングと接続管理が強化されました
- レスポンスサイズ管理 - STDIOモードでの大きなレスポンスの自動切り捨て
- 文字サニタイズ - レスポンス内の特殊文字の処理が改善されました
- 接続追跡 - 接続のライフサイクルとステータスの詳細なロギング
ツールの強化
- 進捗コールバック - 主要なツールに進捗通知サポートが追加されました
- パラメータ検証 - 詳細なエラーメッセージを持つ強化されたパラメータ検証
- OpenID Foundationサポート - OpenID仕様カタログとの完全な統合
- ワーキンググループ文書 - 強化されたメタデータとフィルタリング機能
互換性
- 下位互換性 - すべての既存のクライアントは変更なしで引き続き動作します
- MCP Inspector対応 - デバッグ用にMCP Inspectorと完全に互換性があります
- Q CLI互換 - Q CLIやその他のMCPクライアントとシームレスに動作します
- HTTP/STDIOデュアルモード - 両方のトランスポートモードが完全にサポートされ、テストされています
トラブルシューティング
一般的な問題
MCP Inspector接続問題
python3 standard_finder.py --http --port 3000
curl http://localhost:3000/health
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
STDIOモードの問題
- 大きなレスポンスの切り捨て - STDIOモードでは200KBを超えるレスポンスは自動的に切り捨てられます
- 文字エンコーディング - 特殊文字はSTDIO互換性のためにサニタイズされます
- 接続切断 - トランスポートのクローズ問題についてログを確認してください
ロギングとデバッグ
python3 standard_finder.py --log-level DEBUG
ls -la /tmp/rfc_server/
tail -f /tmp/rfc_server/rfc_server_*.log
ツールのパラメータ問題
- MCP Inspector形式 -
{"GetRfcInput": {"number": "2616"}} のようなラップされたパラメータを使用します
- 直接形式 -
{"number": "2616", "format": "metadata"} のような直接パラメータを使用します
- 自動検出 - サーバーは両方の形式を自動的に検出して処理します
パフォーマンス最適化
- キャッシュ - 繰り返しのリクエストのためにレスポンスがメモリにキャッシュされます
- 形式の選択 - 完全なコンテンツが必要ない場合は、より高速なレスポンスのために
"metadata" 形式を使用します
- 制限パラメータ - タイムアウトを避けるために、検索操作に適切な制限を使用します
実装詳細
サーバーは3つの主要なコンポーネントを実装しています。
- RFCサービス - RFCからデータを取得、解析、抽出する機能を強化したタイトル解析を備えています
- インターネットドラフトサービス - インターネットドラフトからデータを取得、解析、抽出する機能をワーキンググループサポートとともに備えています
- MCPサーバー - MCPプロトコルを実装し、stdioとHTTPトランスポートの両方でツールとリソースを公開します
Standards FinderはPythonの標準ライブラリのみを使用し、最大の互換性のためにTXT形式の解析を行います。インターネットドラフトサービスは、強化された検索機能とワーキンググループ文書の取得のためにIETF Datatracker APIと統合されています。
主要な機能
スマートなバージョン管理
インターネットドラフトサービスは、特定のバージョンまたは最新バージョンを要求しているかを自動的に検出します。
draft-ietf-httpbis-http2-17 → バージョン17を具体的に取得します
draft-ietf-httpbis-http2 → 自動的に利用可能な最新バージョンを取得します
ワーキンググループの統合
- 完全な文書取得 - 任意のIETFワーキンググループのすべてのRFCとインターネットドラフトを取得します
- リアルタイムデータ - 最新の情報を得るためにライブのIETF Datatracker APIを使用します
- スマートフィルタリング - 期限切れ、撤回、または置き換えられた文書を自動的に除外します
- 柔軟なオプション - 必要に応じて文書の種類を選択し、制限を設定します
堅牢なエラーハンドリング
- ネットワークのタイムアウトや障害は適切に処理されます
- 無効なRFC/ドラフト番号は有益なエラーメッセージを返します
- フォールバックメカニズムは最大の互換性を保証します
- デバッグと監視のための包括的なロギング
データソース
- RFC - 公式のIETF RFCリポジトリ(rfc-editor.org)
- インターネットドラフト - IETF Datatracker(datatracker.ietf.org)
- ワーキンググループ - IETF Datatracker API(datatracker.ietf.org/api)
- 検索 - IETF Datatracker APIとウェブスクレイピングのフォールバック
サポートされている人気のワーキンググループ
- httpbis - HTTPプロトコル仕様
- oauth - OAuth認証と承認
- tls - トランスポート層セキュリティ
- quic - QUICトランスポートプロトコル
- dnsop - DNS操作
- jose - JSONオブジェクトの署名と暗号化
- ietf - 一般的なIETF文書
- その他多数...