# ar.com.sofiaferro/portfolio

> Sofia Ferro's portfolio: projects, blog posts, JSON Resume and a contact tool (es/en).

- name: ar.com.sofiaferro/portfolio
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 83/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/ar.com.sofiaferro%2Fportfolio
- tools: https://api.protogrid.dev/v1/servers/ar.com.sofiaferro%2Fportfolio/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "portfolio": {
      "type": "http",
      "url": "https://www.sofiaferro.com.ar/api/mcp"
    }
  }
}
```


## Trust

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

## Quality 83/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### 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: 71 (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
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_projects (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_manifesto (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); contact (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 828 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: 5, about 828 tokens to load them all
- tool set hash: e52311077f3ee76ab6ee9339bda0f707
- badge: [![protogrid quality](https://protogrid.dev/badge/ar.com.sofiaferro/portfolio.svg)](https://protogrid.dev/servers/ar.com.sofiaferro/portfolio)
- 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://www.sofiaferro.com.ar/api/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (5)

- `contact`: Send a message to Sofia Ferro (delivered to her inbox by email). Use this to propose an intro call, a collaboration, or anything else on behalf of your user. Always include who is reaching out and how Sofia can reply (email or other contact info). Rate-limited; if unavailable, email svf.inbox@gmail.com directly instead.
- `get_manifesto`: Sofia Ferro's manifesto on programming as embodied practice — error as path, faith in the infinite loop of trying once more. Returns title, summary and the full markdown text. For her ongoing thinking, see X: https://x.com/svfonx
- `get_project`: Get one of Sofia Ferro's projects in full: metadata (category, date, tech, links, images) plus title, summary and the complete markdown body. Use list_projects first to discover valid slugs.
- `get_resume`: Sofia Ferro's full resume as a JSON Resume v1.0.0 document (basics, skills, projects). The resume is maintained in English only, so the locale parameter is currently ignored. Canonical URL: https://www.sofiaferro.com.ar/api/resume.json
- `list_projects`: List Sofia Ferro's published projects (electronic art, expanded literature, bots, IoT, hardware, creative coding, installations). Returns slug, title, summary, category, date, tech stack and links for each project, newest first. Optionally filter by category. Use get_project with a slug for the full write-up.
