Skip to content

Add downloadUrl (presigned URL) to generate_pptx response #23

@okamoto-aws

Description

@okamoto-aws

Summary

Add a downloadUrl (S3 presigned URL) to the generate_pptx MCP tool response in the Remote MCP Server (Layer 3).

Motivation

When integrating with external platforms like GenU (Generative AI Use Cases), the caller has no direct access to S3 or the SDPM Web UI. The current response only returns status and slide summary — there is no way for the caller to retrieve the generated PPTX file.

Adding a presigned URL enables external MCP clients to provide a download link directly to the end user.

Current behavior

generate_pptx returns:

{
  "status": "completed",
  "slideCount": 12,
  "slides": ["page01 - Title", "..."]
}

Proposed behavior

{
  "status": "completed",
  "slideCount": 12,
  "slides": ["page01 - Title", "..."],
  "downloadUrl": "https://bucket.s3.region.amazonaws.com/pptx/deck-id/uuid.pptx?X-Amz-..."
}

Implementation

In mcp-server/tools/generate.py, after uploading the PPTX to S3:

result["downloadUrl"] = storage.presign_url(key=key, expires=3600)

Storage.presign_url() already exists in the ABC and is implemented in AwsStorage.

Scope

  • Only affects Remote MCP Server (mcp-server/tools/generate.py)
  • Local MCP Server (mcp-local/) is unaffected (separate codebase, returns local file path)
  • No breaking change — additive field only

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions