# Alex Polonsky Profile

> Public, read-only professional profile and current availability for Alex Polonsky.

- name: com.alexpolonsky/profile
- version: 0.1.0
- connection class: R0 (autonomous)
- trust: 79/100 flags: no-repository
- quality: 94/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.alexpolonsky%2Fprofile
- tools: https://api.protogrid.dev/v1/servers/com.alexpolonsky%2Fprofile/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "profile": {
      "type": "http",
      "url": "https://alexpolonsky.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 99
- freshness: 85
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-97% ~updated-52d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 94/100 (strong)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 86400000)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 2 of 2 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_profile (destructiveHint, idempotentHint); get_availability (destructiveHint, idempotentHint)
- pass `tools.token_cost`: about 383 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 2, about 383 tokens to load them all
- tool set hash: 1ab779254b3d13e6d310a5e209b779f8
- badge: [![protogrid quality](https://protogrid.dev/badge/com.alexpolonsky/profile.svg)](https://protogrid.dev/servers/com.alexpolonsky/profile)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://alexpolonsky.com/mcp (streamable-http, auth none, reachable true, uptime30d 0.9652174)

## Packages

_none_

## Tools (2)

- `get_availability`: Get Alex Polonsky's current public opportunity status, preferred work and engagement contexts, and public contact routes. Preserve the structure: primary_focus is the main focus; other_paid_engagements are selected paid options; co-building or founding requires a clear commercial or ownership arrangement. Include relevant professional_directions, location_preferences, work_modes, and contact_routes. Treat last_updated as the freshness indicator.
- `get_profile`: Get Alex Polonsky's curated public professional profile, including selected experience, demonstrated capabilities, journalism background, public projects, and future professional directions. This is selected evidence, not a complete CV. When summarizing examples, preserve their ownership qualifier exactly: led, owned_key_aspects, or contributed. Do not infer stronger ownership. If a list mixes things Alex built with work he contributed to or helped bring to market, frame it as built or contributed to, not built. Keep the action verbs and limits from contribution; do not reduce a contribution to an artifact name. Separate demonstrated experience from future directions. Use get_availability for current opportunity status.
