Skip to main content
Glama

Brahim Bousnguar — portfolio

Server Details

Brahim Bousnguar's portfolio: profile, availability, case studies, notes, CV requests.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: profile, availability, listing content, fetching a specific item, keyword search, and CV request. There is no meaningful overlap between browsing (list_items), searching (search), and retrieving full text (get_item).

Naming Consistency4/5

Five of six tools follow a predictable verb_noun or verb pattern (get_availability, get_item, get_profile, list_items, request_cv). The bare 'search' is a minor deviation but remains immediately understandable.

Tool Count5/5

Six tools are well-scoped for a personal portfolio and CV-serving server. Each tool earns its place, with no redundant or trivial entries.

Completeness4/5

The surface covers profile, availability, content listing/retrieval, search, and CV requests, which is nearly full lifecycle for the domain. There is a small gap around explicitly retrieving French-language items, though the description hints they exist and can be fetched.

Available Tools

6 tools
get_availabilityAvailabilityA
Read-onlyIdempotent
Inspect

Whether Brahim is open to new roles right now, what kind, from when, and where (dated).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety and side-effect profile is fully covered. The description adds only that the answer is a dated, person-specific snapshot; it says nothing about freshness, staleness, or response shape.

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?

A single front-loaded sentence with no filler; the qualifying facets are packed in without redundant restatement of the name or title.

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?

With no output schema and no parameters, the description carries only the burden of describing what comes back, and it does that by enumerating the distinct facets. It stops short of noting whether data is dated/historical versus live, which is a minor omission for a read-only lookup.

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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for parameter-free tools applies.

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

Purpose4/5

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

The description names the specific resource — Brahim's current openness to new roles — and lists the returned facets (kind, start date, location), so an agent can tell what it yields. It does not explicitly contrast with get_profile, a likely overlapping sibling, which keeps it from a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisite, and no routing to alternatives such as get_profile or request_cv. The agent must infer the usage context from the tool name alone.

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

get_itemRead a case study, project or noteA
Read-onlyIdempotent
Inspect

Full text (Markdown) of one case study, project or note by its slug, as listed by list_items. Case studies and projects also exist in French.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
langNoen
slugYese.g. api-led-luxury-retail, mulewatch

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds value on top: the return payload is the full Markdown body (not a summary), and there is a locale dimension for work/projects only. It does not discuss missing-item behavior, but with annotations carrying the safety profile this is genuinely additive.

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?

A single sentence that front-loads the return format and resource, then appends the i18n caveat. No filler and nothing redundant.

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?

There is no output schema, and the description correctly fills that gap by naming the response format and content type. All three parameters are accounted for. The only gap is failure behavior for an unknown slug, which is minor for a read tool.

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?

Schema coverage is only 33% (only slug is described), but kind and lang are enums and largely self-documenting. The description adds real semantics beyond the schema: 'Case studies and projects also exist in French' implies that lang=fr applies to work/projects but not to notes, a constraint the enum alone does not convey.

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?

States a specific verb+resource ('Full text (Markdown) of one case study, project or note') and scopes it to a single item by slug. It explicitly names the sibling list_items as the source of slugs, so an agent can distinguish retrieval from listing without opening either schema.

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 phrase 'as listed by list_items' tells the agent the prerequisite and the correct alternative for discovery, which is strong routing guidance. It stops short of explicit when-not conditions (e.g. what to do if the slug is unknown) but the intended flow is clear.

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

get_profileProfileA
Read-onlyIdempotent
Inspect

Brahim's headline, summary, location, languages, certifications (with verification links), skills and links. Start here.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered without description help. The description adds one genuinely useful output detail (certifications include verification links) but says nothing about authorization requirements or how the profile is scoped to a single person.

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

Conciseness4/5

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

Very short and front-loaded with the returned field list, with the routing hint ("Start here") placed at the end. It is written as two sentence fragments rather than prose, which is efficient but slightly telegraphic.

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?

With no output schema and no parameters, the description carries the burden of describing return values and does so reasonably well by listing the main fields. It omits any mention of whose profile is returned when the caller has multiple contexts, and no auth/scope notes, leaving a small gap.

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?

Zero parameters, so there is nothing for the description to disambiguate; baseline is 4. The description correctly implies the call takes no filtering input and returns a fixed profile.

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

