Skip to content

Commit 04ed896

Browse files
authored
feat: added AWS S3 MCP - listBuckets, listObjects (#38)
1 parent a1de5be commit 04ed896

File tree

17 files changed

+791
-339
lines changed

17 files changed

+791
-339
lines changed

.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,11 @@ MCP_CONFIG_TOOLS_AWS_REGION=us-east-1
4747
MCP_CONFIG_TOOLS_AWS_PROFILE=default
4848
MCP_CONFIG_TOOLS_AWS_CREDENTIALS_ACCESS_KEY_ID=
4949
MCP_CONFIG_TOOLS_AWS_CREDENTIALS_SECRET_ACCESS_KEY=
50+
MCP_CONFIG_TOOLS_AWS_CREDENTIALS_SESSION_TOKEN=
5051

5152
MCP_CONFIG_TOOLS_AWS_BEDROCK_REGION=us-east-1
5253
MCP_CONFIG_TOOLS_AWS_BEDROCK_PROFILE=default
5354
MCP_CONFIG_TOOLS_AWS_BEDROCK_CREDENTIALS_ACCESS_KEY_ID=
5455
MCP_CONFIG_TOOLS_AWS_BEDROCK_CREDENTIALS_SECRET_ACCESS_KEY=
56+
MCP_CONFIG_TOOLS_AWS_BEDROCK_CREDENTIALS_SESSION_TOKEN=
5557
MCP_CONFIG_TOOLS_AWS_BEDROCK_MODEL=anthropic.claude-3-5-sonnet-20241022-v2:0

.gitlab-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
image: node:22.16.0-alpine
1+
image: node:22.17.0-alpine
22

33
stages:
44
- prepare

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
22.16.0
1+
22.17.0

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# syntax=docker/dockerfile:1
22
# hadolint global ignore=DL3018
33

4-
FROM node:22.16.0-alpine AS base
4+
FROM node:22.17.0-alpine AS base
55

66
# Stage 1: Build stage
77
FROM base AS development

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ A playground for Model Context Protocol (MCP) server built with TypeScript and S
88
- OAuth authentication/3rd party authorization: Implements an OAuth server for MCP clients to process 3rd party authorization servers like Auth0, providing Dynamic Application Registration for MCP server.
99
- Storage: Provide storage for MCP server to store data like OAuth sessions, tokens, etc.
1010
- Session Management: Support stateful sessions by using replay of initial request.
11-
- Tools: `echo`, `system-time`, `streaming`, `project` for demonstration.
11+
- Tools: `aws-s3`, `echo`, `system-time`, `streaming`, `project` for demonstration.
1212
- Prompts: `echo`
1313

1414
## Why this project exists?

mcp-config.example.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"--debug"
1717
],
1818
"env": {
19-
"PATH": "~/.local/share/nvm/v22.16.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
19+
"PATH": "~/.local/share/nvm/v22.17.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
2020
}
2121
}
2222
}

package-lock.json

Lines changed: 447 additions & 269 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@
3737
"typescript",
3838
"boilerplate",
3939
"server",
40-
"anthropic"
40+
"anthropic",
41+
"oauth",
42+
"auth0"
4143
],
4244
"author": "Chris Lee <git@chrislee.kr>",
4345
"repository": {
@@ -49,9 +51,11 @@
4951
},
5052
"homepage": "https://github.com/chrisleekr/mcp-server-playground#readme",
5153
"dependencies": {
52-
"@aws-sdk/client-bedrock": "3.858.0",
53-
"@aws-sdk/client-ecs": "3.858.0",
54-
"@aws-sdk/client-s3": "3.858.0",
54+
"@aws-sdk/client-bedrock": "3.859.0",
55+
"@aws-sdk/client-ecs": "3.859.0",
56+
"@aws-sdk/client-s3": "3.859.0",
57+
"@aws-sdk/credential-provider-node": "3.859.0",
58+
"@aws-sdk/credential-providers": "3.859.0",
5559
"@modelcontextprotocol/sdk": "1.17.1",
5660
"axios": "1.11.0",
5761
"base64url": "3.0.1",
@@ -69,6 +73,7 @@
6973
"zod-to-json-schema": "3.24.6"
7074
},
7175
"devDependencies": {
76+
"@aws-sdk/types": "^3.840.0",
7277
"@commitlint/cli": "19.8.1",
7378
"@commitlint/config-conventional": "19.8.1",
7479
"@eslint/js": "9.32.0",
@@ -111,10 +116,10 @@
111116
]
112117
},
113118
"engines": {
114-
"node": ">=22.16.0"
119+
"node": ">=22.17.0"
115120
},
116121
"volta": {
117-
"node": ">=22.16.0",
118-
"npm": ">=10.7.0"
122+
"node": ">=22.17.0",
123+
"npm": ">=11.5.2"
119124
}
120125
}

src/config/manager.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,15 @@ export class ConfigManager {
5656
credentials: {
5757
accessKeyId: null,
5858
secretAccessKey: null,
59+
sessionToken: null,
5960
},
6061
bedrock: {
6162
region: 'us-east-1',
6263
profile: 'default',
6364
credentials: {
6465
accessKeyId: null,
6566
secretAccessKey: null,
67+
sessionToken: null,
6668
},
6769
model: 'anthropic.claude-3-5-sonnet-20240620-v1:0',
6870
},

src/config/type.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,15 @@ export const ToolsConfigSchema = z.object({
6464
credentials: z.object({
6565
accessKeyId: z.string().nullable(),
6666
secretAccessKey: z.string().nullable(),
67+
sessionToken: z.string().nullable(),
6768
}),
6869
bedrock: z.object({
6970
region: z.string(),
7071
profile: z.string().nullable(),
7172
credentials: z.object({
7273
accessKeyId: z.string().nullable(),
7374
secretAccessKey: z.string().nullable(),
75+
sessionToken: z.string().nullable(),
7476
}),
7577
model: z.string(),
7678
}),

0 commit comments

Comments
 (0)