Brahim Bousnguar — portfolio
Brahim Bousnguar's portfolio: profile, availability, case studies, notes, CV requests.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"portfolio": {
"url": "https://api.heybrahim.com/mcp"
}
}
}Remote endpoints
https://api.heybrahim.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢get_profile
Brahim's headline, summary, location, languages, certifications (with verification links), skills and links. Start here.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢get_availability
Whether Brahim is open to new roles right now, what kind, from when, and where (dated).
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_items(kind)
List the anonymised client case studies (work), side projects (projects) or technical notes (notes), newest first, with a one-line summary and URL.
Input Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"work",
"projects",
"notes"
],
"description": "work, projects or notes"
}
},
"required": [
"kind"
],
"additionalProperties": false
}🟢get_item(kind, slug, lang)
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.
Input Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"work",
"projects",
"notes"
]
},
"slug": {
"type": "string",
"description": "e.g. api-led-luxury-retail, mulewatch"
},
"lang": {
"type": "string",
"enum": [
"en",
"fr"
],
"default": "en"
}
},
"required": [
"kind",
"slug"
],
"additionalProperties": false
}🟢search(query, limit)
Keyword search across every case study, project and note (e.g. "DataWeave", "CCv2 migration", "MCP"). Returns titles, URLs and a snippet; use get_item for the full text.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 200
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 5
}
},
"required": [
"query"
],
"additionalProperties": false
}⚪request_cv(name, email, company, role, message, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 2,
"maxLength": 80,
"description": "The requester's own name"
},
"email": {
"type": "string",
"maxLength": 160,
"description": "Where Brahim should send the CV"
},
"company": {
"type": "string",
"maxLength": 120
},
"role": {
"type": "string",
"maxLength": 160,
"description": "The role or mission, if any"
},
"message": {
"type": "string",
"maxLength": 900
},
"lang": {
"type": "string",
"enum": [
"en",
"fr"
],
"default": "en"
}
},
"required": [
"name",
"email"
],
"additionalProperties": false
}Community
Evidence