-
Notifications
You must be signed in to change notification settings - Fork 193
Configure: add --enable-mcp-server option #1446
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
5b966bf to
8844839
Compare
configure.ac
Outdated
| AC_PATH_PROG([PYTHON3], [python3]) | ||
| if test -z "$PYTHON3"; then | ||
| AC_MSG_ERROR([python3 is required for --enable-mcp-server but was not found]) | ||
| fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shall we check the python version that is required by mcp-server?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done in the latest commit 360a571
| # gpAux/Makefile is the entry point for the enterprise build, which ends up | ||
| # calling top-level configure and this Makefile | ||
| $(MAKE) -C gpMgmt $@ | ||
| ifeq ($(enable_mcp_server), yes) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should set this feature in src/Makefile.global.in?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the suggestion. I followed the same pattern as enable_pax which also uses ifeq directly in GNUmakefile.in.
Since mcp-server is a top-level optional component (not used by src/ subdirectories), keeping it in GNUmakefile.in seems appropriate. But I'm open to moving it to Makefile.global.in if you prefer consistency with other enable_* flags.
This commit integrates the MCP (Model Context Protocol) server component into the Cloudberry build system, allowing users to optionally build and install it using the standard configure/make workflow. What: - Added --enable-mcp-server option to configure.ac with dependency checks for Python 3.10+ and uv/pip package managers - Created mcp-server/Makefile to build Python wheel packages and install them to the configured prefix directory - Modified GNUmakefile.in to conditionally build, install, and clean mcp-server based on the configure flag - Updated mcp-server/pyproject.toml to require Python 3.11 How: - The Makefile uses Python's standard build tools (uv or pip) to create wheel packages from pyproject.toml - Installation uses --target to place packages in the correct site-packages directory with all dependencies - A wrapper script is generated to set PYTHONPATH and invoke the server module - Platform support is limited to Linux (PORTNAME=linux) as mcp-server is not intended for macOS production use Usage: ./configure --enable-mcp-server --prefix=/path/to/install make make install cloudberry-mcp-server --help Compatibility: - Requires Python 3.10 or later (Python 3.11 recommended) - Rocky Linux 9 users need to install python3.11+ alongside the system Python 3.9 to avoid conflicts with Cloudberry's Python dependencies
|
We need to update the doc to describe the new configure option Dependencies required: |
This commit integrates the MCP (Model Context Protocol) server component into the Cloudberry build system, allowing users to optionally build and install it using the standard configure/make workflow.
What:
How:
Usage:
./configure --enable-mcp-server --prefix=/path/to/install make make install cloudberry-mcp-server --help
Compatibility:
Fixes #ISSUE_Number
What does this PR do?
Type of Change
Breaking Changes
Test Plan
make installcheckmake -C src/test installcheck-cbdb-parallelImpact
Performance:
User-facing changes:
Dependencies:
Checklist
Additional Context
CI Skip Instructions