内容
# S3 模型上下文协议服务器
S3 模型上下文协议服务器的实现,用于从 S3 检索 PDF 等数据。
## 功能
### 资源
通过 **资源** 暴露 AWS S3 数据。(可以将其视为类似 GET 端点的东西;它们用于将信息加载到 LLM 的上下文中)。目前仅支持 **PDF** 文档,限制为 **1000** 个对象。
### 工具
- **列出存储桶**
- 返回身份验证的请求发送者拥有的所有存储桶的列表
- **列出对象 V2**
- 返回存储桶中的部分或全部(最多 1,000)对象,每个请求返回一些对象
- **获取对象**
- 从 Amazon S3 检索对象。在 GetObject 请求中,指定对象的完整密钥名称。通用存储桶 - 同时支持虚拟托管样式请求和路径样式请求
## 配置
### 设置 AWS 凭证
1. 从 AWS 管理控制台获取 AWS 访问密钥 ID、秘密访问密钥和区域。
2. 确保这些凭证具有适当的 AWS S3 权限。
### 与 Claude Desktop 配合使用
#### Claude Desktop
在 MacOS 上:`~/Library/Application\ Support/Claude/claude_desktop_config.json`
在 Windows 上:`%APPDATA%/Claude/claude_desktop_config.json`
<details>
<summary>开发/未发布的服务器配置</summary>
```json
{
"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>
```json
{
"mcpServers": {
"s3-mcp-server": {
"command": "uvx",
"args": [
"s3-mcp-server"
]
}
}
}
```
</details>
## 开发
### 构建和发布
为分发做准备:
1. 同步依赖项并更新锁定文件:
```bash
uv sync
```
2. 构建包分发:
```bash
uv build
```
这将在 `dist/` 目录中创建源代码和轮子分发。
3. 发布到 PyPI:
```bash
uv publish
```
注意:您需要通过环境变量或命令标志设置 PyPI 凭证:
- 令牌:`--token` 或 `UV_PUBLISH_TOKEN`
- 或用户名/密码:`--username`/`UV_PUBLISH_USERNAME` 和 `--password`/`UV_PUBLISH_PASSWORD`
### 调试
由于 MCP 服务器运行在标准输入/输出上,因此调试可能具有挑战性。为了获得最佳的调试体验,我们强烈建议使用 [MCP Inspector](https://github.com/modelcontextprotocol/inspector)。
您可以通过 [`npm`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) 使用以下命令启动 MCP Inspector:
```bash
npx @modelcontextprotocol/inspector uv --directory /Users/user/generative_ai/model_context_protocol/s3-mcp-server run s3-mcp-server
```
启动后,Inspector 将显示一个 URL,您可以在浏览器中访问该 URL 以开始调试。
## 安全
有关更多信息,请参阅 [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications)。
## 许可证
该库在 MIT-0 许可证下获得许可。有关详细信息,请参阅 LICENSE 文件。