strands-hub-mcp
# strands-hub-mcp
MCP server that exposes [`strands-hub`](https://github.com/labeveryday/strands-hub) data from S3:
- **Registry** - list/update agents
- **Prompts** - get/create prompt versions
- **Sessions** - browse session data (read-only)
- **Metrics** - query run metrics (read-only)
## Prerequisites
- Python 3.10+
- AWS credentials configured (`~/.aws/credentials` or env vars)
- S3 bucket with strands-hub data
## Claude Code Integration
```bash
claude mcp add strands-hub-mcp --scope user \
-e USE_S3=true \
-e AGENT_HUB_BUCKET=your-bucket-name \
-e AGENT_HUB_REGION=us-east-1 \
-- uv --directory /path/to/strands-hub-mcp run strands-hub-mcp
```
Verify:
```bash
claude mcp list
```
## Available Tools
| Tool | Description |
|------|-------------|
| `hub_status` | Show current hub configuration |
| `registry_list_agents` | List all registered agents |
| `registry_get_agent` | Get agent details |
| `registry_update_metadata` | Update agent metadata |
| `prompts_get_current` | Get current prompt for an agent |
| `prompts_get_version` | Get specific prompt version |
| `prompts_list_versions` | List all prompt versions |
| `prompts_create_version` | Create new prompt version (append-only) |
| `metrics_list` | List metrics by date/agent |
| `metrics_get` | Get specific metrics record |
| `sessions_list` | List all sessions |
| `sessions_get_session_json` | Get session metadata |
| `sessions_list_agents` | List agents in a session |
| `sessions_get_agent_json` | Get agent data from session |
| `sessions_list_messages` | List messages in a session |
| `sessions_get_message_json` | Get specific message |
## Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `USE_S3` | Yes | Must be `true` |
| `AGENT_HUB_BUCKET` | Yes | S3 bucket name |
| `AGENT_HUB_REGION` | Yes | AWS region |
## Author
Built by **Du'An Lightfoot** ([@labeveryday](https://github.com/labeveryday))TDQS
Scored across 17 tools
Most tools map to distinct resources and actions, with clear domain prefixes (registry, prompts, metrics, sessions). However, sessions_get_session_json and sessions_get_raw both fetch session data and could be confused, as could registry_get_agent vs sessions_get_agent_json despite their different contexts.
Naming follows a consistent <domain>_<verb>_<object> pattern for nearly all tools, such as registry_list_agents and sessions_get_message_json. The main deviation is hub_status, which lacks a verb unlike the rest, and sessions_get_raw uses an adjective instead of a specific object.
17 tools is slightly above the typical well-scoped range, but the count is justified by the five distinct domains and the deep session hierarchy. Each tool serves a specific retrieval task, making the count reasonable rather than bloated.
The read-focused surface is fairly complete for inspection: sessions are traversable from ID down to message content, prompts have version listing/creation, and metrics are accessible. Minor gaps include no delete/create in the registry and no write operations for sessions, but these may be intentionally outside the server's scope.