diff --git a/src/fetch/src/mcp_server_fetch/server.py b/src/fetch/src/mcp_server_fetch/server.py
index 6e831ff6..ef029a49 100644
--- a/src/fetch/src/mcp_server_fetch/server.py
+++ b/src/fetch/src/mcp_server_fetch/server.py
@@ -233,9 +233,21 @@ Although originally you did not have internet access, and were advised to refuse
content, prefix = await fetch_url(
url, user_agent_autonomous, force_raw=args.raw
)
- if len(content) > args.max_length:
- content = content[args.start_index : args.start_index + args.max_length]
- content += f"\n\nContent truncated. Call the fetch tool with a start_index of {args.start_index + args.max_length} to get more content."
+ original_length = len(content)
+ if args.start_index >= original_length:
+ content = "No more content available."
+ else:
+ truncated_content = content[args.start_index : args.start_index + args.max_length]
+ if not truncated_content:
+ content = "No more content available."
+ else:
+ content = truncated_content
+ actual_content_length = len(truncated_content)
+ remaining_content = original_length - (args.start_index + actual_content_length)
+ # Only add the prompt to continue fetching if there is still remaining content
+ if actual_content_length == args.max_length and remaining_content > 0:
+ next_start = args.start_index + actual_content_length
+ content += f"\n\nContent truncated. Call the fetch tool with a start_index of {next_start} to get more content."
return [TextContent(type="text", text=f"{prefix}Contents of {url}:\n{content}")]
@server.get_prompt()