portfolio-mcp
Marian Matinca's portfolio as MCP tools: projects, blog, profile, results. Read-only, RO+EN.
Should I use this
Quality & Safety
Findings (1)
- LOWin portfolio_get_blog_post
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-mcp": {
"url": "https://mmatinca.eu/mcp"
}
}
}Remote endpoints
https://mmatinca.eu/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢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
Evidence