Skip to content

feat: datazone mcp server #608

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

Open
wants to merge 87 commits into
base: main
Choose a base branch
from

Conversation

JiayiXin-Cindy
Copy link

Fixes

Summary

This server enables AI assistants and applications to interact with AWS DataZone APIs through a standardized interface.

Changes

Please provide a summary of what's being changed
Added Datazone MCP server.

User experience

Please share what the user experience looks like before and after this change
Users don't have to navigate the Datazone interface themselves to perform actions, they can do so by chatting with an AI agent.

Checklist

If your change doesn't seem to apply, please leave them unchecked.

  • [v ] I have reviewed the contributing guidelines
  • [v ] I have performed a self-review of this change
  • [v ] Changes have been tested
  • [v ] Changes are documented

Is this a breaking change? (Y/N)
N

RFC issue number:
#530

Checklist:

  • [v ] Migration process documented
  • [v ] Implement warnings (if it can live side by side)

Acknowledgment

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the project license.

@JiayiXin-Cindy JiayiXin-Cindy requested review from a team as code owners June 17, 2025 17:25
@JiayiXin-Cindy JiayiXin-Cindy changed the title datazone mcp server feat datazone mcp server Jun 17, 2025
@alexa-perlov alexa-perlov changed the title feat datazone mcp server feat: datazone mcp server Jun 17, 2025
@alexa-perlov alexa-perlov self-assigned this Jun 17, 2025
@alexa-perlov alexa-perlov added hold-merging Signals to hold the PR from merging new mcp server A new MCP server ideally linked to an issue labels Jun 17, 2025
@alexa-perlov
Copy link
Contributor

Thank you for the contribution! Please run pre-commit run --all-files to fix the failed pre-commit checks

Copy link

codecov bot commented Jun 17, 2025

Codecov Report

Attention: Patch coverage is 94.96580% with 184 lines in your changes missing coverage. Please review.

Project coverage is 88.61%. Comparing base (fc6a676) to head (5ebd9b1).
Report is 122 commits behind head on main.

Files with missing lines Patch % Lines
...zon_datazone_mcp_server/tools/domain_management.py 81.25% 56 Missing and 13 partials ⚠️
...bs/amazon_datazone_mcp_server/tools/environment.py 83.27% 43 Missing and 6 partials ⚠️
...on_datazone_mcp_server/tools/project_management.py 84.79% 25 Missing and 1 partial ⚠️
src/amazon-datazone-mcp-server/tests/conftest.py 86.89% 15 Missing and 4 partials ⚠️
...rc/amazon-datazone-mcp-server/tests/test_server.py 97.02% 4 Missing and 2 partials ⚠️
...erver/awslabs/amazon_datazone_mcp_server/server.py 88.88% 2 Missing and 2 partials ⚠️
...slabs/amazon_datazone_mcp_server/tools/glossary.py 93.65% 2 Missing and 2 partials ⚠️
...datazone-mcp-server/tests/test_version_handling.py 91.17% 0 Missing and 3 partials ⚠️
...ne-mcp-server/tests/test_comprehensive_coverage.py 98.30% 2 Missing ⚠️
...mazon_datazone_mcp_server/tools/data_management.py 99.67% 1 Missing ⚠️
... and 1 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #608      +/-   ##
==========================================
+ Coverage   86.96%   88.61%   +1.64%     
==========================================
  Files         410      476      +66     
  Lines       27569    36122    +8553     
  Branches     4337     5232     +895     
==========================================
+ Hits        23976    32010    +8034     
- Misses       2361     2686     +325     
- Partials     1232     1426     +194     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

Choose a reason for hiding this comment

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

delete?

@alexa-perlov
Copy link
Contributor

Thank you for the updates! A few documentation asks – can you please:

Comment on lines 1 to 34
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""AWS DataZone MCP Server."""

import os
from pathlib import Path

# Read version from VERSION file
_version_file = Path(__file__).parent.parent.parent / 'VERSION'
if _version_file.exists():
try:
__version__ = _version_file.read_text().strip()
except FileNotFoundError: # pragma: no cover
__version__ = 'unknown'
else:
__version__ = 'unknown'

# Import and expose server and tools modules for testing
from . import server
from . import tools

__all__ = ['__version__', 'server', 'tools']
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""AWS DataZone MCP Server."""
import os
from pathlib import Path
# Read version from VERSION file
_version_file = Path(__file__).parent.parent.parent / 'VERSION'
if _version_file.exists():
try:
__version__ = _version_file.read_text().strip()
except FileNotFoundError: # pragma: no cover
__version__ = 'unknown'
else:
__version__ = 'unknown'
# Import and expose server and tools modules for testing
from . import server
from . import tools
__all__ = ['__version__', 'server', 'tools']
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""awslabs.amazon-datazone-mcp-server"""
__version__ = '0.1.0'

Copy link
Contributor

@alexa-perlov alexa-perlov left a comment

Choose a reason for hiding this comment

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

Can you add a "read-only" mode that disables the ability to create / update / mutate unless --allow-writes parameter is passed in? You can see an example of how that's managed in the Aurora DSQL MCP server: https://github.com/awslabs/mcp/blob/main/src/aurora-dsql-mcp-server/README.md

Copy link
Contributor

This pull request is now marked as stale because it hasn't seen activity for a while. Add a comment or it will be closed soon. If you wish to exclude this issue from being marked as stale, add the "backlog" label.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hold-merging Signals to hold the PR from merging new mcp server A new MCP server ideally linked to an issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants