Troubleshooting¶
Common issues and solutions when running ADIF-MCP.
adif-mcp command not found¶
Symptom: Running adif-mcp returns "command not found."
Causes and fixes:
- Not installed: Install with
pip install adif-mcporuv tool install adif-mcp. - Not on PATH: If installed with
pip install --user, ensure~/.local/binis in yourPATH. - Wrong venv: If using a virtual environment, make sure it's activated:
source .venv/bin/activate. - uv tool: If installed via
uv tool install, the binary is at~/.local/bin/adif-mcp. Ensure~/.local/binis onPATH.
Verify:
which adif-mcp
adif-mcp --help
MCP client can't connect¶
Symptom: Your AI agent doesn't see any ADIF tools after configuration.
Fixes:
- Restart the client. Claude Desktop, Cursor, and VS Code all require a restart after editing MCP config.
- Check the command path. The
"command"in your MCP config must resolve to the actual binary. Test by running the command in your terminal first. - Check JSON syntax. A trailing comma or missing brace in your MCP config will silently fail.
- stdio transport. ADIF-MCP uses
stdiotransport by default. No port or URL configuration is needed.
Test the server directly:
echo '{"jsonrpc":"2.0","method":"initialize","id":1,"params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.1"}}}' | adif-mcp
You should see a JSON response with the server's capabilities.
Keyring backend not found (Linux)¶
Symptom: Errors like No recommended backend was available when using persona/credential features.
Cause: The keyring library needs a system secret service. Headless Linux servers often lack one.
Fixes:
sudo apt install gnome-keyring # Debian/Ubuntu
sudo dnf install gnome-keyring # Fedora/RHEL
Install the keyrings.alt backend for file-based storage:
pip install keyrings.alt
Or set the plaintext backend explicitly:
export PYTHON_KEYRING_BACKEND=keyrings.alt.file.PlaintextKeyring
Warning
The plaintext backend stores credentials unencrypted. Use it only on single-user machines.
parse_adif file not found¶
Symptom: parse_adif returns a file-not-found error even though the file exists.
Cause: The file_path parameter requires an absolute path.
Fix: Use the full path:
/home/user/logs/mylog.adi (correct)
~/logs/mylog.adi (may not work -- depends on agent)
mylog.adi (will not work)
Pre-commit hook failures¶
Symptom: git commit is rejected by pre-commit hooks (ruff, mypy, interrogate).
Fix workflow:
# 1. Fix the issues reported by the hook
# 2. Stage the fixes
git add -u
# 3. Commit again (do NOT use --no-verify)
git commit -m "fix: resolve lint issues"
Common hook issues:
| Hook | Fix |
|---|---|
ruff |
Run ruff check --fix . then ruff format . |
mypy |
Add type annotations to new/changed code |
interrogate |
Add docstrings to new public functions/classes |
MCP Inspector debugging¶
For interactive debugging, run the server with streamable-http transport:
adif-mcp --transport streamable-http
Then connect with MCP Inspector to test tools interactively.