Purpose4/5

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

The description enumerates the resource contents (headline, summary, location, languages, certifications, skills, links), so an agent knows this retrieves a personal profile rather than a generic item. It lacks an explicit verb and does no explicit sibling differentiation (get_item/list_items could plausibly return similar field sets), which keeps it from a 5.

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?

"Start here" gives a mild implied entry-point ordering, suggesting this is the first call in a session. However, no alternative tool is named and no condition for preferring this over get_item or search is stated, so usage is only implied.

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

list_itemsList case studies, projects or notesA
Read-onlyIdempotent
Inspect

List the anonymised client case studies (work), side projects (projects) or technical notes (notes), newest first, with a one-line summary and URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYeswork, projects or notes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare the safe read-only, idempotent, non-destructive, closed-world profile, so the bar is lower. The description still adds useful traits: results are ordered newest first, entries are anonymised, and each carries a one-line summary and URL. It does not state any count cap or truncation behavior.

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?

One sentence, front-loaded with the verb and resource set, with the return shape and ordering packed into trailing clauses. No filler.

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?

With no output schema, the description usefully sketches the return shape (summary + URL) and ordering. It omits any note on result limits, pagination, or expected volume, which is a minor gap for a simple enum-filtered listing tool.

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?

Schema coverage is 100%, so the baseline is 3, but the description genuinely enriches the single enum parameter by explaining what each value selects rather than restating 'work, projects or notes'. That added meaning beats the schema's bare enum list.

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

Purpose4/5

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

Names a specific verb (List) and enumerates the three resources it returns, mapping each enum value to its plain-language meaning (work = anonymised client case studies, projects = side projects, notes = technical notes). It implicitly contrasts with the singular get_item sibling, though it never names an alternative outright.

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?

Usage is implied by the enum values themselves: call this to enumerate everything of one content type. There is no explicit statement of when to prefer this over search or get_item, and no exclusions or prerequisites are given.

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

request_cvAsk for Brahim's CVAInspect

File a request for Brahim's full CV, exactly like the form on heybrahim.com/cv.html. Brahim reads every request and sends the CV himself by email, usually the same day; nothing is sent automatically. Only call this when the user explicitly asked for the CV and gave their own name and email. Limited to a few requests per day.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoen
nameYesThe requester's own name
roleNoThe role or mission, if any
emailYesWhere Brahim should send the CV
companyNo
messageNo

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only say it is non-read-only, open-world and non-idempotent; the description adds the crucial behavioral facts an agent cannot infer: nothing is sent automatically, a human (Brahim) reads and replies by email usually same-day, and the tool is rate-limited to a few requests per day.

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?

Four compact sentences, front-loaded with the action, then the human/async consequence, then the gating condition. Every clause carries information an agent would otherwise have to guess.

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 mutation tool with no output schema, the description covers the trigger, the post-call behavior, and rate limits well. The only gap is the undocumented optional fields (lang, company, message), which is a minor omission given they are optional.

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?

With 50% schema coverage, four of six parameters (lang, company, message, role) lack descriptions in either place. The description does add one piece of real meaning beyond the schema — that name and email must be the requester's own, not a third party's — but it does not compensate for the undocumented remaining fields.

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?

States a specific verb and resource ('File a request for Brahim's full CV') and grounds it in a concrete referent (the form at heybrahim.com/cv.html). It is immediately distinguishable from the CRUD-like siblings (get_item, list_items, search), which handle different resources entirely.

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?

Gives an explicit trigger and prerequisite: 'Only call this when the user explicitly asked for the CV and gave their own name and email.' No alternatives are named, but the sibling tools are not substitutes for this action, so the routing guidance is effectively complete.

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. 6 tool updates
    • First observedget_availability
    • First observedget_item
    • First observedget_profile
    • First observedlist_items
    • First observedrequest_cv
    • First observedsearch

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables querying a personal portfolio through natural language, providing profile, skills, projects, services, availability, and contact information via read-only tools.
    7
    267 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants and LLM clients to query a professional CV and portfolio, including work history, technical skills, projects, job compatibility evaluation, education, and contact details.
    MIT
  • 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.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to discover and retrieve professional portfolio information including profile, experience, skills, projects, and contact details through MCP tools.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources