Skip to main content
Glama

Server Details

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

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

TDQS

A4.3/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: contact for messaging, get_manifesto for the manifesto, get_project for a single project, get_resume for the resume, and list_projects for browsing projects. There is no overlap or ambiguity about which tool to use.

Naming Consistency4/5

The naming is mostly consistent with a get_* pattern for fetching single items and list_projects for enumeration, plus one bare-verb contact for an action. Minor deviation from a uniform verb_noun pattern, but all names are lowercase with underscores and readable.

Tool Count5/5

Five tools is well-scoped for a personal portfolio server. Each tool addresses a core need: viewing projects, project details, resume, manifesto, and initiating contact. No excess or missing redundancy.

Completeness5/5

The portfolio surface is complete for its domain: browsing and retrieving projects, viewing the resume, reading the manifesto, and making contact. There are no obvious dead ends or required operations the agent cannot perform.

Available Tools

5 tools
contactContact SofiaAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the person (or agent + principal) reaching out.
messageYesThe message for Sofia (max 2000 characters).
purposeNoWhy you are reaching out: "intro_call", "collab" or "other".other
contact_infoYesHow Sofia can reply: an email address or similar.

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the delivery mechanism (email to inbox), a notable behavior (rate-limited), and a fallback path. It does not detail side effects beyond sending or what the response contains, but for a simple contact tool this is reasonable behavioral context.

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?

Three sentences with no filler. The action and recipient are stated first, followed by use cases, required content, and a fallback. Every sentence earns its place and the structure is easy for an agent to parse quickly.

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?

For a low-complexity tool with a fully described schema and no output schema, the description covers purpose, usage guidelines, behavioral constraints, and required message content. Nothing essential is missing for an agent to use this tool correctly.

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?

Schema description coverage is 100% and each parameter already has a clear description. The tool description reinforces the need to include the sender name and reply info, but it does not add new semantic details beyond the schema. Baseline 3 is appropriate.

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 states a specific action ('Send a message to Sofia Ferro') with a clear delivery method ('delivered to her inbox by email') and names concrete use cases. This fully distinguishes it from the sibling read-only tools (get_manifesto, get_project, etc.).

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

Usage Guidelines5/5

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

The description explicitly explains when to use the tool ('propose an intro call, a collaboration, or anything else') and provides an alternative fallback if rate-limited ('email svf.inbox@gmail.com directly instead'). It also states required message content ('who is reaching out and how Sofia can reply'), giving the agent actionable usage criteria.

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

get_manifestoGet manifestoAInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoContent language: "es" (Spanish, default) or "en" (English).es

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of explaining behavior. It does disclose the return contents (title, summary, full markdown text), but it does not explicitly state that the operation is read-only, mention any access considerations, or describe response formatting beyond the content types.

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 two sentences with no wasted words. It front-loads the resource and content, states return values, and closes with a useful external reference. Every sentence earns its place.

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

Completeness4/5

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

For a simple retrieval tool with one optional schema-documented parameter and no output schema, the description adequately covers the return values and content focus. A slightly higher bar could have been met by explicitly confirming read-only behavior, but nothing essential is missing for an agent to invoke it correctly.

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?

