Skip to content
Merged
Show file tree
Hide file tree
Changes from 57 commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
71ef264
Adding AWS Location MCP server
Apr 17, 2025
95f5f96
Merge branch 'main' into AWS-Location-MCP-server
MichaelWalker-git Apr 17, 2025
2878abd
Adding AWS Location MCP server - adding valid uv.lock file and copyri…
Apr 17, 2025
98ff61e
Update src/aws-location-mcp-server/pyproject.toml
scouturier Apr 17, 2025
f9625b7
Merge branch 'main' into AWS-Location-MCP-server
scottschreckengaust Apr 18, 2025
ea71f8a
Update src/aws-location-mcp-server/awslabs/__init__.py
scouturier Apr 21, 2025
c28397e
Merge branch 'main' into AWS-Location-MCP-server
scouturier Apr 22, 2025
4a06a71
Merge branch 'main' into AWS-Location-MCP-server
krokoko Apr 23, 2025
d457546
Merge branch 'main' into AWS-Location-MCP-server
scouturier Apr 29, 2025
0db6709
Update src/aws-location-mcp-server/awslabs/aws_location_server/__init…
scouturier Apr 30, 2025
0a0a0eb
Merge branch 'main' into AWS-Location-MCP-server
scouturier Apr 30, 2025
4d2e29a
Merge branch 'main' into AWS-Location-MCP-server
theagenticguy May 1, 2025
c430c02
Merge branch 'main' into AWS-Location-MCP-server
scottschreckengaust May 1, 2025
f61ad55
removing unneeded files and replacing configuration to support uvx
May 1, 2025
7701d0a
Update src/aws-location-mcp-server/tests/test_server.py
scouturier May 1, 2025
2b591ee
Fixing code to succeed pre-commit checks
May 1, 2025
6d1f278
Fixing tests
May 1, 2025
371ff27
Updating code so the pre-commit checks works
May 1, 2025
52d0528
Commit .secrets.baseline
May 1, 2025
3711585
Update secrets baseline to include test credentials
May 1, 2025
12a1d0b
Add is_secret: false flag to test secrets in .secrets.baseline
May 1, 2025
4f92b73
Adding dockerfile + healthcheck
May 1, 2025
bf5934f
Merge branch 'main' into AWS-Location-MCP-server
theagenticguy May 2, 2025
df5abba
Merge branch 'main' into AWS-Location-MCP-server
theagenticguy May 5, 2025
bfa0e2d
Enhance AWS Location MCP Server with geo-places functionality
aniloncloud May 5, 2025
6cce925
latest
May 5, 2025
760d333
added execute permissions and updated README
May 5, 2025
3dc45fa
fix: use encoding=utf-8 for static files (#248)
alexa-perlov May 2, 2025
78463c8
fix(dockerfiles): fix podman build (#246)
krokoko May 2, 2025
4f988bd
feat(new MCP server): Add Git Repository Research MCP Server (#180)
MichaelWalker-git May 2, 2025
302f603
feat(cost-analysis): implement Terraform project service analyzer (#247)
pranjbh May 2, 2025
312d86b
Add note regarding the performance hit of using the latest suffix in …
mortizbey May 2, 2025
8fc4216
Automatic update of packages
awslabs-mcp May 3, 2025
e969cc3
fear: almost zero change in code coverage (#258)
scottschreckengaust May 5, 2025
0260df3
feat: merge prevention by label (#255)
scottschreckengaust May 5, 2025
dd3cc43
chore: update .secrets.baseline for aws-location-mcp-server
aniloncloud May 6, 2025
5e12231
chore: update based on pre-commit hooks
aniloncloud May 6, 2025
571fcb4
fix: repair .secrets.baseline JSON structure
aniloncloud May 6, 2025
9cea0d4
fix: repair .secrets.baseline JSON structure and add location service…
aniloncloud May 6, 2025
d111ec7
chore: updates to .secrets.baseline
aniloncloud May 6, 2025
75dc7e6
chore: make docker-healthcheck.sh executable
aniloncloud May 6, 2025
f13c65c
Merge pull request #1 from aniloncloud/aws-location-mcp-server-new-tools
scouturier May 6, 2025
8d2bc05
Improve code coverage from 19% to 80% with comprehensive tests
May 6, 2025
4433c9f
Add AWS Location MCP Server to README.md
May 6, 2025
566a59b
refactor:
aniloncloud May 6, 2025
10b9b31
Merge main into AWS-Location-MCP-server and resolve conflicts
May 6, 2025
a024284
Fix type errors and method override issues in AWS Location MCP Server
May 6, 2025
3dda229
Fix Context.error method override signature in test_server_integratio…
May 6, 2025
c1e6b7a
Fix linting issues in AWS Location MCP Server
May 6, 2025
d50f555
Resolve merge conflict in server.py
May 6, 2025
8873e6c
Merge branch 'aniloncloud-aws-location-mcp-server-new-tools' into AWS…
May 6, 2025
c05ddf4
Fix tests to match updated function signatures
May 6, 2025
62171ce
Remove duplicate AWS Location Service MCP Server entry in README
May 6, 2025
7bfc765
Update secrets baseline to include test mock credentials
May 6, 2025
ebd16cb
Update secrets baseline to exclude test file
May 6, 2025
e2f9469
Revert "Updating code so the pre-commit checks works"
May 6, 2025
260e780
Format test_server.py with consistent style and trailing commas
May 6, 2025
392bfec
Add additional test cases to improve code coverage
May 6, 2025
2fb8ded
Update jsonschema check to 0.33.0 in pre-commit config
May 6, 2025
9bb1fa9
Fix CodeQL clear-text logging issues in test_server_integration.py
May 6, 2025
af3331f
Fix import sorting in test_server_integration.py
May 6, 2025
7c9b4d2
Fix import sorting with ruff --fix
May 6, 2025
29d70e6
Apply pre-commit fixes: trailing whitespace and code formatting
May 6, 2025
545fba2
Exclude mkdocs.yml from YAML check in pre-commit
May 6, 2025
630cbe6
Fix remaining CodeQL clear-text logging issues in test_server_integra…
May 6, 2025
df3c4a4
Apply pre-commit formatting fixes to test_server_integration.py
May 6, 2025
6bf3562
Simplify README
May 6, 2025
1cc6bd8
Fix line wrapping in README code examples
May 6, 2025
41331cf
Add GeoRoutesClient and route calculation features
aniloncloud May 7, 2025
a226f53
Fix import sorting with ruff --fix
May 6, 2025
a48b6a1
Apply pre-commit fixes: trailing whitespace and code formatting
May 6, 2025
0f62030
Exclude mkdocs.yml from YAML check in pre-commit
May 6, 2025
5264e25
Fix remaining CodeQL clear-text logging issues in test_server_integra…
May 6, 2025
6d2aea5
Apply pre-commit formatting fixes to test_server_integration.py
May 6, 2025
13ec274
Simplify README
May 6, 2025
def8f6a
Fix line wrapping in README code examples
May 6, 2025
847962d
Add GeoRoutesClient and route calculation features
aniloncloud May 7, 2025
b24f32f
- Added new tools for AWS Location Service: `GeoPlacesClient`, `GeoRo…
aniloncloud May 7, 2025
1d3b16f
Update README.md
scouturier May 7, 2025
fa5cebb
Merge PR #5: Add route calculation and waypoint optimization features…
May 7, 2025
8876f81
Fix integration tests by adding ctx fixture and proper test skipping
May 7, 2025
90f0810
Fix pyright type checking errors for null references
May 7, 2025
7f1654a
Update README files with new route calculation and waypoint optimizat…
May 7, 2025
e1e6565
Update src/aws-location-mcp-server/.pre-commit-config.yaml
scouturier May 7, 2025
ce4956f
Update src/aws-location-mcp-server/Dockerfile
scouturier May 7, 2025
455bbec
Remove hardcoded AWS_REGION and AWS_LOCATION_PLACE_INDEX from aws-loc…
May 7, 2025
492c735
Update secrets baseline to acknowledge test credentials
May 7, 2025
8cf4fad
Update secrets baseline
May 7, 2025
bebbafb
Fix code formatting with ruff-format
May 7, 2025
70a0a68
Update secrets baseline with new line numbers after code formatting
May 7, 2025
7df8d0e
Merge branch 'main' into AWS-Location-MCP-server
scouturier May 7, 2025
0b34aa3
Merge branch 'main' into AWS-Location-MCP-server
theagenticguy May 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .secrets.baseline
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,8 @@
{
"path": "detect_secrets.filters.regex.should_exclude_file",
"pattern": [
".secrets.baseline"
".secrets.baseline",
"src/aws-location-mcp-server/tests/test_server.py"
]
}
],
Expand Down Expand Up @@ -170,5 +171,5 @@
}
]
},
"generated_at": "2025-05-05T14:50:32Z"
"generated_at": "2025-05-06T15:59:56Z"
}
25 changes: 25 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,20 @@ A server for AWS Terraform best practices.

[Learn more](src/terraform-mcp-server/README.md) | [Documentation](https://awslabs.github.io/mcp/servers/terraform-mcp-server/)

### AWS Location Service MCP Server

[![PyPI version](https://img.shields.io/pypi/v/awslabs.aws-location-mcp-server.svg)](https://pypi.org/project/awslabs.aws-location-mcp-server/)

A server for accessing AWS Location Service capabilities, focusing on place search and geographical coordinates.

- Search for places using geocoding
- Get details for specific places by PlaceId
- Reverse geocode coordinates to addresses
- Search for places near a location
- Search for places that are currently open

[Learn more](src/aws-location-mcp-server/README.md)

### Use Cases for the Servers

For example, you can use the **AWS Documentation MCP Server** to help your AI assistant research and generate up-to-date code for any AWS service, like Amazon Bedrock Inline agents. Alternatively, you could use the **CDK MCP Server** or the **Terraform MCP Server** to have your AI assistant create infrastructure-as-code implementations that use the latest APIs and follow AWS best practices. With the **Cost Analysis MCP Server**, you could ask "What would be the estimated monthly cost for this CDK project before I deploy it?" or "Can you help me understand the potential AWS service expenses for this infrastructure design?" and receive detailed cost estimations and budget planning insights.
Expand Down Expand Up @@ -270,6 +284,17 @@ Example configuration for Amazon Q CLI MCP (`~/.aws/amazonq/mcp.json`):
},
"disabled": false,
"autoApprove": []
},
"awslabs.aws-location-mcp-server": {
"command": "uvx",
"args": ["awslabs.aws-location-mcp-server@latest"],
"env": {
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1",
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}
Expand Down
88 changes: 88 additions & 0 deletions src/aws-location-mcp-server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# Virtual environments
venv/
env/
ENV/
.venv/
.env/

# IDE
.idea/
.vscode/
*.swp
*.swo
*~

# Testing
.coverage
htmlcov/
.pytest_cache/
.tox/
.nox/
coverage.xml
*.cover
.hypothesis/

# Jupyter Notebook
.ipynb_checkpoints

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# Logs
logs/
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Local development
.env
.env.local
.env.development.local
.env.test.local
.env.production.local

# Cache
.ruff_cache/
__pycache__/
.mypy_cache/
.pytest_cache/
31 changes: 31 additions & 0 deletions src/aws-location-mcp-server/.pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.9.7
hooks:
- id: ruff
args: [--fix]
- id: ruff-format

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- id: check-case-conflict
- id: check-merge-conflict
- id: debug-statements
- id: check-toml

- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.28.0
hooks:
- id: check-github-workflows
- id: check-dependabot

- repo: https://github.com/commitizen-tools/commitizen
rev: v3.20.0
hooks:
- id: commitizen
stages: [commit-msg]
1 change: 1 addition & 0 deletions src/aws-location-mcp-server/.python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.10
19 changes: 19 additions & 0 deletions src/aws-location-mcp-server/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.0] - 2025-04-17

### Added
- Initial release of the AWS Location Service MCP Server
- Added `search_places` tool for geocoding and place search
- Added `get_coordinates` tool for retrieving location coordinates
- Support for AWS credentials via environment variables or AWS CLI profiles
- Support for custom place index configuration

### Changed
- Implemented using FastMCP framework for MCP protocol handling
- Structured project to match other MCP servers
78 changes: 78 additions & 0 deletions src/aws-location-mcp-server/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# 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. A copy of the License is located at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
# OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
# and limitations under the License.

FROM public.ecr.aws/sam/build-python3.10@sha256:04cdbe84bec08d17d621192bc3f0a9e4a85a83f2ac99aa9241659dfac0d845ea AS uv

# Install the project into `/app`
WORKDIR /app

# Enable bytecode compilation
ENV UV_COMPILE_BYTECODE=1

# Copy from the cache instead of linking since it's a mounted volume
ENV UV_LINK_MODE=copy

# Prefer the system python
ENV UV_PYTHON_PREFERENCE=only-system

# Run without updating the uv.lock file like running with `--frozen`
ENV UV_FROZEN=true

# Install the project's dependencies using the lockfile and settings
RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=uv.lock,target=uv.lock \
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
pip install uv && \
uv sync --frozen --no-install-project --no-dev --no-editable

# Then, add the rest of the project source code and install it
# Installing separately from its dependencies allows optimal layer caching
COPY . /app
RUN --mount=type=cache,target=/root/.cache/uv \
uv sync --frozen --no-dev --no-editable

# Make the directory just in case it doesn't exist
RUN mkdir -p /root/.local

FROM public.ecr.aws/sam/build-python3.10@sha256:04cdbe84bec08d17d621192bc3f0a9e4a85a83f2ac99aa9241659dfac0d845ea

# Place executables in the environment at the front of the path and include other binaries
ENV PATH="/app/.venv/bin:$PATH:/usr/sbin"

# Install lsof for the healthcheck
# Install AWS CLI for AWS credentials management
# Add non-root user and ability to change directory into /root
RUN yum update -y && \
yum install -y lsof && \
yum clean all -y && \
rm -rf /var/cache/yum && \
groupadd --force --system app && \
useradd app -g app -d /app && \
chmod o+x /root

# Get the project from the uv layer
COPY --from=uv --chown=app:app /root/.local /root/.local
COPY --from=uv --chown=app:app /app/.venv /app/.venv

# Get healthcheck script
COPY ./docker-healthcheck.sh /usr/local/bin/docker-healthcheck.sh
RUN chmod +x /usr/local/bin/docker-healthcheck.sh

# Run as non-root
USER app

# Set environment variables for AWS Location Service
ENV AWS_REGION=us-east-1
ENV AWS_LOCATION_PLACE_INDEX=MCPDemo

# Health check and entrypoint
HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 CMD [ "docker-healthcheck.sh" ]
ENTRYPOINT ["awslabs.aws-location-mcp-server"]
Loading
Loading