awslabs.nova-canvas-mcp-server 0.2.7__tar.gz → 0.2.8__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 (26) hide show
  1. awslabs_nova_canvas_mcp_server-0.2.8/Dockerfile +75 -0
  2. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/PKG-INFO +37 -1
  3. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/README.md +36 -0
  4. awslabs_nova_canvas_mcp_server-0.2.8/docker-healthcheck.sh +12 -0
  5. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/pyproject.toml +1 -1
  6. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/uv.lock +466 -466
  7. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/.gitignore +0 -0
  8. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/.pre-commit-config.yaml +0 -0
  9. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/.python-version +0 -0
  10. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/CHANGELOG.md +0 -0
  11. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/LICENSE +0 -0
  12. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/NOTICE +0 -0
  13. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/awslabs/__init__.py +0 -0
  14. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/awslabs/nova_canvas_mcp_server/__init__.py +0 -0
  15. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/awslabs/nova_canvas_mcp_server/consts.py +0 -0
  16. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/awslabs/nova_canvas_mcp_server/models.py +0 -0
  17. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/awslabs/nova_canvas_mcp_server/novacanvas.py +0 -0
  18. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/awslabs/nova_canvas_mcp_server/server.py +0 -0
  19. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/run_tests.sh +0 -0
  20. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/tests/.gitignore +0 -0
  21. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/tests/README.md +0 -0
  22. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/tests/__init__.py +0 -0
  23. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/tests/conftest.py +0 -0
  24. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/tests/test_models.py +0 -0
  25. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/tests/test_novacanvas.py +0 -0
  26. {awslabs_nova_canvas_mcp_server-0.2.7 → awslabs_nova_canvas_mcp_server-0.2.8}/tests/test_server.py +0 -0
@@ -0,0 +1,75 @@
1
+ # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
4
+ # with the License. A copy of the License is located at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
9
+ # OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
10
+ # and limitations under the License.
11
+
12
+ #FROM public.ecr.aws/sam/build-python3.10:1.137.1-20250411084548
13
+ FROM public.ecr.aws/sam/build-python3.10@sha256:a40f492a0cd8d76557f8a187fc00e49e8864b3cea683e74718ce317790c1ce61 AS uv
14
+
15
+ # Install the project into `/app`
16
+ WORKDIR /app
17
+
18
+ # Enable bytecode compilation
19
+ ENV UV_COMPILE_BYTECODE=1
20
+
21
+ # Copy from the cache instead of linking since it's a mounted volume
22
+ ENV UV_LINK_MODE=copy
23
+
24
+ # Prefer the system python
25
+ ENV UV_PYTHON_PREFERENCE=only-system
26
+
27
+ # Run without updating the uv.lock file like running with `--frozen`
28
+ ENV UV_FROZEN=true
29
+
30
+ # Copy the required files first
31
+ COPY pyproject.toml uv.lock ./
32
+
33
+ # Install the project's dependencies using the lockfile and settings
34
+ RUN --mount=type=cache,target=/root/.cache/uv \
35
+ pip install uv && \
36
+ uv sync --frozen --no-install-project --no-dev --no-editable
37
+
38
+ # Then, add the rest of the project source code and install it
39
+ # Installing separately from its dependencies allows optimal layer caching
40
+ COPY . /app
41
+ RUN --mount=type=cache,target=/root/.cache/uv \
42
+ uv sync --frozen --no-dev --no-editable
43
+
44
+ # Make the directory just in case it doesn't exist
45
+ RUN mkdir -p /root/.local
46
+
47
+ FROM public.ecr.aws/sam/build-python3.10@sha256:a40f492a0cd8d76557f8a187fc00e49e8864b3cea683e74718ce317790c1ce61
48
+
49
+ # Place executables in the environment at the front of the path and include other binaries
50
+ ENV PATH="/app/.venv/bin:$PATH:/usr/sbin"
51
+
52
+ # Install lsof for the healthcheck
53
+ # Install other tools as needed for the MCP server
54
+ # Add non-root user and ability to change directory into /root
55
+ RUN yum update -y && \
56
+ yum install -y lsof && \
57
+ yum clean all -y && \
58
+ rm -rf /var/cache/yum && \
59
+ groupadd --force --system app && \
60
+ useradd app -g app -d /app && \
61
+ chmod o+x /root
62
+
63
+ # Get the project from the uv layer
64
+ COPY --from=uv --chown=app:app /root/.local /root/.local
65
+ COPY --from=uv --chown=app:app /app/.venv /app/.venv
66
+
67
+ # Get healthcheck script
68
+ COPY ./docker-healthcheck.sh /usr/local/bin/docker-healthcheck.sh
69
+
70
+ # Run as non-root
71
+ USER app
72
+
73
+ # When running the container, add --db-path and a bind mount to the host's db file
74
+ HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 CMD [ "docker-healthcheck.sh" ]
75
+ ENTRYPOINT ["awslabs.nova-canvas-mcp-server"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: awslabs.nova-canvas-mcp-server
3
- Version: 0.2.7
3
+ Version: 0.2.8
4
4
  Summary: An AWS Labs Model Context Protocol (MCP) server for Amazon Nova Canvas
5
5
  Project-URL: Homepage, https://awslabs.github.io/mcp/
6
6
  Project-URL: Documentation, https://awslabs.github.io/mcp/servers/nova-mcp-server/
@@ -91,6 +91,42 @@ Here are some ways you can work with MCP across AWS, and we'll be adding support
91
91
  }
92
92
  ```
93
93
 
94
+ or docker after a succesful `docker build -t awslabs/nova-canvas-mcp-server .`:
95
+
96
+ ```file
97
+ # ficticious `.env` file with AWS temporary credentials
98
+ AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE
99
+ AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
100
+ AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
101
+ ```
102
+
103
+ ```json
104
+ {
105
+ "mcpServers": {
106
+ "awslabs.nova-canvas-mcp-server": {
107
+ "command": "docker",
108
+ "args": [
109
+ "run",
110
+ "--rm",
111
+ "--interactive",
112
+ "--env",
113
+ "AWS_REGION=us-east-1",
114
+ "--env",
115
+ "FASTMCP_LOG_LEVEL=ERROR",
116
+ "--env-file",
117
+ "/full/path/to/file/above/.env",
118
+ "awslabs/nova-canvas-mcp-server:latest"
119
+ ],
120
+ "env": {},
121
+ "disabled": false,
122
+ "autoApprove": []
123
+ }
124
+ }
125
+ }
126
+ ```
127
+
128
+ NOTE: Your credentials will need to be kept refreshed from your host
129
+
94
130
  ### Installing via Smithery
95
131
 
96
132
  To install Amazon Nova Canvas MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@awslabs/nova-canvas-mcp-server):
@@ -58,6 +58,42 @@ Here are some ways you can work with MCP across AWS, and we'll be adding support
58
58
  }
59
59
  ```
60
60
 
61
+ or docker after a succesful `docker build -t awslabs/nova-canvas-mcp-server .`:
62
+
63
+ ```file
64
+ # ficticious `.env` file with AWS temporary credentials
65
+ AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE
66
+ AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
67
+ AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
68
+ ```
69
+
70
+ ```json
71
+ {
72
+ "mcpServers": {
73
+ "awslabs.nova-canvas-mcp-server": {
74
+ "command": "docker",
75
+ "args": [
76
+ "run",
77
+ "--rm",
78
+ "--interactive",
79
+ "--env",
80
+ "AWS_REGION=us-east-1",
81
+ "--env",
82
+ "FASTMCP_LOG_LEVEL=ERROR",
83
+ "--env-file",
84
+ "/full/path/to/file/above/.env",
85
+ "awslabs/nova-canvas-mcp-server:latest"
86
+ ],
87
+ "env": {},
88
+ "disabled": false,
89
+ "autoApprove": []
90
+ }
91
+ }
92
+ }
93
+ ```
94
+
95
+ NOTE: Your credentials will need to be kept refreshed from your host
96
+
61
97
  ### Installing via Smithery
62
98
 
63
99
  To install Amazon Nova Canvas MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@awslabs/nova-canvas-mcp-server):
@@ -0,0 +1,12 @@
1
+ #!/bin/sh
2
+
3
+ if [ "$(lsof +c 0 -p 1 | grep -e "^awslabs\..*\s1\s.*\sunix\s.*socket$" | wc -l)" -ne "0" ]; then
4
+ echo -n "$(lsof +c 0 -p 1 | grep -e "^awslabs\..*\s1\s.*\sunix\s.*socket$" | wc -l) awslabs.* streams found";
5
+ exit 0;
6
+ else
7
+ echo -n "Zero awslabs.* streams found";
8
+ exit 1;
9
+ fi;
10
+
11
+ echo -n "Never should reach here";
12
+ exit 99;
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "awslabs.nova-canvas-mcp-server"
3
- version = "0.2.7"
3
+ version = "0.2.8"
4
4
  description = "An AWS Labs Model Context Protocol (MCP) server for Amazon Nova Canvas"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"