aws-samples / aws-samples/sample-aws-devops-agent-acp-mcp
Feature request: expose asset/attachment upload on the remote MCP server
- Dominant language
- Python
- Stars
- 12
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
## Summary
The remote MCP server for AWS DevOps Agent (`connect.aidevops.us-west-2.api.aws/mcp`) does not expose any tool for attaching file content to a chat, investigation, or recommendation. Asset management (`CreateAsset`, `ListAssets`, `GetAssetContent`, etc.) exists in the underlying `devops-agent` boto3 API but is not part of the MCP tool catalog, and the message-sending tools' input schemas have no field for it either.
## What we verified
Calling `tools/list` directly against the remote MCP server (bypassing any client-side proxy) returns 24 tools for our agent space's operator identity. None of them are asset-related. The input schemas for every tool that carries a message body are plain-text only:
```json
// send_message
{
"type": "object",
"properties": {
"execution_id": { "type": "string" },
"content": { "type": "string" },
"agent_space_id": { "type": "string" },
"user_id": { "type": "string" }
},
"required": ["execution_id", "content"]
}
```
```json
// chat
{
"type": "object",
"properties": {
"message": { "type": "string", "description": "Your question or request" },
"agent_space_id": { "type": "string" }
},
"required": ["message"]
}
```
`create_chat`, `investigate`, and `create_investigation` are the same shape — no `assetIds`, `attachments`, or embedded-resource field anywhere.
By contrast, the underlying REST API (confirmed via the `devops-agent` botocore service model, `signingName: aidevops`, `apiVersion: 2026-01-01`) has a full asset surface: `CreateAsset`, `CreateAssetFile`, `GetAsset`, `GetAssetContent`, `GetAssetFile`, `ListAssets`, `ListAssetFiles`, `ListAssetTypes`, `ListAssetVersions`, `UpdateAsset`, `UpdateAssetFile`, `DeleteAsset`, `DeleteAssetFile` — but these operations require IAM/SigV4 credentials, a completely different auth model than the Bearer-token remote MCP protocol, and they aren't reachable through the MCP interface at all.
## Use case
We operate an on-call automation agent that receives files from humans in chat (most commonly HAR traces for debugging). Today we can only summarize the file locally and paste a text digest into `chat`/`investigate`'s `content` field — there's no way to hand the agent the actual file for it to analyze directly, even though the REST API clearly supports asset upload and `SendMessage`'s REST schema documents an `assetIds` parameter for referencing them.
## Feature request
Please consider exposing on the remote MCP server:
1. A `create_asset` (or similarly named) tool that accepts file content (base64 or similar) and returns an `assetId`, mirroring the REST `CreateAsset` operation.
2. An `assetIds` (or equivalent) parameter on `send_message` / `chat` / `create_investigation`, mirroring what the REST `SendMessage` API already supports, so an agent-space-bound MCP client can attach a previously-uploaded asset to a message without needing separate IAM credentials.
This would let MCP-only integrations (like ours, which authenticate solely via the Bearer-token remote MCP protocol) use the asset-attachment capability that already exists in the REST API, without provisioning a second, IAM-based integration path just for file uploads.
Happy to share more detail on our specific workflow if useful.
Contributor guide
Research direction
Start with the remote MCP server's tools/list catalog and the schemas for send_message, chat, create_chat, investigate, and create_investigation, then compare them with the devops-agent botocore service model. Done means MCP clients can upload or reference assets through the Bearer-token interface and attach them to the relevant message or investigation tools.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100