Skip to content

Conversation

toreleon
Copy link
Contributor

@toreleon toreleon commented May 9, 2025

This pull request introduces significant enhancements to the mcphub package, focusing on new features for managing MCP servers, integration with AI frameworks, and improved configuration handling. Key changes include adding support for automatic server configuration from GitHub repositories, enabling Server-Sent Events (SSE) for real-time communication, expanding framework integrations with detailed examples, and updating dependencies and internal schemas.

New Features for MCP Server Management:

  • Added the add_server_from_repo method to automatically configure MCP servers by analyzing their GitHub repository README using OpenAI. This requires an OpenAI API key and updates the .mcphub.json file with the extracted configuration. (src/mcphub/mcp_servers/params.py, src/mcphub/mcp_servers/params.pyL55-L101)
  • Introduced a _save_config method to persist server configurations back to .mcphub.json. (src/mcphub/mcp_servers/params.py, src/mcphub/mcp_servers/params.pyL55-L101)

Real-Time Communication with SSE:

  • Added SSE transport support for MCP servers, including a new mcphub run command with SSE-specific options. This enables real-time updates and communication endpoints (/sse and /message). (README.md, README.mdR205-R264)

Expanded Framework Integrations:

  • Added detailed examples for integrating MCP servers with OpenAI Agents, LangChain, and Autogen. Each example demonstrates initializing MCPHub, fetching tools, and running agents with complex tasks. (examples/with_openai.py, [1]; examples/with_langchain.py, [2]; examples/with_autogen.py, [3]

Updates to Configuration and Dependencies:

  • Introduced a new MCPServerConfigSchema using Pydantic to validate and structure server configurations. (src/mcphub/mcp_servers/schemas.py, src/mcphub/mcp_servers/schemas.pyR1-R15)
  • Updated dependencies to include pydantic, rich, openai, and psutil. Added pytest-cov for development. (pyproject.toml, [1] [2]
  • Incremented the package version to 0.1.9. (pyproject.toml, pyproject.tomlL7-R7)

Minor Enhancements:

  • Added a method to list all servers in MCPHub. (README.md, README.mdR306-R308)
  • Improved internal handling of server parameters by introducing a dedicated StdioServerParams class for Autogen adapters. (src/mcphub/adapters/autogen.py, src/mcphub/adapters/autogen.pyL4-R22)

toreleon and others added 16 commits April 13, 2025 14:22
* Add CI/CD workflows for testing, version bumping, and PyPI publishing; enhance README with development and CI/CD details; implement comprehensive tests for MCPHub and MCPServers functionality.

* Enhance CI workflow by installing all extras with Poetry

* Refactor CI workflow to include version bumping and streamline package publishing using Poetry

* Update README to clarify MCPHub installation options with framework-specific dependencies

* Restrict pull request triggers to the release branch only

* Update CI workflow to enable fail-fast strategy and restrict Python versions to 3.12 only

* Refactor CI workflows to remove version bumping from CI and add tagging functionality; update README for clarity on automatic versioning and tagging process.

* Refactor CI workflows to integrate version bumping and ensure proper versioning before publishing; update version-bump workflow to set outputs for new version.

* Bump version to 0.1.6 in pyproject.toml

* Refactor CI workflows: remove version-bump workflow and integrate version extraction and tagging directly in the publish job; update package version to 0.1.7 in pyproject.toml

* Fix test data structure in TestMCPServersParams to match expected format

Updated the mock data in the test for _load_predefined_servers_params to reflect the correct structure, ensuring that the "mcpServers" key wraps the predefined server details. This change enhances the accuracy of the test and aligns it with the actual implementation.
* Add CI/CD workflows for testing, version bumping, and PyPI publishing; enhance README with development and CI/CD details; implement comprehensive tests for MCPHub and MCPServers functionality.

* Enhance CI workflow by installing all extras with Poetry

* Refactor CI workflow to include version bumping and streamline package publishing using Poetry

* Update README to clarify MCPHub installation options with framework-specific dependencies

* Restrict pull request triggers to the release branch only

* Update CI workflow to enable fail-fast strategy and restrict Python versions to 3.12 only

* Refactor CI workflows to remove version bumping from CI and add tagging functionality; update README for clarity on automatic versioning and tagging process.

* Refactor CI workflows to integrate version bumping and ensure proper versioning before publishing; update version-bump workflow to set outputs for new version.

* Bump version to 0.1.6 in pyproject.toml

* Refactor CI workflows: remove version-bump workflow and integrate version extraction and tagging directly in the publish job; update package version to 0.1.7 in pyproject.toml

* Fix test data structure in TestMCPServersParams to match expected format

Updated the mock data in the test for _load_predefined_servers_params to reflect the correct structure, ensuring that the "mcpServers" key wraps the predefined server details. This change enhances the accuracy of the test and aligns it with the actual implementation.

* Add CLI commands and utilities for MCPHub configuration management

- Implemented CLI commands for initializing, adding, removing, and listing MCP servers.
- Created utility functions for loading and saving configuration files.
- Added tests for CLI commands to ensure proper functionality and error handling.
#23)

* Enhance test for 'init' command to skip config creation when it exists

* Update tests/test_cli.py

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
* Enhance test for 'init' command to skip config creation when it exists

* Refactor dependencies in pyproject.toml to separate optional dependencies and clean up main dependencies section
* solve test

* remove legacy functions
#29)

* Add SSE support for running MCP servers and enhance add command functionality

* Refactor add_command in CLI to simplify configuration handling and remove client-specific logic
* Add SSE support for running MCP servers and enhance add command functionality

* Refactor add_command in CLI to simplify configuration handling and remove client-specific logic

* Enhance MCPHub CLI by adding functionality to add servers from GitHub repositories, including README parsing with OpenAI for configuration extraction. Update dependencies in pyproject.toml and improve logging and user feedback in CLI commands.

* Refactor MCPHub CLI by removing the run_command function and associated argument parsing for running MCP servers. This change simplifies the codebase and prepares for future enhancements.

* Enhance MCPHub CLI by adding a new process manager for handling server processes, improving environment variable checks, and implementing progress indicators for various commands. Update dependencies in pyproject.toml to include psutil for process management.

* Update .gitignore to include .coverage file and add pytest-cov dependency in pyproject.toml. Remove unused server configuration functions from utils.py and enhance CLI tests for server management commands.
@toreleon toreleon changed the title Release version 0.2.1 Release version 0.1.10 May 9, 2025
@toreleon toreleon requested a review from hieutrtr May 9, 2025 04:35
@toreleon toreleon self-assigned this May 9, 2025
- Enhanced README with new documentation section including links to CLI, API, configuration guide, and examples.
- Introduced a new README file for the MCPHub CLI, detailing installation, available commands, configuration, features, error handling, and contribution guidelines.
@toreleon toreleon requested a review from Copilot May 9, 2025 07:02
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR introduces significant enhancements to the mcphub package by adding new features for MCP server management, real-time communication via SSE, improved integration with AI frameworks, and several documentation and dependency updates.

  • Added automatic server configuration from GitHub using OpenAI to extract configuration from README files.
  • Introduced SSE server support and updated CLI documentation.
  • Updated and refactored internal schemas, configuration handling, and test suites while updating package dependencies.

Reviewed Changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/test_servers.py Removed patches for predefined servers and updated tests according to the new configuration logic.
tests/test_process_manager.py Added comprehensive tests for the ProcessManager, ensuring port management and process control.
tests/test_params.py Removed tests for predefined server parameters to align with the updated configuration logic.
src/mcphub/mcp_servers/schemas.py Introduced a Pydantic-based schema for validating MCP server configuration.
src/mcphub/mcp_servers/params.py Refactored configuration loading, added GitHub README parsing & OpenAI integration, and removed fallback for predefined servers.
src/mcphub/adapters/autogen.py Updated adapter to use dedicated StdioServerParams when creating Autogen tool adapters.
src/mcphub/cli/README.md Added CLI documentation for SSE transport and updated usage examples.
pyproject.toml Incremented version and updated dependency requirements.
examples/with_openai.py, with_langchain.py, with_autogen.py Updated and added usage examples for different AI framework integrations.
README.md Expanded documentation to cover automatic server configuration and SSE usage for MCP servers.

@toreleon toreleon merged commit dd2b7ba into release May 9, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants