couchbase-mcp-server 0.5.2__tar.gz → 0.5.2rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/.github/workflows/docker.yml +3 -26
  2. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/.github/workflows/update-mcp-registry.yml +6 -10
  3. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/PKG-INFO +1 -2
  4. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/README.md +0 -1
  5. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/pyproject.toml +1 -1
  6. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/server.json +3 -3
  7. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/src/tools/query.py +1 -9
  8. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/uv.lock +1 -1
  9. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/.github/workflows/alert-on-pr.yml +0 -0
  10. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/.github/workflows/release.yml +0 -0
  11. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/.github/workflows/test_release.yml +0 -0
  12. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/.gitignore +0 -0
  13. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/.pre-commit-config.yaml +0 -0
  14. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/CONTRIBUTING.md +0 -0
  15. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/DOCKER.md +0 -0
  16. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/Dockerfile +0 -0
  17. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/LICENSE +0 -0
  18. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/RELEASE.md +0 -0
  19. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/build.sh +0 -0
  20. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/glama.json +0 -0
  21. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/scripts/lint.sh +0 -0
  22. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/scripts/lint_fix.sh +0 -0
  23. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/scripts/update_version.sh +0 -0
  24. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/smithery.yaml +0 -0
  25. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/src/certs/__init__.py +0 -0
  26. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/src/certs/capella_root_ca.pem +0 -0
  27. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/src/mcp_server.py +0 -0
  28. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/src/tools/__init__.py +0 -0
  29. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/src/tools/index.py +0 -0
  30. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/src/tools/kv.py +0 -0
  31. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/src/tools/server.py +0 -0
  32. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/src/utils/__init__.py +0 -0
  33. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/src/utils/config.py +0 -0
  34. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/src/utils/connection.py +0 -0
  35. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/src/utils/constants.py +0 -0
  36. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/src/utils/context.py +0 -0
  37. {couchbase_mcp_server-0.5.2 → couchbase_mcp_server-0.5.2rc1}/src/utils/index_utils.py +0 -0
@@ -32,39 +32,16 @@ jobs:
32
32
  username: ${{ secrets.DOCKERHUB_USERNAME }}
33
33
  password: ${{ secrets.DOCKERHUB_TOKEN }}
34
34
 
35
- - name: Check if stable release
36
- id: check-stable
37
- if: startsWith(github.ref, 'refs/tags/')
38
- run: |
39
- TAG_NAME="${GITHUB_REF#refs/tags/}"
40
- echo "Checking tag: $TAG_NAME"
41
-
42
- # Only match vX.Y.Z format (no suffixes like rc, alpha, beta)
43
- if [[ "$TAG_NAME" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
44
- echo "is_stable=true" >> $GITHUB_OUTPUT
45
- echo "This is a STABLE release: $TAG_NAME"
46
- else
47
- echo "is_stable=false" >> $GITHUB_OUTPUT
48
- echo "This is a PRE-RELEASE: $TAG_NAME (will not update 'latest' or major.minor tags)"
49
- fi
50
-
51
35
  - name: Extract metadata
52
36
  id: meta
53
37
  uses: docker/metadata-action@v5
54
38
  with:
55
39
  images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
56
- flavor: |
57
- # Disable automatic 'latest' tag to have explicit control
58
- latest=false
59
40
  tags: |
60
- # For PRs: tag as pr-<number>
61
41
  type=ref,event=pr
62
- # For all tags: extract full version without 'v' prefix (e.g., 0.5.2 or 0.5.2rc3)
63
- type=match,pattern=v(.*),group=1
64
- # For stable releases only: extract major.minor (e.g., 0.5 from v0.5.2)
65
- type=match,pattern=v(\d+\.\d+),group=1,enable=${{ steps.check-stable.outputs.is_stable == 'true' }}
66
- # For stable releases only: tag as 'latest'
67
- type=raw,value=latest,enable=${{ steps.check-stable.outputs.is_stable == 'true' }}
42
+ type=semver,pattern={{version}}
43
+ type=semver,pattern={{major}}.{{minor}}
44
+ type=raw,value=latest
68
45
 
69
46
  - name: Set build timestamp
70
47
  id: timestamp
@@ -5,6 +5,8 @@ on:
5
5
  workflows: ["Build and Push Docker Image"]
6
6
  types:
7
7
  - completed
8
+ branches:
9
+ - main
8
10
 
9
11
  jobs:
10
12
  check-and-update-registry:
@@ -43,17 +45,13 @@ jobs:
43
45
 
44
46
  - name: Validate version consistency
45
47
  id: version
46
- env:
47
- HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }}
48
48
  run: |
49
49
  # Read versions from files
50
50
  ROOT_VERSION=$(jq -r '.version' server.json)
51
51
  # Only get versions from packages that have a version field (exclude null/empty)
52
52
  PACKAGE_VERSIONS=$(jq -r '.packages[] | select(.version != null) | .version' server.json | sort -u)
53
53
  PYPROJECT_VERSION=$(grep '^version = ' pyproject.toml | sed 's/version = "\(.*\)"/\1/')
