accueil / serveurs / Recherche & Web / ca.nikolajewdesign/portfolio-mcp
ca.nikolajewdesign/portfolio-mcp
serveur MCP (Model Context Protocol) · nikolajewdesign-portfolio-mcp 2.0.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que ca.nikolajewdesign/portfolio-mcp est sûr ?
Au dernier audit MCP Hub, le serveur MCP « ca.nikolajewdesign/portfolio-mcp » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 26 outils
- fetch_curated_page_context≈ 1798 tokens
Fetches and extracts approved first-party or official-domain HTML pages for page-level evidence. Supply query, urls, or the legacy singular url; when query is omitted, a bounded query is derived from the approved URL path. Changelog rows support bounded rowLimit/rowOffset pagination with truthful matching counts.
Paramètres, retour & exemple (7)
Paramètresurl· string · optionnelurls· array · optionnelquery· string · optionneldomains· array · optionnelmaxPages· integer · optionnelrowLimit· integer · optionnelrowOffset· integer · optionnel
Exemple d'appel{"name": "fetch_curated_page_context", "arguments": {"url": "texte", "urls": [], "query": "texte", "domains": [], "maxPages": 1, "rowLimit": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "pages": [], "query": "texte", "hasMore": true, "rowOffset": 1, "totalRows": 1, "totalPages": 1, "generatedAt": "texte", "rejectedUrls": [], "returnedRows": 1, "aiDisclosures": [], "totalSnippets": 1}} - get_about_resume≈ 659 tokens
Returns a condensed profile card payload with current role, concise skills, profile image, email CTA, and proactive next-tool prompts.
Paramètres, retour & exemple (3)
ParamètresincludeVisual· boolean · optionnelconciseSkillLimit· integer · optionnelincludeAvailability· boolean · optionnel
Exemple d'appel{"name": "get_about_resume", "arguments": {"includeVisual": true, "conciseSkillLimit": 1, "includeAvailability": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"source": {}, "profile": {}, "generatedAt": "texte", "proactiveActions": []}} - get_agent_capabilities≈ 711 tokens
Returns grounded Portfolio Agent and Portfolio MCP explainer content, supported capability lanes, limits, and canonical links.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_agent_capabilities", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"links": {}, "entity": {}, "limits": {}, "source": {}, "generatedAt": "texte", "positioning": {}, "coreCapabilities": [], "safetyBoundaries": []}} - get_brand_kit≈ 506 tokens
Returns the first-party Nikolajew Design brand identity, original logos, colors, Stolzl typography, icons, and preview imagery for style decks, webpages, cards & documents. Includes one ZIP download for the complete brand asset set. Optionally filter to identity, logo, color, typography, icons, or imagery.
Paramètres, retour & exemple (1)
Paramètressection· string · optionnel · identity | logo | color | typography | icons | imagery
Exemple d'appel{"name": "get_brand_kit", "arguments": {"section": "identity"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"title": "texte", "source": {}, "section": "texte", "summary": "texte", "download": "texte", "sections": {}, "citationUrl": "texte", "generatedAt": "texte", "provenanceNote": "texte"}} - get_career_certificates≈ 604 tokens
Returns documented certificates with issuer, credential ID, verification URL, and skills focus.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnelquery· string · optionnelincludeSkills· boolean · optionnel
Exemple d'appel{"name": "get_career_certificates", "arguments": {"limit": 1, "query": "texte", "includeSkills": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"query": "texte", "source": {}, "generatedAt": "texte", "certificates": [], "totalCertificates": 1, "returnedCertificates": 1}} - get_career_education≈ 562 tokens
Returns education history entries with program focus and source links.
Paramètres, retour & exemple (2)
Paramètreslimit· integer · optionnelquery· string · optionnel
Exemple d'appel{"name": "get_career_education", "arguments": {"limit": 1, "query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"query": "texte", "source": {}, "education": [], "generatedAt": "texte", "totalEducationEntries": 1, "returnedEducationEntries": 1}} - get_career_role_comparison≈ 652 tokens
Returns a side-by-side comparison between two career roles/companies using first-party employment history.
Paramètres, retour & exemple (6)
Paramètresquery· string · optionnelleftRole· string · optionnelrightRole· string · optionneldetailLevel· string · optionnel · summary | detailed | fullleftCompany· string · optionnelrightCompany· string · optionnel
Exemple d'appel{"name": "get_career_role_comparison", "arguments": {"query": "texte", "leftRole": "texte", "rightRole": "texte", "detailLevel": "summary", "leftCompany": "texte", "rightCompany": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"left": "texte", "query": "texte", "right": "texte", "source": {}, "generatedAt": "texte", "sharedThemes": [], "recommendation": "texte", "comparisonTitle": "texte", "differentiators": [], "comparisonStatus": "complete"}} - get_career_role_detail≈ 616 tokens
Returns a single role/company experience match with richer factual context for deep-dive career questions.
Paramètres, retour & exemple (4)
Paramètresrole· string · optionnelquery· string · optionnelcompany· string · optionneldetailLevel· string · optionnel · summary | detailed | full
Exemple d'appel{"name": "get_career_role_detail", "arguments": {"role": "texte", "query": "texte", "company": "texte", "detailLevel": "summary"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"match": "texte", "source": {}, "candidates": [], "generatedAt": "texte", "clarification": "texte"}} - get_career_timeline≈ 1039 tokens
Returns citation-backed career milestones with optional query/company filtering.
Paramètres, retour & exemple (4)
Paramètreslimit· integer · optionnelquery· string · optionnelcompany· string · optionnelincludeEducation· boolean · optionnel
Exemple d'appel{"name": "get_career_timeline", "arguments": {"limit": 1, "query": "texte", "company": "texte", "includeEducation": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"source": {}, "filters": {}, "education": [], "milestones": [], "generatedAt": "texte", "totalMatches": 1, "totalMilestones": 1}} - get_changelog≈ 691 tokens
Returns the first-party Portfolio release history from its complete generated release dataset. Supports exact/latest/all versions, bounded version/date/category/query filters, and stable cursor pagination for complete notes.
Paramètres, retour & exemple (9)
Paramètreslimit· integer · optionnelquery· string · optionnelcursor· string · optionneltoDate· string · optionnelversion· string · optionnelcategory· string · optionnel · Added | Changed | Fixed | NotesfromDate· string · optionnelafterVersion· string · optionnelthroughVersion· string · optionnel
Exemple d'appel{"name": "get_changelog", "arguments": {"limit": 1, "query": "texte", "cursor": "texte", "toDate": "texte", "version": "texte", "category": "Added"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"error": {}, "found": true, "source": "texte", "filters": "texte", "hasMore": true, "complete": true, "releases": [], "nextCursor": "texte", "totalReleases": 1, "returnedReleases": 1, "latestReleasedVersion": "texte", "totalMatchingReleases": 1}} - get_contact_email≈ 522 tokens
Returns canonical contact information. External tools cannot submit messages; visitors use their email app or the website form.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_contact_email", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"email": "texte", "label": "texte", "source": {}, "iconKey": "texte", "fullName": "texte", "mailtoUrl": "texte", "confidence": 1, "citationUrl": "texte", "generatedAt": "texte", "canSendEmail": true, "responseTime": "texte", "preferredMethod": "texte"}} - get_download_assets≈ 492 tokens
Returns direct resume/CV and mini-portfolio download links plus online profile links for action-ready cards.
Paramètres, retour & exemple (1)
ParamètresincludeWebLinks· boolean · optionnel
Exemple d'appel{"name": "get_download_assets", "arguments": {"includeWebLinks": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "assets": [], "source": {}, "primaryCta": "texte", "generatedAt": "texte"}} - get_download_documents≈ 546 tokens
Returns first-party resume and mini-portfolio download documents with grounded file metadata for supportive cards.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_download_documents", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "source": {}, "documents": [], "generatedAt": "texte"}} - get_first_party_context≈ 1539 tokens
Returns cited first-party sections spanning profile, work, projects, Ephemera, Portfolio MCP setup, and contact guidance.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnelquery· string · optionneltopics· array · optionnel
Exemple d'appel{"name": "get_first_party_context", "arguments": {"limit": 1, "query": "texte", "topics": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"source": {}, "filters": {}, "sources": [], "sections": [], "generatedAt": "texte", "totalMatches": 1, "aiDisclosures": [], "totalSections": 1, "aiDisclosureProvenance": {}}} - get_music≈ 7879 tokens
Returns a bounded first-party music catalog, a selected album or track, or one cryptographically selected random track. Catalog summaries include track durations and every shortest-track tie; album and track selections include direct audio URLs, production details, explicit AI-involvement declarations, microsite links, and citations.
Paramètres, retour & exemple (4)
ParamètresalbumId· string · optionneltrackId· string · optionnelrandomTrack· boolean · optionnelexcludeTrackIds· array · optionnel
Exemple d'appel{"name": "get_music", "arguments": {"albumId": "texte", "trackId": "texte", "randomTrack": true, "excludeTrackIds": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"album": "texte", "scope": "catalog", "track": "texte", "albums": [], "source": {}, "albumCount": 1, "trackCount": 1, "generatedAt": "texte", "shortestTracks": []}} - get_privacy_policy≈ 746 tokens
Returns grounded privacy and data-handling answers for nikolajewdesign.ca, Portfolio Agent, WebMCP, and agent integrations: what is collected, how prompts are processed, where data is sent, providers, security, retention, and rights. Always includes a direct link to the full privacy policy.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnelquery· string · optionneltopics· array · optionnel
Exemple d'appel{"name": "get_privacy_policy", "arguments": {"limit": 1, "query": "texte", "topics": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"source": {}, "filters": {}, "sources": [], "operator": "texte", "sections": [], "policyUrl": "texte", "generatedAt": "texte", "totalMatches": 1, "effectiveDate": "texte", "totalSections": 1}} - get_professional_profile≈ 1541 tokens
Returns deterministic profile, contact, process, personality, and capability-limit signals with provenance.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_professional_profile", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"profile": {}, "sources": {}, "generatedAt": "texte", "capabilities": {}}} - get_profile_fact_pack≈ 712 tokens
Returns grounded long-tail profile facts (qualifications, strengths, availability, AI usage, web capability, and context) from first-party resume data.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnelquery· string · optionneltopics· array · optionnel
Exemple d'appel{"name": "get_profile_fact_pack", "arguments": {"limit": 1, "query": "texte", "topics": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"facts": [], "query": "texte", "person": {}, "source": {}, "topics": [], "totalFacts": 1, "generatedAt": "texte", "returnedFacts": 1}} - get_project_artwork_gallery≈ 2584 tokens
Returns thumbnail plus 3-5 ranked artwork images for one matching project by default, or up to three projects when limitProjects is supplied, with accurate alt descriptions and citation links.
Paramètres, retour & exemple (6)
Paramètresquery· string · optionnelaiFilter· string · optionnel · any | none | assisted | partially_generated | fully_generated | hasAi | unknowncategory· string · optionnelprojectSlug· string · optionnellimitProjects· integer · optionnelimagesPerProject· integer · optionnel
Exemple d'appel{"name": "get_project_artwork_gallery", "arguments": {"query": "texte", "aiFilter": "any", "category": "texte", "projectSlug": "texte", "limitProjects": 1, "imagesPerProject": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"query": "texte", "source": {}, "matches": [], "generatedAt": "texte", "clarification": "texte", "queryConflict": "texte"}} - get_project_by_slug≈ 6245 tokens
Returns full structured portfolio project data by slug with citation/provenance, ranked visual highlights, and optional case-study signals.
Paramètres, retour & exemple (5)
Paramètresslug· string · requisfocusQuery· string · optionnelmaxVisuals· integer · optionnelincludeVisuals· boolean · optionnelincludeCaseSignals· boolean · optionnel
Exemple d'appel{"name": "get_project_by_slug", "arguments": {"slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"slug": "texte", "found": true, "source": {}, "project": "texte", "generatedAt": "texte", "suggestions": [], "visualSource": "texte", "includeVisuals": true, "caseSignalsSource": "texte", "includeCaseSignals": true}} - get_project_followup_detail≈ 5778 tokens
Returns one best-matched project deep-dive for follow-up questions with focus highlights, visual context, and citation-backed signals.
Paramètres, retour & exemple (6)
Paramètresfocus· string · optionnel · overview | design | process | impact | outcomes | toolingquery· string · optionnelprojectSlug· string · optionnelincludeVisuals· boolean · optionnelincludeCaseSignals· boolean · optionnelmaxVisualsPerResult· integer · optionnel
Exemple d'appel{"name": "get_project_followup_detail", "arguments": {"focus": "overview", "query": "texte", "projectSlug": "texte", "includeVisuals": true, "includeCaseSignals": true, "maxVisualsPerResult": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"focus": "texte", "match": "texte", "query": "texte", "source": {}, "generatedAt": "texte", "projectSlug": "texte", "suggestions": [], "totalMatches": 1, "visualSource": "texte", "clarification": "texte", "queryConflict": "texte", "caseSignalsSource": "texte"}} - get_social_profiles≈ 526 tokens
Returns social profile links with handles, icon keys, and citation-backed metadata.
Paramètres, retour & exemple (3)
Paramètresnetworks· array · optionnelincludeEmail· boolean · optionnelincludeProfileReferences· boolean · optionnel
Exemple d'appel{"name": "get_social_profiles", "arguments": {"networks": [], "includeEmail": true, "includeProfileReferences": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"source": {}, "fullName": "texte", "profiles": [], "generatedAt": "texte", "profileCount": 1}} - list_portfolio_projects≈ 5948 tokens
Returns 21 curated portfolio entries: 20 public design case studies plus SAE Engineering, with optional filters, visuals, and randomized discovery. Music is available through get_music.
Paramètres, retour & exemple (11)
Paramètreslimit· integer · optionnelquery· string · optionnelaiFilter· string · optionnel · any | none | assisted | partially_generated | fully_generated | hasAi | unknowncategory· string · optionnelrandomize· boolean · optionnelexcludeSlugs· array · optionnelonPublicGrid· boolean · optionnelincludeSummary· boolean · optionnelincludeVisuals· boolean · optionnelincludeCaseSignals· boolean · optionnelmaxVisualsPerProject· integer · optionnel
Exemple d'appel{"name": "list_portfolio_projects", "arguments": {"limit": 1, "query": "texte", "aiFilter": "any", "category": "texte", "randomize": true, "excludeSlugs": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"source": {}, "filters": {}, "projects": [], "generatedAt": "texte", "totalMatches": 1, "visualSource": "texte", "totalProjects": 1, "remainingMatches": 1, "caseSignalsSource": "texte", "preExclusionMatches": 1}} - search_allowed_external_domains≈ 402 tokens
Searches approved owned or official public domains only when request-scoped external-search support is available. Without that runtime context it returns a truthful, allowlist-filtered zero-result response without making a network request.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnelquery· string · requisdomains· array · optionnel
Exemple d'appel{"name": "search_allowed_external_domains", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "query": "texte", "results": [], "generatedAt": "texte", "totalResults": 1, "allowedDomains": []}} - search_first_party_context≈ 1542 tokens
Searches cited first-party context for career, projects, The Ephemera Digital Collection, donations, Portfolio MCP setup/build details, and contact facts.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnelquery· string · requistopics· array · optionnel
Exemple d'appel{"name": "search_first_party_context", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"source": {}, "filters": {}, "results": [], "sources": [], "generatedAt": "texte", "totalMatches": 1, "aiDisclosures": [], "totalSections": 1, "aiDisclosureProvenance": {}}} - search_project_notes≈ 5212 tokens
Searches project narrative fields and returns ranked excerpts with citation URLs, visual highlights, and optional case-study signals.
Paramètres, retour & exemple (8)
Paramètreslimit· integer · optionnelquery· string · requisaiFilter· string · optionnel · any | none | assisted | partially_generated | fully_generated | hasAi | unknowncategory· string · optionnelexcludeSlugs· array · optionnelincludeVisuals· boolean · optionnelincludeCaseSignals· boolean · optionnelmaxVisualsPerResult· integer · optionnel
Exemple d'appel{"name": "search_project_notes", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"query": "texte", "source": {}, "filters": {}, "results": [], "generatedAt": "texte", "totalMatches": 1, "visualSource": "texte", "includeVisuals": true, "remainingMatches": 1, "caseSignalsSource": "texte", "includeCaseSignals": true, "preExclusionMatches": 1}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».