Skip to main content
Glama

Hermes Plant — Agent Commerce Assurance

PortfolioGuard — portfolio risk

portfolioguard_score
Idempotent

PortfolioGuard (x402-paid, $0.15): deterministic portfolio risk scoring from holdings — volatility, Sharpe, max drawdown, concentration (HHI), diversification, plus per-rule findings.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
payerNoOptional wallet/account identifier; stored only as a hash
apiKeyNoFree-tier / plan API key (hp_free_… or a pass key). Forwarded as X-API-Key so paid tools serve from your monthly quota with NO x402 wallet. Get a free key (250 calls/mo) at https://hermesplant.com/pricing.
channelNoDiscovery channel or source tag
campaignNoCampaign tag for downstream telemetry
holdingsYesPositions with symbol, weight (0-1), optional returns[], sector
xPaymentNoRaw X-PAYMENT proof from an x402-compatible wallet/client
actorTypeNoCaller type for analytics: agent, human, synthetic, system, or unknown
syntheticNoMark this paid retry as an internal test/probe for analytics exclusion
riskFreeRateNoOptional risk-free rate for the Sharpe ratio (default 0)
periodReturnsNoOptional portfolio/market return series
paymentSignatureNox402 payment proof to forward as PAYMENT-SIGNATURE and X-PAYMENT on retry
paymentIdentifierNoOptional x402 payment identifier for idempotency/retry correlation

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYesTrue when the upstream storefront call returned a 2xx response
httpStatusYesUpstream HTTP status code
paymentRequiredNoTrue when the response is an x402 HTTP 402 payment challenge

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond the annotations: 'x402-paid, $0.15' discloses cost and payment method, and 'deterministic' reinforces idempotency (which annotations also hint at). It does not contradict the annotations; it enriches them with pricing and determinism details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that packs product name, cost, purpose, and key metrics without redundancy. Every element earns its place and it is immediately understandable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is well covered by a detailed input schema, output schema, and annotations. The description adds the critical missing context: cost, determinism, and the specific metrics calculated. Together, the structured data and description give a complete picture for selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter description coverage, so the schema already thoroughly documents each parameter. The tool description does not add meaning beyond the schema; it mentions 'holdings' and metrics, but these are already present in the schema. Baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('scoring') and clearly identifies the resource ('portfolio risk') with a defined scope ('from holdings'). It lists concrete metrics (volatility, Sharpe, max drawdown, concentration, diversification), distinguishing it from sibling tools like walletguard_score or mcp_risk_score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case ('portfolio risk scoring from holdings') and notes it is x402-paid, but it does not explicitly state when to use this tool versus alternatives or provide exclusions. There is no mention of alternative tools or conditions, so guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.6/5.0
Disambiguation4/5

Most tools have clearly distinct purposes. Some overlap exists (e.g., dealanalyzer_analyze combines CashflowLens and WaterfallLens; action_safety_run includes DestructGuard evidence), but descriptions explicitly clarify scope so an agent can choose correctly.

Naming Consistency2/5

Naming patterns are mixed: some verbs precede nouns (get_product, purchase_with_x402), others follow nouns (bond_analyze, portfolioguard_score), and some are multi-word (action_safety_quick_gate). This inconsistency makes tool selection less predictable.

Tool Count3/5

At 25 tools, the server is at the heavy end and spans diverse subdomains (safety, payments, financial analytics, storefront). While each tool serves a purpose, the broad scope makes it feel overloaded for a single server.

Completeness3/5

Core assurance workflows (safety, payment, verification) are covered, but gaps exist: no refund/cancellation tools, no attestation lookup, and no way to retrieve 30-day action-safety status records. Financial analytics also have limited coverage (no equities).