S3数据检索服务器

一个用于从AWS S3检索PDF等数据的MCP服务器实现,适用于需要将S3数据加载到LLM上下文中的场景。

  • by aws-samples
  • Python
  • 本地部署
  • 79 星标
  • 更新于
在 GitHub 查看 aws-samples/sample-mcp-server-s3

使用说明

S3模型上下文协议服务器示例

用于从S3检索PDF等数据的MCP服务器实现。

特性

资源

通过以下方式公开AWS S3数据 资源(将这些类似于GET端点;它们用于将信息加载到LLM的上下文中)。目前仅 PDF 支持的文件仅限于 1000 物体。

工具

  • 列表Buckets
    • 返回请求的经过身份验证的发送方拥有的所有bucket的列表
  • 列表对象V2
    • 每次请求时返回bucket中的部分或全部(最多1000个)对象
  • 获取对象
    • 从Amazon S3检索对象。在GetObject请求中,指定对象的完整键名。通用桶-支持虚拟托管样式请求和路径样式请求

配置

设置AWS凭据

  1. 从AWS管理控制台获取AWS访问密钥ID、秘密访问密钥和区域。
  2. 确保这些凭据具有AWS 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"
      ]
    }
  }
}

发展

建筑与出版

准备分发包裹:

  1. 同步依赖关系并更新锁文件:
uv sync
  1. 构建包分发:
uv build

这将在 dist/ 目录。

  1. 发布到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以开始调试。

安全

看 贡献 了解更多信息。

许可证

此库根据MIT-0许可证获得许可。请参阅LICENSE文件。