使用说明
S3模型上下文协议服务器示例
用于从S3检索PDF等数据的MCP服务器实现。
注: dev 分支具有PutObject和CreateBucket的逻辑,作为中提供的默认get操作的扩展
https://github.com/aws-samples/sample-mcp-server-s3
特性
资源
通过以下方式公开AWS S3数据 资源(将这些类似于GET端点;它们用于将信息加载到LLM的上下文中)。目前仅 可移植文档格式 支持的文件仅限于 1000 物体。
工具
- 列表Buckets
- 返回请求的经过身份验证的发送方拥有的所有bucket的列表
- 列表对象V2
- 每次请求时返回bucket中的部分或全部(最多1000个)对象
- 获取对象
- 从Amazon S3检索对象。在GetObject请求中,指定对象的完整键名。通用桶-支持虚拟托管样式请求和路径样式请求
配置
设置AWS凭据
- 从AWS管理控制台获取AWS访问密钥ID、秘密访问密钥和区域,并使用配置凭据文件 默认 配置文件如图所示 这里
- 确保这些凭据具有S3的适当读/写权限。
使用Claude Desktop
克劳德桌面
在MacOS上: ~/Library/Application\ Support/Claude/claude_desktop_config.json
在Windows上: %APPDATA%/Claude/claude_desktop_config.json
Development/Unpublished Servers Configuration
{
"mcpServers": {
"s3-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/Users/user/generative_ai/model_context_protocol/s3-mcp-server",
"run",
"s3-mcp-server"
]
}
}
}
Published Servers Configuration
{
"mcpServers": {
"s3-mcp-server": {
"command": "uvx",
"args": [
"s3-mcp-server"
]
}
}
}
发展
建筑与出版
准备分发包裹:
- 同步依赖关系并更新锁文件:
uv sync
- 构建包分发:
uv build
这将在 dist/ 目录。
- 发布到PyPI:
uv publish
注意:您需要通过环境变量或命令标志设置PyPI凭据:
- 令牌:
--token或UV_PUBLISH_TOKEN - 或用户名/密码:
--username/UV_PUBLISH_USERNAME和--password/UV_PUBLISH_PASSWORD
调试
由于MCP服务器在stdio上运行,调试可能具有挑战性。为了达到最佳调试效果 经验,我们强烈建议使用 MCP检查员.
您可以通过以下方式启动MCP检查器 npm 使用此命令:
npx @modelcontextprotocol/inspector uv --directory /Users/user/generative_ai/model_context_protocol/s3-mcp-server run s3-mcp-server
启动后,检查器将显示一个URL,您可以在浏览器中访问该URL以开始调试。
安全
看 贡献 了解更多信息。
参考文献
https://github.com/aws-samples/sample-mcp-server-s3
https://github.com/modelcontextprotocol/servers