Skip to content

amazon-bedrock-agentcore-mcp-server : ensure_ready() crashes with HTTP Error 404 fetching llms.txt (docs source deprecated) #4138

Description

@jameswarren

Describe the bug

The server crashes on startup and never completes MCP initialization. All tool groups register successfully, then main() calls cache.ensure_ready(), which fetches the hardcoded docs index at:

https://aws.github.io/bedrock-agentcore-starter-toolkit/llms.txt

That URL now returns HTTP 404. The startup fetch has no error handling, so theurllib.error.HTTPError escapes out of main() and the process exits. The MCP client sees the stdio server die and marks it as failed.

The root cause is external: the aws/bedrock-agentcore-starter-toolkit docs site has been deprecated, and the MkDocs llmstxt plugin that generated llms.txt was removed. From that repo's documentation/mkdocs.yaml:

SITE DEPRECATION: the content-generating plugins (macros, include-markdown, mkdocstrings, llmstxt) were removed. Every page now serves a redirect ...
The starter toolkit is heading to EOL in favor of the new AgentCore CLI, and this GitHub Pages site is being deprecated.

So llms.txt is gone permanently at that location; both llms.txt and llms-full.txt return 404.

Expected Behavior

A transient or permanent failure to fetch the configured llms.txt should not prevent the server from starting. Documentation search/fetch tools can degrade gracefully, and the unrelated tools should remain usable.

Current Behavior

Process exits with a traceback during startup:

INFO ... Code interpreter tools registered (9 tools)
Traceback (most recent call last):
  File ".../bin/awslabs.amazon-bedrock-agentcore-mcp-server", line 12, in <module>
    sys.exit(main())
  File ".../server.py", line 261, in main
    cache.ensure_ready()
  File ".../utils/cache.py", line 74, in ensure_ready
    load_links_only()
  File ".../utils/cache.py", line 48, in load_links_only
    for title, url in doc_fetcher.parse_llms_txt(src):
  File ".../utils/doc_fetcher.py", line 77, in parse_llms_txt
    txt = _get(url)
  File ".../utils/doc_fetcher.py", line 60, in _get
    with urllib.request.urlopen(req, timeout=doc_config.timeout) as r:  # nosec
  ...
urllib.error.HTTPError: HTTP Error 404: Not Found

Reproduction Steps

Run uvx awslabs.amazon-bedrock-agentcore-mcp-server@latest

Possible Solution

No response

Additional Information/Context

No response

OS

platform-independent

Server

amazon-bedrock-agentcore-mcp-server

Server Version

@latest - and all prior versions

Region experiencing the issue

N/A

Other information

No response

Service quota

  • I have reviewed the service quotas for this construct

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingneeds-triageThis needs to be handled, it is the first automatically assigned label to issues.

    Type

    No type

    Projects

    Status
    To triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions