Skip to content

deploy-on-aws: MCP tool names exceed Bedrock Converse API 64-char limit #131

@sant3e

Description

@sant3e

Describe the bug

Problem

When using the deploy-on-aws plugin through AWS Bedrock's Converse API, several MCP tool names exceed the 64-character constraint on toolConfig.tools.{N}.member.toolSpec.name, causing ValidationException errors.

Error

API Error: 400 - An error occurred (ValidationException) when calling the Converse operation:
2 validation errors detected:
  Value 'mcp__plugin_deploy-on-aws_awsknowledge__aws___get_regional_availability' at 'toolConfig.tools.32.member.toolSpec.name' failed to satisfy constraint: Member must have length less than or equal to 64;
  Value 'mcp__plugin_deploy-on-aws_awsknowledge__aws___search_documentation' at 'toolConfig.tools.37.member.toolSpec.name' failed to satisfy constraint: Member must have length less than or equal to 64

Root Cause

Claude Code constructs MCP tool names using the pattern:

mcp__plugin_<plugin-name>_<server-name>__<tool-name>

For this plugin, the prefix mcp__plugin_deploy-on-aws_awsknowledge__ alone is 40+ characters, leaving very little room for the actual tool name before hitting the 64-character Bedrock limit.

This issue is unique to this plugin because of the combination of:

  1. A relatively long plugin name (deploy-on-aws)
  2. Multiple MCP servers with their own names (awsiac, awsknowledge, awspricing)
  3. Verbose tool names (e.g., get_cloudformation_pre_deploy_validation_instructions)

Other Claude Code plugins (context7, playwright, firecrawl, etc.) don't hit this limit because they use shorter names throughout.

Affected Tools (non-exhaustive)

These tool names exceed 64 characters when the full prefix is applied:

  • awsknowledge server: get_regional_availability, search_documentation, and potentially others depending on the remote server's tool namespace
  • awsiac server: get_cloudformation_pre_deploy_validation_instructions (exceeds even with shortest possible prefix)

Environment

  • Claude Code routed through AWS Bedrock (Converse API)
  • Plugin version: 1.2.0

Expected Behavior

Expected Behavior

All MCP tool names should stay within the 64-character limit imposed by AWS Bedrock's Converse API when the full prefix (mcp__plugin_<plugin-name>_<server-name>__<tool-name>) is applied, allowing the plugin to work seamlessly for users routing Claude Code through Bedrock.

Current Behavior

Current Behavior

The plugin fails with a ValidationException when used through AWS Bedrock's Converse API. Multiple tool names exceed the 64-character limit after Claude Code applies the full prefix, making the plugin unusable for Bedrock-routed users.

Reproduction Steps

Reproduction Steps

  1. Configure Claude Code to route through AWS Bedrock (Converse API)
  2. Install the deploy-on-aws plugin
  3. Start a Claude Code session and invoke any skill or prompt that triggers the plugin's MCP tools
  4. Observe the ValidationException error for tool names exceeding 64 characters

Possible Solution

Suggested Fix

Shorten MCP server names and/or tool names to stay within the 64-character budget when prefixed:

  • Shorten server names in .mcp.json (e.g., iac, knowledge, pricing instead of awsiac, awsknowledge, awspricing)
  • Shorten verbose tool names (e.g., get_cfn_pre_deploy_validation instead of get_cloudformation_pre_deploy_validation_instructions)

Additional Information/Context

No response

Plugin Version

1.2.0

Marketplace Version

1.2.0

AI Assistant

Claude Code

AI Assistant Version

2.1.92

OS

MacOS 26.3.1

Region experiencing the issue

eu-west-2

Code modification

No, the plugin was installed as-is from the marketplace without any modifications.

Other information

No response

Service quota

  • I have reviewed the service quotas for this construct

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions