-
Rust で MCP サーバー雛形を構築し、Canva 連携を正攻法で扱う。
-
Affinity は将来 API 公開時に差し替え可能なブリッジ(監視/OS自動化)として拡張。
- CANONICAL_ID:
affinity-mcp - CANONICAL_DISPLAY:
AffinityMCP - CANONICAL_CONST/ENV_PREFIX:
AFFINITY_MCP - BIN_CMD:
affinity-mcp - 旧名は禁止(ゼロ・ドリフト・ポリシー)
Cargo.toml/src/main.rs/src/tools/{canva,affinity}.rs- npm ラッパー:
package.json/scripts/{run,postinstall}.js README.md(英語固定章立て)/SPEC.md(本書)
# ビルド
cargo build --release
# バイナリ配置
mkdir -p dist
cp target/release/affinity-mcp dist/
# 実行(npxラッパ)
npx affinity-mcp- MCP Rust SDK 導入:
tools::register_allをServer::new(..) -> register() -> serve_stdio()に置換 - Affinity OS アダプタ: macOS AppleScript / Windows PowerShell/UIA
- postinstall.js:
cargo-dist+ GitHub Releases で自動配布
.cursor/mcp.jsonをリポジトリに含めない(README にサンプルのみ)
node -v # >=18
cargo --version
cargo build --release
npx affinity-mcp
npm pack --dry-run