返回市场
示例-mcp-服务器-s3

示例-mcp-服务器-s3

作者:aws-samples69 星标更新:2025-02-25

项目介绍

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

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

特性

资源

通过资源暴露AWS S3数据。(可以将其视为类似GET端点;它们用于将信息加载到LLM的上下文中)。目前仅支持PDF文档,并且限制为1000个对象。

工具

  • ListBuckets
    • 返回请求认证发送者拥有的所有桶的列表。
  • ListObjectsV2
    • 每次请求返回一个桶中的部分或全部(最多1,000个)对象。
  • GetObject
    • 从Amazon S3中检索对象。在GetObject请求中,指定对象的完整键名。通用桶 - 支持虚拟主机样式请求和路径样式请求。

配置

设置AWS凭证

  1. 从AWS管理控制台获取AWS访问密钥ID、秘密访问密钥和区域,并使用默认配置文件配置凭证文件,如此处所示。
  2. 确保这些凭证具有适当的S3读写权限。

与Claude Desktop的使用

Claude Desktop

在MacOS上:~/Library/Application\ Support/Claude/claude_desktop_config.json 在Windows上:%APPDATA%/Claude/claude_desktop_config.json

<details> <summary>开发/未发布的服务器配置</summary>
{
  "mcpServers": {
    "s3-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/user/generative_ai/model_context_protocol/s3-mcp-server",
        "run",
        "s3-mcp-server"
      ]
    }
  }
}
</details> <details> <summary>已发布服务器配置</summary>
{
  "mcpServers": {
    3-mcp-server": {
      "command": "uvx",
      "args": [
        "s3-mcp-server"
      ]
    }
  }
}
</details>

开发

构建和发布

为了准备分发包:

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

这将在dist/目录中创建源和轮子分布。

  1. 发布到PyPI:
uv publish

注意:您需要通过环境变量或命令标志设置PyPI凭证:

  • Token: --tokenUV_PUBLISH_TOKEN
  • 或用户名/密码: --username/UV_PUBLISH_USERNAME--password/UV_PUBLISH_PASSWORD

调试

由于MCP服务器通过标准I/O运行,调试可能会很困难。为了获得最佳调试体验,我们强烈建议使用MCP Inspector

您可以使用以下命令通过npm启动MCP Inspector:

npx @modelcontextprotocol/inspector uv --directory /Users/user/generative_ai/model_context_protocol/s3-mcp-server run s3-mcp-server

启动后,Inspector将显示一个可以在浏览器中访问的URL以开始调试。

安全

更多信息,请参阅CONTRIBUTING

许可证

本库根据MIT-0许可证授权。请参阅LICENSE文件。