Skip to content

Update CLI banner with FastMCP 3.0 notice#2765

Merged
jlowin merged 2 commits intorelease/2.xfrom
update-cli-banner
Dec 27, 2025
Merged

Update CLI banner with FastMCP 3.0 notice#2765
jlowin merged 2 commits intorelease/2.xfrom
update-cli-banner

Conversation

@jlowin
Copy link
Copy Markdown
Member

@jlowin jlowin commented Dec 27, 2025

Updating CLI with 3.0 message.

@marvin-context-protocol marvin-context-protocol Bot added enhancement Improvement to existing functionality. For issues and smaller PR improvements. cli Related to FastMCP CLI commands (run, dev, install) or CLI functionality. labels Dec 27, 2025
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Dec 27, 2025

Warning

Rate limit exceeded

@jlowin has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 14 minutes and 38 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 23fce5d and 593d0e7.

📒 Files selected for processing (1)
  • src/fastmcp/utilities/cli.py

Walkthrough

The changes simplify server banner logging by removing transport-specific parameters from the log_server_banner function and its call sites. The function signature is modified to accept only the server instance. Banner content generation is redesigned from a dynamic, transport-derived layout to a static configuration. A new v3 notice panel is introduced and rendered alongside the main banner panel. Call sites in run_stdio_async and run_http_async are updated to invoke the simplified function without transport, host, port, or path parameters.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning The pull request description is incomplete and minimal. It only contains 'Updating CLI with 3.0 message.' without addressing the required checklist items or providing substantive details about the changes. Complete the description by filling out the Contributors Checklist and Review Checklist sections, and provide more detailed information about the changes made and testing performed.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Update CLI banner with FastMCP 3.0 notice' accurately and clearly describes the main change—updating the CLI banner to include a FastMCP 3.0 notice. It is specific, concise, and directly reflects the primary objective of the changeset.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
src/fastmcp/utilities/cli.py (1)

216-218: Remove commented-out code.

The commented-out docs row should be removed entirely rather than left as a comment. The docs URL is now displayed separately in the panel content (line 221).

🔎 Proposed fix
     info_table.add_row("🖥", "Server:", Text(server.name, style="dim"))
-    # info_table.add_row("📚", "Docs:", "https://gofastmcp.com")
     info_table.add_row("🚀", "Deploy free:", "https://fastmcp.cloud")

Based on coding guidelines: "Unused code (dead code, commented-out code, debug artifacts)" should be removed.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9732789 and 23fce5d.

📒 Files selected for processing (2)
  • src/fastmcp/server/server.py
  • src/fastmcp/utilities/cli.py
🧰 Additional context used
📓 Path-based instructions (1)
src/fastmcp/**/*.py

📄 CodeRabbit inference engine (AGENTS.md)

src/fastmcp/**/*.py: Python ≥ 3.10 with full type annotations required
Prioritize readable, understandable code - clarity over cleverness. Avoid obfuscated or confusing patterns even if shorter
Follow existing patterns and maintain consistency in code implementation
Be intentional about re-exports - don't blindly re-export everything to parent namespaces. Core types defining a module's purpose should be exported. Specialized features can live in submodules. Only re-export to fastmcp.* for most fundamental types
Never use bare except - be specific with exception types

Files:

  • src/fastmcp/server/server.py
  • src/fastmcp/utilities/cli.py
🧠 Learnings (1)
📚 Learning: 2025-12-25T15:53:07.646Z
Learnt from: CR
Repo: jlowin/fastmcp PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-25T15:53:07.646Z
Learning: Applies to tests/**/*.py : Pass FastMCP servers directly to clients for testing without network complexity; only use HTTP transport when explicitly testing network features

Applied to files:

  • src/fastmcp/server/server.py
🧬 Code graph analysis (1)
src/fastmcp/server/server.py (1)
src/fastmcp/utilities/cli.py (1)
  • log_server_banner (200-255)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: Run tests: Python 3.10 on windows-latest
  • GitHub Check: Run tests: Python 3.13 on ubuntu-latest
  • GitHub Check: Run tests: Python 3.10 on ubuntu-latest
  • GitHub Check: Run tests with lowest-direct dependencies
🔇 Additional comments (5)
src/fastmcp/server/server.py (2)

2498-2499: LGTM!

The banner call has been correctly simplified to match the new signature in cli.py. The transport information is no longer displayed in the banner, which aligns with the PR objective to show a static v3 notice instead of dynamic transport details.


2563-2564: LGTM!

The banner call has been correctly simplified to match the new signature. The transport, host, port, and path details are no longer passed to the banner function, which now displays a static layout with the v3 notice.

src/fastmcp/utilities/cli.py (3)

6-6: LGTM!

The function signature has been correctly simplified to accept only the server parameter, removing transport-specific details. The Literal import is also no longer needed and has been appropriately removed.

Also applies to: 200-201


221-243: LGTM!

The addition of the v3 notice panel is well-implemented and provides clear guidance to users about pinning their FastMCP version in production. The docs URL has been elegantly moved to a separate centered text element in the main panel, maintaining good visual hierarchy.


254-255: LGTM!

The centered rendering of both panels together will provide a clean, professional appearance in the CLI output. The Group wrapping ensures proper spacing with newlines before and after.

@jlowin jlowin merged commit bbf6c20 into release/2.x Dec 27, 2025
8 checks passed
@jlowin jlowin deleted the update-cli-banner branch December 27, 2025 03:13
@coderabbitai coderabbitai Bot mentioned this pull request Feb 4, 2026
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cli Related to FastMCP CLI commands (run, dev, install) or CLI functionality. enhancement Improvement to existing functionality. For issues and smaller PR improvements.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant