Configure: add --enable-mcp-server option#1446
Open
tuhaihe wants to merge 5 commits intoapache:mainfrom
Open
Conversation
my-ship-it
approved these changes
Nov 24, 2025
5b966bf to
8844839
Compare
gfphoenix78
reviewed
Nov 28, 2025
configure.ac
Outdated
Comment on lines
957
to
960
| 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 |
Contributor
There was a problem hiding this comment.
Shall we check the python version that is required by mcp-server?
gfphoenix78
reviewed
Nov 28, 2025
| # 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) |
Contributor
There was a problem hiding this comment.
Should set this feature in src/Makefile.global.in?
Member
Author
There was a problem hiding this comment.
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
Member
Author
|
We need to update the doc to describe the new configure option Dependencies required: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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