aws-samples / aws-samples/sample-aws-devops-agent-acp-mcp

Feature request: expose asset/attachment upload on the remote MCP server

Open
#5 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.