README
🚀 S3 模型上下文协议服务器示例
这是一个用于从 S3 获取数据(如 PDF 文件)的 MCP 服务器实现,能够帮助用户方便地从 AWS S3 中获取所需数据并加载到 LLM 上下文中。
🚀 快速开始
本项目是一个用于从 S3 获取数据(如 PDF 文件)的 MCP 服务器实现,下面将为你介绍其主要功能、配置方式、开发流程等内容。
✨ 主要特性
资源
通过 资源 展现 AWS S3 数据(类似于 GET 端点,用于将信息加载到 LLM 的上下文中)。目前仅支持 PDF 文件,且最多显示 1000 个对象。
工具
- ListBuckets:返回所有由经过身份验证的请求发送者拥有的桶的列表。
- ListObjectsV2:返回某个桶中的一些或全部(每个请求最多返回 1000)对象。
- GetObject:从 Amazon S3 检索一个对象。在 GetObject 请求中,需指定该对象的完整键名。支持通用存储桶,同时支持虚拟主机样式请求和路径样式请求。
📦 安装指南
设置 AWS 凭证
- 通过 AWS 管理控制台获取 AWS 访问密钥 ID、秘密访问密钥和区域,使用 默认 配置文件配置凭证文件,如 这里 所示。
- 确保这些凭证具有适当的权限以读取/写入 S3。
与 Claude Desktop 使用
Windows 和 MacOS
- 在 MacOS 上:
~/Library/Application\ 支持/Claude/claude_desktop_config.json - 在 Windows 上:%APPDATA%/Claude/claude_desktop_config.json%
开发/未发布的服务器配置
{
"mcpServers": {
"s3-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/Users/user/generative_ai/model_context_protocol/s3-mcp-server",
"run",
"s3-mcp-server"
]
}
}
}
已发布的服务器配置
{
"mcpServers": {
"s3-mcp-server": {
"command": "uvx",
"args": [
"s3-mcp-server"
]
}
}
}
💻 使用示例
基础用法
以下是构建和发布项目的基础命令:
# 同步依赖项并更新锁定文件
uv sync
# 构建发行版本
uv build
# 发布到 PyPI
uv publish
高级用法
调试
由于 MCP 服务器通过标准输入输出运行,调试可能具有挑战性。为了获得最佳的调试体验,我们强烈推荐使用 MCP 检查器。
你可以通过 npm 执行以下命令启动 MCP 检查器:
npx @modelcontextprotocol/inspector uv --directory /Users/user/generative_ai/model_context_protocol/s3-mcp-server run s3-mcp-server
启动后,检查器会显示一个 URL,你可以在浏览器中访问该 URL 开始调试。
📚 详细文档
构建和发布
为了准备分发包,需要按以下步骤操作:
- 同步依赖项并更新锁定文件:
uv sync
- 构建发行版本:
uv build
这将在 dist/ 目录中创建源代码和轮发行。
3. 发布到 PyPI:
uv publish
注意:你需要通过环境变量或命令行参数设置 PyPI 凭证:
- 令牌:
--token或UV_PUBLISH_TOKEN - 或者用户名/密码:
--username/UV_PUBLISH_USERNAME和--password/UV_PUBLISH_PASSWORD
🔧 技术细节
本项目主要实现了从 AWS S3 获取数据的功能,通过特定的工具和资源展示数据。在配置方面,需要设置 AWS 凭证以确保能够正常访问 S3 服务。在开发过程中,使用特定的命令进行构建、发布和调试,以保证项目的正常运行。
📄 许可证
MIT License
保留所有权利。请查看完整的许可信息。
🔒 安全说明
有关更多信息,请参阅 CONTRIBUTING
扫码联系在线客服