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.
- Start a brand new chat (not a continuation)
- The fresh session picks up all enabled extensions from
config.yaml
Still Not Working?
- Fully quit Goose (Cmd+Q) and relaunch
- Start a new chat immediately — don't restore any conversations
- 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
- Verify your token:
curl -s -H "Authorization: token YOUR_TOKEN" https://YOUR_GITEA/api/v1/user - Check that the token in
config.yamlargs is correct - Ensure your token has the required scopes (read:repository, write:repository, etc.)
- 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 spawnedSkipping malformed extension config entry— the YAML is invalidUnknown 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