Schema description coverage is 100%, so the locale parameter is fully documented in the schema itself. The tool description adds no parameter-level meaning, but the schema already handles that responsibility, warranting the baseline score.

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 clearly identifies the resource (Sofia Ferro's manifesto), its subject matter, and exactly what it returns (title, summary, full markdown text). This is a specific verb+resource statement that naturally distinguishes it from siblings like get_resume or list_projects.

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 intended use is implied by the name and content, but there is no explicit statement about when to choose this tool over alternatives. The note about following ongoing thinking on X provides an external alternative, but it does not address sibling tools or selection criteria.

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

get_projectGet projectAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesProject slug, e.g. "pit0nisa" (see list_projects).
localeNoContent language: "es" (Spanish, default) or "en" (English).es

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It is transparent about what is returned (metadata fields, title, summary, markdown body) and implies a read-only fetch without side effects. It does not explicitly state read-only or address error cases (e.g., invalid slug), but for a simple getter, the description provides sufficient transparency about the operation's nature and output.

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 two sentences with zero filler. The core purpose is front-loaded, and the usage guideline is given immediately after. Every word earns its place, and the structure is ideal for quick scanning by an agent.

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?

For a tool with only two parameters and no output schema, the description is complete. It tells the agent what the tool returns (the full project contents) and how to obtain a valid slug (via list_projects). The sibling set is clear, and the description covers all essential information needed to call the tool correctly. No additional context is required.

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 schema has 100% coverage, so both parameters (slug and locale) are already well-documented. The description adds minimal new parameter meaning beyond the schema: it repeats the instruction to see list_projects for slug discovery (which the schema already includes) and doesn't elaborate on locale. Since the schema does the heavy lifting, the baseline is 3; the description provides little additional value on parameter semantics.

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 clearly states a specific verb and resource: 'Get one of Sofia Ferro's projects in full' and enumerates the returned content (metadata, title, summary, markdown body). It distinguishes itself from siblings like list_projects (which lists projects) and get_manifesto/get_resume (which fetch other resources). An agent can immediately understand what this tool does and why it differs.

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

Usage Guidelines5/5

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

The description explicitly instructs to 'Use list_projects first to discover valid slugs', providing a clear prerequisite and routing the agent to the correct sibling tool. This leaves no ambiguity about when to call this tool versus list_projects. It also implies this is the tool for fetching a single full project after listing, which is exactly the intended usage.

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

get_resumeGet resumeAInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoContent language: "es" (Spanish, default) or "en" (English).es

TDQS

A4.5/5.0
Behavior4/5

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

There are no annotations, so the description carries the transparency burden. It usefully discloses that the locale parameter is currently ignored and that the resume is English-only, preventing an agent from expecting localized output. It also gives the canonical URL as the authoritative source, which is helpful context for a read-only retrieval tool.

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 two sentences with no redundancy. It front-loads the core purpose and output format, then adds the locale caveat and canonical URL, all of which are directly useful to an agent.

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?

For a one-parameter, no-output-schema tool, the description is complete. It names the resource, specifies the format and main sections, explains the ignored locale, and provides a canonical URL. Nothing essential is missing for an agent to invoke it correctly.

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

Parameters4/5

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

The schema already fully documents the single locale parameter with an enum, default, and description, so the baseline is 3. The description adds important semantic value by stating that the locale parameter is ignored in practice, which changes the effective behavior and prevents incorrect assumptions based on the schema.

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 clearly states the tool returns Sofia Ferro's full resume as a JSON Resume v1.0.0 document, listing the major sections (basics, skills, projects). The word 'full' separates it from sibling tools like get_project and list_projects, which target more granular resume data.

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

Usage Guidelines4/5

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

The description makes it clear this tool is for the complete resume document, which implies it is the right choice when the agent needs overall resume data rather than a single project or contact detail. It does not explicitly name alternatives or state when not to use it, but the context is strong enough for disambiguation.

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

list_projectsList projectsAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoContent language: "es" (Spanish, default) or "en" (English).es
categoryNoFilter by category. One of: literatura-expandida, bots, iot, hardware, creative-coding, instalacion.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does well: it states only published projects are returned, ordering is newest first, category filtering is optional, and the return payload is described. It does not go into pagination, access requirements, or error behavior, but the core behavior of this read-only list is clear.

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?

Three short sentences pack purpose, scope, return shape, ordering, filtering, and the onward path to get_project with no filler. The most important information is front-loaded.

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?

For a list tool with only two simple parameters and no output schema, the description is complete: it explains what is returned, the order, the optional filter, and the next step for details. All invocation-relevant context is covered.

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?

Schema description coverage is 100% and both parameters already have clear enum-based descriptions with defaults. The description adds only 'Optionally filter by category,' which restates the schema rather than adding new parameter semantics, so the baseline score of 3 is appropriate.

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 opens with the specific verb 'List' and a clear resource: Sofia Ferro's published projects, then enumerates the covered categories and the exact fields returned. It also names get_project as the sibling covering the next level of detail, so an agent can distinguish this tool from the other project-related tool.

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

Usage Guidelines4/5

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

It gives an explicit alternative condition: use get_project with a slug when the full write-up is needed, implying list_projects is for overviews and discovery. It does not mention when not to use contact, get_manifesto, or get_resume, but those are clearly different resources.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedcontact
    • First observedget_manifesto
    • First observedget_project
    • First observedget_resume
    • First observedlist_projects

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP-compatible AI clients to query structured portfolio data such as experience, projects, skills, contact info, and blog posts without scraping HTML.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Exposes personal portfolio data as tools for Claude to answer questions about the developer, including profile, skills, experience, projects, and contact information.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources