MCP sampling/createMessage response includes system prompt text in content
- 主要語言
- Shell
- 星號
- 11.2k
- 分支
- 1.9k
- 平均合併
- 14 小時 16 分鐘
- 30 天內合併 PR
- 6
描述
### Describe the bug
When an MCP server sends a `sampling/createMessage` request, the Copilot CLI correctly routes it to the LLM and returns a response. However, the response content prepends the entire system prompt text before the LLM's actual answer.
### Affected version
GitHub Copilot CLI 1.0.16-0
### Steps to reproduce the behavior
1. Configure an MCP server that uses `sampling/createMessage` with a system prompt
2. Have the server send a sampling request where it expects a specific response format
3. Approve the sampling request when prompted
4. Observe the response content includes the system prompt prepended to the LLM's answer
### Expected behavior
The `CreateMessageResult.Content` should contain only the LLM's response text, e.g.:
```
=== FALSE
```
### Additional context
## Actual behavior
The response content contains the system prompt echoed back, followed by the LLM's answer:
```
... === FALSE
```
## Note
This works correctly in VS Code's MCP sampling implementation — the system prompt is not included in the response content.
貢獻指南
研究方向
Start by reproducing an MCP server's sampling/createMessage request with a system prompt, then inspect the returned CreateMessageResult.Content. Compare the CLI result with VS Code's MCP sampling behavior; done means the content contains only the LLM response, without the system prompt text.
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- shell, vscode
- 領域
- ai, cli
- Issue 類型
- 缺陷
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 活躍度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 52/100