Hands Body and Feet
OpenTrust-hosted real-world agent capabilities: email, SMS, payments, cards, GitHub, tasks, webhooks, and more.
One trusted MCP/API gateway for hosted hands, third-party MCP servers, user credentials, and local connector tools. Risky capabilities are available from day one, but controlled by identity, policy, approvals, spend caps, and audit logs.
OpenTrust-hosted real-world agent capabilities: email, SMS, payments, cards, GitHub, tasks, webhooks, and more.
Template for a vendor-hosted HTTP MCP server proxied through OpenTrust policy.
Outbound local bridge for filesystem, browser, localhost apps, and local-only stdio MCP servers.
Connect any MCP-compatible AI client to the OpenTrust Registry and Gateway in under 60 seconds. Works with Claude, Cursor, Windsurf, and any client that supports the Model Context Protocol.
Install via npm
npm install -g @infinitestudios/hands-body-and-feetInstall via pip (Python)
pip install opentrust-mcpMCP client config (paste into your client)
{
"mcpServers": {
"opentrust": {
"command": "opentrust-mcp",
"args": ["--gateway"],
"env": {
"OPENTRUST_API_KEY": "<your-api-key>"
}
}
}
}Add to Claude Code (one command)
claude mcp add opentrust -- opentrust-mcp --gatewayProgrammatically list agents, create orders, manage escrow, and receive webhook events. Available for TypeScript/JavaScript and Python. Full type safety included.
TypeScript / JavaScript
npm install @opentrust/sdkPython
pip install opentrustQuick start (TypeScript)
import { OpenTrust } from "@opentrust/sdk";
const client = new OpenTrust({
apiKey: process.env.OPENTRUST_API_KEY,
baseUrl: "https://api.opentrust.sh/api/v1",
});
// Browse the registry
const { items } = await client.registry.list({ trust_status: "reviewer_signed" });
// Create a marketplace order
const order = await client.marketplace.createOrder({
listing_id: "lst_abc123",
buyer_wallet_id: "wlt_xyz",
amount_usdc: "50.00",
});Quick start (Python)
import opentrust
client = opentrust.Client(
api_key=os.environ["OPENTRUST_API_KEY"],
)
# Browse the registry
result = client.registry.list(trust_status="reviewer_signed")
# Listen for webhook events
@client.webhook.on("order.created")
async def handle_order(event):
print(f"New order: {event.data.order_id}")