Local macOS MCP server for Cardhop using documented Cardhop integration routes:
- AppleScript:
tell application "Cardhop" to parse sentence "..." - URL scheme:
x-cardhop://parse?s=...
update is intentionally implemented as a freeform alias over parse (no undocumented routes).
- macOS
uv- Python 3.13+
uv syncuv run python app/server.pyAdd this server block to your Codex config ($CODEX_HOME/config.toml, usually ~/.codex/config.toml):
[mcp_servers.cardhop]
enabled = true
command = "bash"
args = ["-lc", "cd /absolute/path/to/cardhop-mcp && PYTHONPATH=. uv run python app/server.py"]schema: returns the locked schema bundle (cardhop.mcp.tools.v1)parse: send a sentence to Cardhop (auto|applescript|url_scheme, optionaladd_immediately,dry_run)add: convenience wrapper for parse withadd_immediately=trueupdate: freeform update guidance over parse semanticshealthcheck: local readiness status for Cardhop + transport commands
For best update behavior, use freeform instructions in this form:
"<existing name> <changed fields>"- Example:
Jane Doe new email jane@acme.com mobile 555-123-4567
uv run pytest
uv run ruff check .
uv run mypy .app/server.py: FastMCP server entrypointapp/tools.py: Cardhop schema and tool logictests/test_tools.py: unit tests for parsing, transport, and health behaviorpyproject.toml: project metadata and dependencies
uv sync
uv run pytest
uv run ruff check .
uv run mypy .