Clone
2
Troubleshooting
Ole Valente edited this page 2026-07-07 18:08:07 +02:00

Troubleshooting

Extension Not Showing in Goose

Symptom

The Gitea tools don't appear in your Goose session even after configuring config.yaml.

Fix: Start a New Session

Goose caches extensions per session. If you added the gitea extension to your config while a session was active, the extension won't appear in that session.

  1. Start a brand new chat (not a continuation)
  2. The fresh session picks up all enabled extensions from config.yaml

Still Not Working?

  1. Fully quit Goose (Cmd+Q) and relaunch
  2. Start a new chat immediately — don't restore any conversations
  3. Verify: ask "List my Gitea repositories"

Binary Not Found

Symptom

Goose logs show: No such file or directory (os error 2) when trying to spawn gitea-mcp.

Fix

Make sure the binary is in a directory that Goose can find.

# Check binary exists and is executable
ls -la /usr/local/bin/gitea-mcp
/usr/local/bin/gitea-mcp -v

# If missing, reinstall
sudo cp /tmp/gitea-mcp /usr/local/bin/gitea-mcp
sudo chmod +x /usr/local/bin/gitea-mcp

Goose's SearchPaths

Goose searches these directories (in order):

  • ~/.local/bin
  • /usr/local/bin
  • /opt/homebrew/bin (macOS)
  • Your system $PATH

Put gitea-mcp in any of these directories and it will be found.

Authentication Errors

Symptom

Tools return 401 Unauthorized or similar.

Fix

  1. Verify your token: curl -s -H "Authorization: token YOUR_TOKEN" https://YOUR_GITEA/api/v1/user
  2. Check that the token in config.yaml args is correct
  3. Ensure your token has the required scopes (read:repository, write:repository, etc.)
  4. Tokens don't expire by default, but check your Gitea instance settings

"Extension gitea is not valid"

Symptom

Calling listResources for "gitea" returns "Extension gitea is not valid".

Fix

This means the extension exists in the config but isn't loaded in the current session. Start a new chat. If that doesn't help, check the goosed logs:

ls -t ~/.local/state/goose/logs/server/2026-07-*/*.log | head -1 | xargs grep -i gitea

Look for errors like:

  • Failed to create extension 'gitea' — the binary isn't found or can't be spawned
  • Skipping malformed extension config entry — the YAML is invalid
  • Unknown ecosystem for command — harmless info message, not an error

Config Not Loading

Symptom

The gitea extension doesn't appear in ~/.config/goose/config.yaml after adding it.

Fix

Make sure your YAML indentation is correct. The gitea entry must be at the same indentation level as other extensions (2 spaces from the left margin, under extensions:).

extensions:
  gitea:           # ← 2 spaces
    enabled: true   # ← 4 spaces
    type: stdio     # ← 4 spaces

The config.yaml file is parsed by Goose's Rust backend. Invalid YAML causes the entry to be silently skipped.

Viewing Goose Logs

Goose writes logs to:

Log Location Contains
goosed (server) ~/.local/state/goose/logs/server/ Extension loading, tool execution, errors
App (Electron) ~/Library/Application Support/Goose/logs/main.log (macOS) Frontend events, UI errors
Startup ~/Library/Application Support/Goose/logs/startup/ goosed spawn events

To tail the goosed log in real time:

tail -f ~/.local/state/goose/logs/server/$(date +%Y-%m-%d)/*.log | grep -i gitea

Can't Clone/Push via SSH

Symptom

git clone fails with "Permission denied" or "Connection refused".

Fix

The MCP handles API calls via HTTPS. Git operations use SSH on port 222 (Gitea's default SSH port, not 22).

Check your ~/.ssh/config:

Host YOUR_GITEA_HOST
    Port 222
    User git
    IdentityFile ~/.ssh/your_key

Verify: ssh -T git@YOUR_GITEA_HOST -p 222

See SSH Setup for details.

Rate Limiting

Gitea may rate-limit API requests. The gitea-mcp binary uses pagination (default 30 items per page) and respects Gitea's rate limits. If you hit limits, increase timeout in the config or reduce the frequency of API calls.

Need More Help?

  • gitea-mcp source repository — report issues here
  • Gitea instance: https://gt.covalente.dk — check server status
  • Goose logs: ~/.local/state/goose/logs/server/ — detailed error information