-
Notifications
You must be signed in to change notification settings - Fork 662
Description
Is this related to an existing feature request or issue?
No response
Summary
As of 2025/05/30 the awslabs/mcp repo contains 34 MCP servers and roughly 242 tools (by counting the occurrence of @mcp.tool
), more RFCs of adding MCP servers from other services are in the issue
The user of these MCP servers need to understand the domain they are working on, configure the MCP servers then start their assistant such as Cursor or Amazon Q.
The current core
MCP server is really limited, with just a prompt_understanding
tool that returns a markdown content with all the possible MCP servers offered in this repository.
This RFC suggests adding a few extra tools to the current core MCP server
Use case
User can just load the core MCP server and start working with any projects. They can even suggest their LLM to load MCP servers
More and more AWS teams will want to contribute to the MCP servers and this tool will be helpful for MCP server discovery.
Use cases
- I start amazon Q cli with only core MCP server configured.
- Start asking a question about AWS EKS
- Amazon Q calls
prompt_understanding
then understands thatawslabs.eks-mcp-server
is available - Amazon Q call tool
require_server("awslabs.eks-mcp-server")
- The tools/resources/prompts in the new server is available to Amazon Q.
- Amazon Q calls
list_k8s_resources
tool from EKS server.
Proposal
Two new tools added to the awslabs.core-mcp-server
MCP server.
1. require_server
This tool should use create a FastMCP proxy that launches individual servers from this repository.
@mcp.tool()
async def require_server(server_name: str) -> Literal['Success']:
"""Load the MCP server from awslabs.
Args:
server_name: the name of the server to be used. suggested by the tool `prompt_understanding`
"""
proxy_server = FastMCP.as_proxy(
MCPConfig(
mcpServers={
server_name: StdioMCPServer(
command='uvx',
args=[server_name],
)
}
)
)
mcp.mount(prefix='required', server=proxy_server)
return 'Success'
2. suggest_servers
Instead of returning a static string from markdown file like prompt_understanding
, suggest_servers
should suggest valid MCP server names to be required in the require_server
tool. There can be many different implementations such as adding tags (AWS service names) to each MCP servers as metadata, or semantic search using a local faiss index.
Out of scope
loading arbitrary MCP servers.
exact implementation of the semantic search.
Potential challenges
- server conflict when the user already configured a server, then
require_server
tries to load the same server. - different servers have different required environment variables (But luckily, most MCP servers require only AWS related environment variables).
- unify the command to launch MCP servers, not all servers should be launched with uvx. The core server can have configs about the command to launch each server.
- After "mounting" a proxy server, the client needs to either call
list_tools
again, or to handle notification from the server about tool changes.
Dependencies and Integrations
No response
Alternative solutions
Use other MCP servers as python modules in core MCP server. This locks the implementation of other MCP servers in Python.