MCP server exposing the portfolio of Sofia Ferro, a software engineer and creative technologist based in Buenos Aires, Argentina. Provides access to projects, resume, manifesto, and contact functionality. Content is bilingual (Spanish and English).
Sofia Ferro's portfolio MCP server demonstrates solid fundamentals with well-named tools following verb_noun conventions (get_resume, list_projects, get_project, get_manifesto, contact). All tools have substantive descriptions (130 - 280 chars, well within the 10 - 1024 baseline). Input schemas are explicit with Zod validation and descriptions present. However, output schemas are not formally documented, responses are returned as text JSON without explicit schema declarations in tool registration. Error handling exists for the contact tool (rate limiting) but lacks recovery guidance for edge cases (e.g., email service failures). Tool composition is clean: single-responsibility tools with good chaining (list_projects → get_project via slug). The contact tool properly declares itself as WRITE-risk, though permission checks and audit trail patterns are minimal. Descriptions appropriately reference canonical URLs and dependency hints ('Use list_projects first to discover valid slugs'), following mxe:natural-identifiers guidance by accepting human-friendly locales.
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 [email protected] directly instead.
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 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.
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 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.
Output schemas not formally documented. Tools return JSON via textResult() but no explicit schema declarations in tool registration. Clients cannot predict response structure without calling the tool.
Error handling lacks recovery guidance. Rate-limited contact tool returns 'Rate-limited' but does not suggest 'email [email protected] directly' or provide fallback instructions in the error response itself, only in the description.
No permission gates or audit logging. The contact tool (a WRITE operation sending email) lacks user/agent identification, permission checks, or structured audit trail for compliance.
Locale parameter in get_resume is accepted but ignored. Description states 'currently ignored', confusing to LLMs. Either support the parameter or remove it; ambiguity causes unnecessary confusion.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
list_projects does not declare pagination or result limits. No mention of max items returned or whether results are capped. Returns all published projects, risk of context window exhaustion if portfolio grows large.