54
- # Get tag from the triggering workflow (Docker), not current workflow
55
- # Use environment variable to prevent code injection
56
- TAG_VERSION=${HEAD_BRANCH#v}
54
+ TAG_VERSION=${GITHUB_REF_NAME#v}
57
55
 
58
56
  echo "Version Check:"
59
57
  echo " server.json root: $ROOT_VERSION"
@@ -141,9 +139,7 @@ jobs:
141
139
 
142
140
  - name: Notify completion
143
141
  if: success()
144
- env:
145
- VERSION: ${{ steps.version.outputs.version }}
146
142
  run: |
147
- echo "MCP Registry updated successfully for version $VERSION"
148
- echo "Docker image: docker.io/couchbaseecosystem/mcp-server-couchbase:$VERSION"
149
- echo "PyPI package: couchbase-mcp-server==$VERSION"
143
+ echo "MCP Registry updated successfully for version ${{ steps.version.outputs.version }}"
144
+ echo "Docker image: docker.io/couchbaseecosystem/mcp-server-couchbase:${{ steps.version.outputs.version }}"
145
+ echo "PyPI package: couchbase-mcp-server==${{ steps.version.outputs.version }}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: couchbase-mcp-server
3
- Version: 0.5.2
3
+ Version: 0.5.2rc1
4
4
  Summary: Couchbase MCP Server - The Developer Data Platform for Critical Applications in Our AI World
5
5
  Project-URL: Homepage, https://github.com/Couchbase-Ecosystem/mcp-server-couchbase
6
6
  Project-URL: Documentation, https://github.com/Couchbase-Ecosystem/mcp-server-couchbase#readme
@@ -45,7 +45,6 @@ An [MCP](https://modelcontextprotocol.io/) server implementation of Couchbase th
45
45
  - Upsert a document by ID to a specified scope and collection
46
46
  - Delete a document by ID from a specified scope and collection
47
47
  - Run a [SQL++ query](https://www.couchbase.com/sqlplusplus/) on a specified scope
48
- - Queries are automatically scoped to the specified bucket and scope, so use collection names directly (e.g., use `SELECT * FROM users` instead of `SELECT * FROM bucket.scope.users`)
49
48
  - There is an option in the MCP server, `CB_MCP_READ_ONLY_QUERY_MODE` that is set to true by default to disable running SQL++ queries that change the data or the underlying collection structure. Note that the documents can still be updated by ID.
50
49
  - Get the status of the MCP server
51
50
  - Check the cluster credentials by connecting to the cluster
@@ -21,7 +21,6 @@ An [MCP](https://modelcontextprotocol.io/) server implementation of Couchbase th
21
21
  - Upsert a document by ID to a specified scope and collection
22
22
  - Delete a document by ID from a specified scope and collection
23
23
  - Run a [SQL++ query](https://www.couchbase.com/sqlplusplus/) on a specified scope
24
- - Queries are automatically scoped to the specified bucket and scope, so use collection names directly (e.g., use `SELECT * FROM users` instead of `SELECT * FROM bucket.scope.users`)
25
24
  - There is an option in the MCP server, `CB_MCP_READ_ONLY_QUERY_MODE` that is set to true by default to disable running SQL++ queries that change the data or the underlying collection structure. Note that the documents can still be updated by ID.
26
25
  - Get the status of the MCP server
27
26
  - Check the cluster credentials by connecting to the cluster
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "couchbase-mcp-server"
3
- version = "0.5.2"
3
+ version = "0.5.2rc1"
4
4
  description = "Couchbase MCP Server - The Developer Data Platform for Critical Applications in Our AI World"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10,<3.14"
@@ -6,12 +6,12 @@
6
6
  "url": "https://github.com/Couchbase-Ecosystem/mcp-server-couchbase",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.5.2",
9
+ "version": "0.5.2rc1",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "pypi",
13
13
  "identifier": "couchbase-mcp-server",
14
- "version": "0.5.2",
14
+ "version": "0.5.2rc1",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },
@@ -172,7 +172,7 @@
172
172
  },
173
173
  {
174
174
  "registryType": "oci",
175
- "identifier": "docker.io/couchbaseecosystem/mcp-server-couchbase:0.5.2",
175
+ "identifier": "docker.io/couchbaseecosystem/mcp-server-couchbase:0.5.2rc1",
176
176
  "transport": {
177
177
  "type": "stdio"
178
178
  },
@@ -39,15 +39,7 @@ def get_schema_for_collection(
39
39
  def run_sql_plus_plus_query(
40
40
  ctx: Context, bucket_name: str, scope_name: str, query: str
41
41
  ) -> list[dict[str, Any]]:
42
- """Run a SQL++ query on a scope and return the results as a list of JSON objects.
43
-
44
- The query will be run on the specified scope in the specified bucket.
45
- The query should use collection names directly without bucket/scope prefixes, as the scope context is automatically set.
46
-
47
- Example:
48
- query = "SELECT * FROM users WHERE age > 18"
49
- # Incorrect: "SELECT * FROM bucket.scope.users WHERE age > 18"
50
- """
42
+ """Run a SQL++ query on a scope and return the results as a list of JSON objects."""
51
43
  cluster = get_cluster_connection(ctx)
52
44
 
53
45
  bucket = connect_to_bucket(cluster, bucket_name)
@@ -168,7 +168,7 @@ wheels = [
168
168
 
169
169
  [[package]]
170
170
  name = "couchbase-mcp-server"
171
- version = "0.5.2"
171
+ version = "0.5.2rc1"
172
172
  source = { editable = "." }
173
173
  dependencies = [
174
174
  { name = "click" },