🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

rosettahub-mcp-server

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rosettahub-mcp-server

MCP server for managing RosettaHUB user AWS cloud accounts via SOAP API

pipPyPI
Version
0.2.0
Weekly downloads
60
-16.67%
Maintainers
1
Weekly downloads
 

rosettahub-mcp-server

An MCP server for managing RosettaHUB user AWS cloud accounts

CI PyPI Python License Coverage

RosettaHUB is a platform used by educators to provision and manage user AWS cloud environments. This MCP server wraps the RosettaHUB SOAP API into 16 tools and 2 resources, letting AI assistants like Claude manage user accounts through natural language.

Example: "Show me which users have used over 80% of their budget" or "Run aws ec2 describe-instances across all user accounts"

Quick Start

Install

pip install rosettahub-mcp-server

Configure

export RH_API_KEY="your-rosettahub-api-key"
export RH_ORG="Your-Org-Name"

Add to Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "rosettahub": {
      "command": "uvx",
      "args": ["rosettahub-mcp-server"],
      "env": {
        "RH_API_KEY": "your-api-key",
        "RH_ORG": "Your-Org-Name"
      }
    }
  }
}

Add to Claude Code

claude mcp add rosettahub -e RH_API_KEY=your-key -e RH_ORG=Your-Org -- rosettahub-mcp-server

Tools

Account & API Info

ToolDescription
test_connectionTest the API connection and return authenticated user info
list_accountsList your own RosettaHUB cloud accounts
list_user_accountsList all user accounts with budget details
list_usersList all federated users in the organization
list_api_methodsList all available RosettaHUB SOAP API methods

AWS Execution

ToolDescription
aws_execRun an AWS CLI command across all user accounts
aws_exec_userRun an AWS CLI command on one user's account
ec2_listList EC2 instances across all user accounts
get_sts_credentialsGet temporary AWS STS credentials for a user
get_console_urlGet a sign-in URL for a user's AWS Console

Budget Management

ToolDescription
budget_statusShow budget, spending, and remaining balance for all users
budget_transferTransfer budget to all user accounts
budget_transfer_userTransfer budget to one user's account

Access Control

ToolDescription
quarantine_userQuarantine a user (restrict cloud access)
unquarantine_userUnquarantine a user (restore cloud access)
set_allowed_regionsSet which AWS regions a user can use

Resources

URIDescription
rosettahub://usersJSON list of current user logins
rosettahub://budget-summaryJSON budget data for all users

Configuration

Environment VariableRequiredDefaultDescription
RH_API_KEYYesYour RosettaHUB API key
RH_ORGYesYour RosettaHUB organization name
RH_AWS_REGIONNoeu-west-1Default AWS region for commands
RH_WSDL_URLNoRosettaHUB public APIOverride WSDL endpoint URL

Security

  • Command validation — All AWS commands must start with aws to prevent arbitrary execution
  • Region validation — Region parameters are validated against AWS format to prevent flag injection
  • No shell injection — Commands run with shell=False using shlex.split()
  • Subprocess timeout — AWS CLI calls are capped at 60 seconds to prevent hung processes
  • Minimal subprocess environment — Only AWS credentials and PATH are passed to child processes
  • Temporary credentials — AWS access uses short-lived STS sessions (1 hour default), never long-term keys
  • Logging to stderr — stdout is reserved for MCP JSON-RPC transport

Architecture

src/rosettahub_mcp_server/
├── server.py        # FastMCP instance and entry point
├── config.py        # Environment variable loading
├── client.py        # Singleton SOAP client (zeep)
├── types.py         # TypedDict return types
├── tools/
│   ├── account_tools.py    # 5 account/API info tools
│   ├── aws_tools.py        # 5 AWS execution tools
│   ├── budget_tools.py     # 3 budget tools
│   └── user_mgmt_tools.py  # 3 access control tools
└── resources/
    └── user_resources.py # 2 MCP resources

Development

git clone https://github.com/danielcregg/rosettahub-mcp-server.git
cd rosettahub-mcp-server
pip install -e ".[dev]"

Run tests

pytest -v

All tests use mocked SOAP responses — no API key needed.

Lint & type check

ruff check src/ tests/
mypy src/ --ignore-missing-imports

Run locally

export RH_API_KEY="your-key"
export RH_ORG="Your-Org"
rosettahub-mcp-server

Disclaimer

This is an unofficial, community-maintained integration. It is not affiliated with, endorsed by, or sponsored by RosettaHUB. "RosettaHUB" is a trademark of its respective owner.

License

MIT — see LICENSE for details.

Keywords

aws

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts