aws / aws/amazon-q-developer-cli

Tools Missing After Loading Conversation

オープン
#2,240 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Rust
スター
2k
フォーク
439
PR マージ指標
30日以内にマージされた PR はありません

説明

### 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"
```

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

レポートで説明されている q chat、/load、/tools、q restart のエントリーポイントから始め、schema-testing.json の読み込み前後でツール一覧を比較します。保存された会話状態が復元される MCP ツールを制御するかを確認し、既存の会話を読み込んだときに新しいセッションを必要とせず、現在利用可能なすべてのツールが保持または更新される場合に、この問題が解決されたと判断します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
bash, docker
領域
cli, devtools
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
42/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。