portfolio-mcp

Marian Matinca's portfolio as MCP tools: projects, blog, profile, results. Read-only, RO+EN.

Should I use this

Quality & Safety

A
Description quality
88%
Schema completeness
95%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'portfolio_get_blog_post' description lacks action verbin portfolio_get_blog_post

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~962Tokens (tool definitions)
~953 BTypical response size
Moderate attention impact (0.75% of 128k context)

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-mcp": {
      "url": "https://mmatinca.eu/mcp"
    }
  }
}

Remote endpoints

https://mmatinca.eu/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢portfolio_list_projects(lang)

All projects by Marian Matinca (AI Adoption Lead, Bucharest): id, title, category, one-line result, tags, live site. Call portfolio_get_project with {id} for full details.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "ro",
        "en"
      ],
      "default": "en",
      "description": "Content language (all content exists in both en and ro)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢portfolio_get_project(id, lang)

One project by id: the problem it solves, the outcome, the long description (markdown, with relevant links — live site, GitHub where open source) and the list of technical details.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Id from portfolio_list_projects, e.g. \"digital-compass\""
    },
    "lang": {
      "type": "string",
      "enum": [
        "ro",
        "en"
      ],
      "default": "en",
      "description": "Content language (all content exists in both en and ro)"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢portfolio_list_blog_posts(lang)

Articles published on the mmatinca.eu blog (enterprise AI adoption, automation, lessons from practice), newest first: slug, title, excerpt, date.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "ro",
        "en"
      ],
      "default": "en",
      "description": "Content language (all content exists in both en and ro)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢portfolio_get_blog_post(slug, lang)

The full content (markdown) of one article by slug.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Slug from portfolio_list_blog_posts"
    },
    "lang": {
      "type": "string",
      "enum": [
        "ro",
        "en"
      ],
      "default": "en",
      "description": "Content language (all content exists in both en and ro)"
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢portfolio_get_profile(lang)

Who Marian Matinca is: career history (roles at Weco-Travel Romania), certifications and the measurable results of his projects. Same data as shown on mmatinca.eu.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "ro",
        "en"
      ],
      "default": "en",
      "description": "Content language (all content exists in both en and ro)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢portfolio_search(query, lang, limit)

Single entry point: full-text search across projects, blog articles, experience, certifications and measurable results. Returns typed hits with a snippet and a URL; follow up with portfolio_get_project / portfolio_get_blog_post for full content.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "description": "Search terms, e.g. \"AI compliance projects\""
    },
    "lang": {
      "type": "string",
      "enum": [
        "ro",
        "en"
      ],
      "default": "en",
      "description": "Content language (all content exists in both en and ro)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "default": 5,
      "description": "Maximum number of results"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools