Don't read my portfolio. Interview it. — Walid Slim's career as MCP tools
Server has 15 well-named tools with consistent verb_noun patterns (get_, list_, ask). All tools have descriptions (avg 95 chars, within 10-1024 range). Input schemas are defined using Zod with types. However, parameter descriptions are sparse or missing entirely, most parameters lack the 'describe()' annotations needed for LLM clarity. Output schemas are not documented. Error handling is minimal (keyword matching in 'ask' tool returns generic fallback). No pagination support despite tools returning potentially large result sets. Tool composition is reasonable but lacks chaining metadata (e.g., list_projects returns IDs but get_project doesn't document what ID format to expect).
Get Walid's bio, location, title, and contact information
Semantic search across all career data. Ask any question about Walid's experience
Side-by-side comparison of two projects by ID
Email, LinkedIn, GitHub, and phone
All quantified impact metrics with sources
Generate an ATS-optimized CV. Optionally target a specific role for tailored content
Specific design decision with trade-offs for a project
Parameter descriptions missing or incomplete. Most parameters (e.g., 'filter' in list_projects, 'topic' in get_evidence, 'skill' in get_skill_depth) lack .describe() annotations. LLMs cannot infer parameter semantics from names alone.
Output schemas not documented. Tools return structured data but no schema is declared for responses. LLMs cannot plan downstream calls or extract fields reliably without knowing response structure.
No pagination support. Tools like list_projects and get_evidence may return large result sets but lack limit/offset or cursor parameters. Large responses waste tokens and risk context window exhaustion.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Query evidence by topic (e.g. 'oauth', 'mcp', 'booking', 'storage')
Jira issue counts grouped by theme (MCP, Booking, Storage, OAuth)
Deep dive on a specific project by ID. Returns architecture, decisions, evidence
Evidence trail for one specific skill
Full skill genome with proficiency levels and evidence for each skill
Language, framework, and tool distribution across all projects
Chronological career timeline with month granularity
List all projects with role, stack, and metrics. Filter by type (company|personal)
Error handling is minimal. The 'ask' tool uses keyword matching with a generic fallback message. No structured error responses, no recovery guidance, no categorization of retryable vs fatal errors.
Tool composition lacks chaining metadata. list_projects returns project IDs but get_project doesn't document the exact ID format or source. compare_projects accepts 'a' and 'b' parameters but doesn't clarify they come from list_projects.