aws / aws/amazon-q-developer-cli
Tools Missing After Loading Conversation
- Dominant language
- Rust
- Stars
- 2k
- Forks
- 439
- PR merge metrics
- No merged PRs in 30d
Description
### Checks
- [x] I have searched [github.com/aws/amazon-q-developer-cli/issues](https://github.com/aws/amazon-q-developer-cli/issues?q=) and there are no duplicates of my issue
- [x] I have run `q doctor` in the affected terminal session
- [x] I have run `q restart` and replicated the issue again
### Operating system
Linux 6.8.0-60-generic - Ubuntu 22.04.5 LTS
### Expected behaviour
I have a number of MCPs set up, and they correctly show the list of provided tools when I start my sessions with `q chat`. However, when I simply load a previous conversation, some of my tools disappear. The MCP server docker containers are still running, and show no errors (actually they show no new entries at all, between startup and these last steps).
### Actual behaviour
```
q chat
✓ jira loaded in 0.89 s
✓ gerrit loaded in 0.91 s
✓ opengrok loaded in 0.94 s
✓ jenkins loaded in 1.04 s
✓ confluence loaded in 1.05 s
⢠⣶⣶⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⣿⣶⣦⡀⠀
⠀⠀⠀⣾⡿⢻⣿⡆⠀⠀⠀⢀⣄⡄⢀⣠⣤⣤⡀⢀⣠⣤⣤⡀⠀⠀⢀⣠⣤⣤⣤⣄⠀⠀⢀⣤⣤⣤⣤⣤⣤⡀⠀⠀⣀⣤⣤⣤⣀⠀⠀⠀⢠⣤⡀⣀⣤⣤⣄⡀⠀⠀⠀⠀⠀⠀⢠⣿⣿⠋⠀⠀⠀⠙⣿⣿⡆
⠀⠀⣼⣿⠇⠀⣿⣿⡄⠀⠀⢸⣿⣿⠛⠉⠻⣿⣿⠛⠉⠛⣿⣿⠀⠀⠘⠛⠉⠉⠻⣿⣧⠀⠈⠛⠛⠛⣻⣿⡿⠀⢀⣾⣿⠛⠉⠻⣿⣷⡀⠀⢸⣿⡟⠛⠉⢻⣿⣷⠀⠀⠀⠀⠀⠀⣼⣿⡏⠀⠀⠀⠀⠀⢸⣿⣿
⠀⢰⣿⣿⣤⣤⣼⣿⣷⠀⠀⢸⣿⣿⠀⠀⠀⣿⣿⠀⠀⠀⣿⣿⠀⠀⢀⣴⣶⣶⣶⣿⣿⠀⠀⠀⣠⣾⡿⠋⠀⠀⢸⣿⣿⠀⠀⠀⣿⣿⡇⠀⢸⣿⡇⠀⠀⢸⣿⣿⠀⠀⠀⠀⠀⠀⢹⣿⣇⠀⠀⠀⠀⠀⢸⣿⡿
⢀⣿⣿⠋⠉⠉⠉⢻⣿⣇⠀⢸⣿⣿⠀⠀⠀⣿⣿⠀⠀⠀⣿⣿⠀⠀⣿⣿⡀⠀⣠⣿⣿⠀⢀⣴⣿⣋⣀⣀⣀⡀⠘⣿⣿⣄⣀⣠⣿⣿⠃⠀⢸⣿⡇⠀⠀⢸⣿⣿⠀⠀⠀⠀⠀⠀⠈⢿⣿⣦⣀⣀⣀⣴⣿⡿⠃
⠚⠛⠋⠀⠀⠀⠀⠘⠛⠛⠀⠘⠛⠛⠀⠀⠀⠛⠛⠀⠀⠀⠛⠛⠀⠀⠙⠻⠿⠟⠋⠛⠛⠀⠘⠛⠛⠛⠛⠛⠛⠃⠀⠈⠛⠿⠿⠿⠛⠁⠀⠀⠘⠛⠃⠀⠀⠘⠛⠛⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠿⢿⣿⣿⣋⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⢿⡧
╭─────────────────────────────── Did you know? ────────────────────────────────╮
│ │
│ Get notified whenever Q CLI finishes responding. Just run q settings │
│ chat.enableNotifications true │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
/help all commands • ctrl + j new lines • ctrl + s fuzzy search
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🤖 You are chatting with claude-4-sonnet
> /tools
Tool Permission
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔Built-in:
- execute_bash * trust read-only commands
- fs_read * trusted
- fs_write * not trusted
- report_issue * trusted
- use_aws * trust read-only commands
confluence (MCP):
- confluence___add_comment * not trusted
- confluence___create_page * not trusted
- confluence___get_content * not trusted
- confluence___get_page_attachments * not trusted
- confluence___get_page_children * not trusted
- confluence___get_space * not trusted
- confluence___list_spaces * not trusted
- confluence___search_content * not trusted
- confluence___update_page * not trusted
gerrit (MCP):
- gerrit___add_review_comment * not trusted
- gerrit___get_file_content * not trusted
- gerrit___get_review * not trusted
- gerrit___get_review_comments * not trusted
- gerrit___get_review_files * not trusted
jenkins (MCP):
- jenkins___get_console_log * not trusted
jira (MCP):
- jira___add_comment * not trusted
- jira___create_issue * not trusted
- jira___get_all_issues * not trusted
- jira___get_issue * not trusted
- jira___get_issue_transitions * not trusted
- jira___get_issues_page * not trusted
- jira___get_project * not trusted
- jira___list_projects * not trusted
- jira___search_issues * not trusted
- jira___transition_issue * not trusted
- jira___update_issue * not trusted
opengrok (MCP):
- opengrok___get_file_annotations * not trusted
- opengrok___get_file_content * not trusted
- opengrok___get_file_history * not trusted
- opengrok___get_project * not trusted
- opengrok___list_projects * not trusted
- opengrok___search_code * not trusted
Trusted tools will run without confirmation.
* Default settings
💡 Use /tools help to edit permissions.
> /load schema-testing.json
✔ Imported conversation state from schema-testing.json
> /tools
Tool Permission
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔Built-in:
- execute_bash * trust read-only commands
- fs_read * trusted
- fs_write * not trusted
- report_issue * trusted
- use_aws * trust read-only commands
gerrit (MCP):
- gerrit___add_review_comment * not trusted
- gerrit___get_file_content * not trusted
- gerrit___get_review * not trusted
- gerrit___get_review_comments * not trusted
- gerrit___get_review_files * not trusted
jenkins (MCP):
- jenkins___get_console_log * not trusted
opengrok (MCP):
- opengrok___get_file_annotations * not trusted
- opengrok___get_file_content * not trusted
- opengrok___get_file_history * not trusted
- opengrok___get_project * not trusted
- opengrok___list_projects * not trusted
- opengrok___search_code * not trusted
Trusted tools will run without confirmation.
* Default settings
💡 Use /tools help to edit permissions.
```
I am **not** doing anything else inside or outside this session except what is shown above.
However, I have been able to get AmazonQ to run one of the missing tools by telling it the tool name.
### Steps to reproduce
I can't reproduce this with a freshly saved conversation. However, it might be the case that the "missing" MCP servers were not loaded during the original conversation that was saved, the one causing the issues. When I look at the saved conversation, the missing tools are actually not listed in the `tools` field.
I tried manually editing the conversation, adding the tools, and it worked as expected, the tools were present when loading this modified conversation.
To me, it seems as if AmazonQ saves the available tools when saving a conversation, and then applies them when the conversation is reloaded. Maybe this is expected behavior? Anyway, perhaps this is best summarized by:
> You're absolutely correct, and that's a significant limitation of the current MCP architecture in Q CLI sessions. If MCP servers were temporarily unavailable during session startup (due to network issues, server restarts, service downtime, etc.),
then those tools would be unavailable for the entire conversation session, even if the servers come back online shortly after.
>
> This creates a frustrating scenario where:
>
> 1. Session starts → MCP server is down → Tool not loaded
> 2. MCP server comes back online → Still can't access the tool
> 3. Must restart entire session → Lose conversation context
>
> This is indeed a design limitation that affects reliability and user experience. In a more robust system, you might expect:
>
> • **Retry mechanisms** during startup
> • **Dynamic reconnection** during the session
> • **Health checks** and automatic recovery
> • **Graceful degradation** with notifications
>
> For now, the workaround is exactly what you identified - ending the session with /quit and starting fresh with q chat, but this means losing our conversation context and having to rebuild the discussion state.
>
> This seems like valuable feedback for the Q CLI team regarding MCP server resilience and session management.
### Environment
```yaml
[q-details]
version = "1.12.3"
hash = "65aa9285fc7ec3716215386a89d3a626500a25a7"
date = "2025-07-03T01:15:37.927301Z (4d ago)"
[system-info]
chip = "11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz"
total-cores = 4
memory = "31.04 GB"
[system-info.os.linux]
kernel_version = "6.8.0-60-generic"
id = "ubuntu"
name = "Ubuntu"
pretty_name = "Ubuntu 22.04.5 LTS"
version_id = "22.04"
version = "22.04.5 LTS (Jammy Jellyfish)"
[environment]
cwd = "/home/USER/git"
cli-path = "/home/USER/git"
install-method = "unknown"
[env-vars]
DISPLAY = ":1"
GTK_IM_MODULE = "ibus"
PATH = "/usr/local/go/bin:/home/USER/go/bin:/opt/apache-maven-3.6.1//bin:/usr/lib/jvm/java-17-openjdk-amd64/bin:/home/USER/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/usr/bin:/opt/puppetlabs/bin:/home/USER/.local/share/JetBrains/Toolbox/scripts"
QT_IM_MODULE = "ibus"
SHELL = "/bin/bash"
TERM = "xterm-256color"
XDG_CURRENT_DESKTOP = "ubuntu:GNOME"
XDG_SESSION_DESKTOP = "ubuntu"
XDG_SESSION_TYPE = "x11"
XMODIFIERS = "@im=ibus"
```
Contributor guide
Assessment
This issue has not been assessed yet.