Skip to content

Commit b27ba88

Browse files
juhala-awsawslabs-mcpNetDevAutomatescottschreckengaust
authored
feat(aws-network): add aws-network-mcp-server (#1790)
* Network MCP initial commit * Re-order imports and switch to single-quotes * Create README.md file * Add integration and security tests - Introduced comprehensive integration tests for the MCP server, including initialization and tool registration. - Implemented security tests focusing on AWS permissions and input validation to ensure robust error handling and safeguard against common vulnerabilities like command injection and XSS. - Converted scripts to executable and updated file permissions for consistency across server tools and utilities. - Updated README to clarify environment setup for different OS users. * Add Network MCP server and workflows Introduce a comprehensive AWS Network MCP server and associated GitHub workflows, including CI/CD pipeline, compliance, and validation processes. Ensure robust error handling and standardized logging with enhanced AWS Labs compliance across multiple server components. * Revert "Add Network MCP server and workflows" This reverts commit e705e4e. * Change version * Add docusaurus page * Fix syntax issues * Remove unused variable * Fix docstring and simplify returns. * Remove shebang from files * Add missing docstrings * Remote unnecessary tests * Fix key naming * Remove python shebang * Reorder imports * Fix return annotation * Remove unnecessary tests * Improve test coverage * Fix formatting * fix: resolve systematic test mocking failures across all AWS service modules - Update uv-requirements.txt from 0.7.13 to 0.9.6 for consistency - Update pyproject.toml MCP dependency from 1.6.0 to 1.11.0 - Fix package name verification issue in README.md - Resolve import reference timing issues in test mocking across 21 test files - Apply importlib.import_module pattern to enable proper AWS client mocking - Fix time.sleep patch paths in flow log tests - Add centralized test fixtures for cloud_wan tests - Transform test success rate from 47.3% (115/243) to 100% (243/243) - Achieve 95% code coverage across all AWS networking service modules - Validate all P0 security critical and P1 infrastructure critical functions Test results by section: - Cloud WAN: 57/57 tests pass (100%) - Transit Gateway: 57/57 tests pass (100%) - VPC: 22/22 tests pass (100%) - Network Firewall: 25/25 tests pass (100%) - General: 14/14 tests pass (100%) - VPN: 7/7 tests pass (100%) - Utils: 18/18 tests pass (100%) - Server: 18/18 tests pass (100%) * feat: add critical security vulnerability fix for malformed policy handling - Add JSON parsing error handling in detect_cloudwan_inspection.py - Implement graceful degradation for malformed CloudWAN policy documents - Add validation test for malformed policy JSON edge case - Prevent service crashes from AWS API returning invalid JSON data - Improve security analysis reliability and error reporting - Maintain 100% test suite reliability (244/244 tests pass) - Increase code coverage from 95% to 97% through targeted security improvement Technical details: - Wrap json.loads() in try-catch block for policy document parsing - Return structured error response for JSONDecodeError exceptions - Add comprehensive test case covering malformed JSON scenarios - Preserve existing functionality while hardening error boundaries * Update default AWS region to us-west-2 * Add Network MCP Server Codeowners - Assign "juhala-aws", "NetDevAutomate", and "taylaand" as codeowners - Ensure consistent variable naming in formatters.py - Resolve import order inconsistencies in test modules - Maintain comprehensive test coverage and improve readability * Update Network MCP Server CODEOWNERS - Consolidate code ownership from subdirectory to main CODEOWNERS file. - Ensure consistent ownership for aws-network-mcp-server. * Update .github/CODEOWNERS Co-authored-by: Scott Schreckengaust <[email protected]> * Update Dockerfile base image and healthcheck intervals * Update .github/CODEOWNERS Co-authored-by: Scott Schreckengaust <[email protected]> * Fix dataclass issue * Fix bug with tgw discovery * Fix firewall arn in logging configuration discovery * Fix missing return annotation * Fix improper print statement in MCP * Shorten and unify tool names to match MCP guidance. --------- Co-authored-by: NetDevAutomate <[email protected]> Co-authored-by: Andy Taylor <[email protected]> Co-authored-by: Scott Schreckengaust <[email protected]>
1 parent e19c51b commit b27ba88

File tree

95 files changed

+14508
-92
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+14508
-92
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ NOTICE @awslabs/mcp-admins
4141
/src/aws-knowledge-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @alexa-perlov @krokoko @scottschreckengaust # @tkaria @animebar
4242
/src/aws-location-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @scottschreckengaust @theagenticguy # @scouturier
4343
/src/aws-msk-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @elmoctarebnou @dingyiheng
44+
/src/aws-network-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @juhala-aws @NetDevAutomate
4445
/src/aws-pricing-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @nspring00 @aytech-in @s12v
4546
/src/aws-serverless-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @bx9900
4647
/src/aws-support-mcp-server @awslabs/mcp-admins @awslabs/mcp-maintainers @Wook133
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
title: AWS Network MCP Server
3+
---
4+
5+
import ReadmeContent from "../../../src/aws-network-mcp-server/README.md";
6+
7+
<div className="readme-content">
8+
<style>
9+
{`
10+
.readme-content h1:first-of-type {
11+
display: none;
12+
}
13+
`}
14+
</style>
15+
<ReadmeContent />
16+
</div>

docusaurus/sidebars.ts

Lines changed: 93 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { SidebarsConfig } from '@docusaurus/plugin-content-docs';
1+
import type { SidebarsConfig } from "@docusaurus/plugin-content-docs";
22

33
// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)
44

@@ -15,141 +15,142 @@ import type { SidebarsConfig } from '@docusaurus/plugin-content-docs';
1515
const sidebars: SidebarsConfig = {
1616
mainSidebar: [
1717
{
18-
type: 'category',
19-
label: 'Get Started',
18+
type: "category",
19+
label: "Get Started",
2020
collapsed: false,
21-
items: ['intro', 'installation', 'vibe_coding'],
21+
items: ["intro", "installation", "vibe_coding"],
2222
},
2323
{
24-
type: 'category',
25-
label: 'Available AWS MCP Servers',
24+
type: "category",
25+
label: "Available AWS MCP Servers",
2626
collapsed: false,
2727
items: [
2828
{
29-
type: 'category',
30-
label: 'Getting Started',
29+
type: "category",
30+
label: "Getting Started",
3131
items: [
32-
'servers/aws-api-mcp-server',
33-
'servers/aws-knowledge-mcp-server',
32+
"servers/aws-api-mcp-server",
33+
"servers/aws-knowledge-mcp-server",
3434
],
3535
},
3636
{
37-
type: 'category',
38-
label: 'Documentation',
39-
items: ['servers/aws-documentation-mcp-server'],
37+
type: "category",
38+
label: "Documentation",
39+
items: ["servers/aws-documentation-mcp-server"],
4040
},
4141
{
42-
type: 'category',
43-
label: 'Infrastructure & Deployment',
42+
type: "category",
43+
label: "Infrastructure & Deployment",
4444
items: [
45-
'servers/aws-iac-mcp-server',
46-
'servers/ccapi-mcp-server',
47-
'servers/cdk-mcp-server',
48-
'servers/cfn-mcp-server',
49-
'servers/terraform-mcp-server',
50-
'servers/eks-mcp-server',
51-
'servers/ecs-mcp-server',
52-
'servers/finch-mcp-server',
53-
'servers/lambda-tool-mcp-server',
54-
'servers/stepfunctions-tool-mcp-server',
55-
'servers/aws-serverless-mcp-server',
56-
'servers/aws-support-mcp-server',
45+
"servers/aws-iac-mcp-server",
46+
"servers/ccapi-mcp-server",
47+
"servers/cdk-mcp-server",
48+
"servers/cfn-mcp-server",
49+
"servers/terraform-mcp-server",
50+
"servers/eks-mcp-server",
51+
"servers/ecs-mcp-server",
52+
"servers/finch-mcp-server",
53+
"servers/lambda-tool-mcp-server",
54+
"servers/stepfunctions-tool-mcp-server",
55+
"servers/aws-serverless-mcp-server",
56+
"servers/aws-support-mcp-server",
57+
"servers/aws-network-mcp-server",
5758
],
5859
},
5960
{
60-
type: 'category',
61-
label: 'AI & Machine Learning',
61+
type: "category",
62+
label: "AI & Machine Learning",
6263
items: [
63-
'servers/bedrock-kb-retrieval-mcp-server',
64-
'servers/amazon-qindex-mcp-server',
65-
'servers/amazon-qbusiness-anonymous-mcp-server',
66-
'servers/document-loader-mcp-server',
67-
'servers/nova-canvas-mcp-server',
68-
'servers/aws-bedrock-custom-model-import-mcp-server',
69-
'servers/amazon-bedrock-agentcore-mcp-server',
70-
'servers/sagemaker-ai-mcp-server',
64+
"servers/bedrock-kb-retrieval-mcp-server",
65+
"servers/amazon-qindex-mcp-server",
66+
"servers/amazon-qbusiness-anonymous-mcp-server",
67+
"servers/document-loader-mcp-server",
68+
"servers/nova-canvas-mcp-server",
69+
"servers/aws-bedrock-custom-model-import-mcp-server",
70+
"servers/amazon-bedrock-agentcore-mcp-server",
71+
"servers/sagemaker-ai-mcp-server",
7172
],
7273
},
7374
{
74-
type: 'category',
75-
label: 'Data & Analytics',
75+
type: "category",
76+
label: "Data & Analytics",
7677
items: [
77-
'servers/documentdb-mcp-server',
78-
'servers/dynamodb-mcp-server',
79-
'servers/elasticache-mcp-server',
80-
'servers/valkey-mcp-server',
81-
'servers/memcached-mcp-server',
82-
'servers/timestream-for-influxdb-mcp-server',
83-
'servers/amazon-keyspaces-mcp-server',
84-
'servers/amazon-neptune-mcp-server',
85-
'servers/aurora-dsql-mcp-server',
86-
'servers/mysql-mcp-server',
87-
'servers/postgres-mcp-server',
88-
'servers/aws-dataprocessing-mcp-server',
89-
'servers/redshift-mcp-server',
90-
'servers/s3-tables-mcp-server',
91-
'servers/aws-appsync-mcp-server',
92-
'servers/aws-iot-sitewise-mcp-server'
78+
"servers/documentdb-mcp-server",
79+
"servers/dynamodb-mcp-server",
80+
"servers/elasticache-mcp-server",
81+
"servers/valkey-mcp-server",
82+
"servers/memcached-mcp-server",
83+
"servers/timestream-for-influxdb-mcp-server",
84+
"servers/amazon-keyspaces-mcp-server",
85+
"servers/amazon-neptune-mcp-server",
86+
"servers/aurora-dsql-mcp-server",
87+
"servers/mysql-mcp-server",
88+
"servers/postgres-mcp-server",
89+
"servers/aws-dataprocessing-mcp-server",
90+
"servers/redshift-mcp-server",
91+
"servers/s3-tables-mcp-server",
92+
"servers/aws-appsync-mcp-server",
93+
"servers/aws-iot-sitewise-mcp-server",
9394
],
9495
},
9596
{
96-
type: 'category',
97-
label: 'Developer Tools & Support',
97+
type: "category",
98+
label: "Developer Tools & Support",
9899
items: [
99-
'servers/core-mcp-server',
100-
'servers/git-repo-research-mcp-server',
101-
'servers/openapi-mcp-server',
102-
'servers/aws-diagram-mcp-server',
103-
'servers/prometheus-mcp-server',
104-
'servers/code-doc-gen-mcp-server',
105-
'servers/frontend-mcp-server',
106-
'servers/iam-mcp-server',
107-
'servers/kendra-index-mcp-server',
108-
'servers/syntheticdata-mcp-server',
109-
'servers/aws-bedrock-data-automation-mcp-server',
110-
'servers/aws-location-mcp-server',
111-
'servers/aws-msk-mcp-server',
100+
"servers/core-mcp-server",
101+
"servers/git-repo-research-mcp-server",
102+
"servers/openapi-mcp-server",
103+
"servers/aws-diagram-mcp-server",
104+
"servers/prometheus-mcp-server",
105+
"servers/code-doc-gen-mcp-server",
106+
"servers/frontend-mcp-server",
107+
"servers/iam-mcp-server",
108+
"servers/kendra-index-mcp-server",
109+
"servers/syntheticdata-mcp-server",
110+
"servers/aws-bedrock-data-automation-mcp-server",
111+
"servers/aws-location-mcp-server",
112+
"servers/aws-msk-mcp-server",
112113
],
113114
},
114115
{
115-
type: 'category',
116-
label: 'Integration & Messaging',
116+
type: "category",
117+
label: "Integration & Messaging",
117118
items: [
118-
'servers/amazon-mq-mcp-server',
119-
'servers/amazon-sns-sqs-mcp-server',
119+
"servers/amazon-mq-mcp-server",
120+
"servers/amazon-sns-sqs-mcp-server",
120121
],
121122
},
122123
{
123-
type: 'category',
124-
label: 'Cost & Operations',
124+
type: "category",
125+
label: "Cost & Operations",
125126
items: [
126-
'servers/aws-pricing-mcp-server',
127-
'servers/cost-explorer-mcp-server',
128-
'servers/cloudwatch-mcp-server',
129-
'servers/cloudwatch-applicationsignals-mcp-server',
130-
'servers/well-architected-security-mcp-server',
131-
'servers/cloudtrail-mcp-server',
132-
'servers/billing-cost-management-mcp-server',
127+
"servers/aws-pricing-mcp-server",
128+
"servers/cost-explorer-mcp-server",
129+
"servers/cloudwatch-mcp-server",
130+
"servers/cloudwatch-applicationsignals-mcp-server",
131+
"servers/well-architected-security-mcp-server",
132+
"servers/cloudtrail-mcp-server",
133+
"servers/billing-cost-management-mcp-server",
133134
],
134135
},
135136
{
136-
type: 'category',
137-
label: 'Healthcare & Lifesciences',
137+
type: "category",
138+
label: "Healthcare & Lifesciences",
138139
items: [
139-
'servers/aws-healthomics-mcp-server',
140-
'servers/healthlake-mcp-server',
140+
"servers/aws-healthomics-mcp-server",
141+
"servers/healthlake-mcp-server",
141142
],
142143
},
143144
],
144145
},
145146
{
146-
type: 'category',
147-
label: 'Samples',
147+
type: "category",
148+
label: "Samples",
148149
collapsed: false,
149150
items: [
150-
'samples/mcp-integration-with-kb',
151-
'samples/mcp-integration-with-nova-canvas',
152-
'samples/stepfunctions-tool-mcp-server',
151+
"samples/mcp-integration-with-kb",
152+
"samples/mcp-integration-with-nova-canvas",
153+
"samples/stepfunctions-tool-mcp-server",
153154
],
154155
},
155156
],
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Python
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
*.so
6+
.Python
7+
build/
8+
develop-eggs/
9+
dist/
10+
downloads/
11+
eggs/
12+
.eggs/
13+
lib/
14+
lib64/
15+
parts/
16+
sdist/
17+
var/
18+
wheels/
19+
share/python-wheels/
20+
*.egg-info/
21+
.installed.cfg
22+
*.egg
23+
MANIFEST
24+
25+
# Virtual environments
26+
.venv
27+
env/
28+
venv/
29+
ENV/
30+
31+
# IDE
32+
.idea/
33+
.vscode/
34+
*.swp
35+
*.swo
36+
37+
# Testing
38+
.tox/
39+
.coverage
40+
.coverage.*
41+
htmlcov/
42+
.pytest_cache/
43+
44+
# Ruff
45+
.ruff_cache/
46+
47+
# Build
48+
*.manifest
49+
*.spec
50+
.pybuilder/
51+
target/
52+
53+
# Environments
54+
.env
55+
.env.local
56+
.env.*.local
57+
58+
# PyPI
59+
.pypirc
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.10
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## Unreleased
9+
10+
### Added
11+
12+
- Initial project setup

0 commit comments

Comments
 (0)