portfolio-mcp
Server Details
Marian Matinca's portfolio as MCP tools: projects, blog, profile, results. Read-only, RO+EN.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 6 tools
Each tool has a clear and distinct purpose: listing vs. getting details for blog posts and projects, retrieving the profile, and performing a cross-domain search. No two tools overlap in functionality.
All tool names follow a consistent portfolio_<verb>_<noun> pattern (e.g., portfolio_get_blog_post, portfolio_list_projects), using standard verbs and plural/singular nouns appropriately.
With 6 tools covering portfolio, blog posts, projects, and search, the set is well-scoped for a personal portfolio site—neither too few nor excessive.
The tool surface provides complete read-only access to all major parts of the portfolio: profile, blog posts (list+detail), projects (list+detail), and a full-text search. No obvious gaps exist for the intended use case.
Available Tools
6 toolsportfolio_get_blog_postOne full blog articleARead-onlyIdempotentInspect
The full content (markdown) of one article by slug.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Content language (all content exists in both en and ro) | en |
| slug | Yes | Slug from portfolio_list_blog_posts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive. The description adds that content is markdown, providing useful behavioral detail beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single focused sentence with no unnecessary words. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately covers the tool's purpose and parameters given high schema coverage and simplicity. Could mention return format explicitly but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear docs for both parameters. Description does not add additional meaning beyond what schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns the full markdown content of one article by slug, distinguishing it from sibling tools like portfolio_list_blog_posts which list articles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied that slug comes from portfolio_list_blog_posts but no explicit when-to-use or when-not-to-use guidance. While sibling names suggest alternatives, the description lacks direct usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_get_profileProfessional profile: experience, certifications, resultsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Content language (all content exists in both en and ro) | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the data matches mmatinca.eu, but does not disclose additional behavioral traits like rate limits or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core purpose without any fluff or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter, the description conveys the data returned and its equivalence to the external website. Minor gap: no explicit mention of the return format, but it is sufficient given the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the 'lang' parameter as 'Content language (all content exists in both en and ro)'. The description adds no further parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves the professional profile of Marian Matinca: career history, certifications, and measurable results. It distinguishes from sibling tools focusing on blog posts, projects, or search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for accessing profile data, but does not explicitly provide guidance on when to use this tool versus alternatives, nor list any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_get_projectFull details of one projectARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Id from portfolio_list_projects, e.g. "digital-compass" | |
| lang | No | Content language (all content exists in both en and ro) | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description does not add any new behavioral information beyond what annotations provide, such as authentication needs or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence packs the purpose and key details, front-loaded with 'One project by id'. No unnecessary words, earning its place in the tool definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description sufficiently outlines the return content (problem, outcome, long description, tech details). It nearly fully describes what the agent can expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds practical meaning beyond the schema by explaining that the id should come from the list endpoint and confirming that the lang parameter controls bilingual content. This helps the agent understand how to correctly invoke the tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'Full details of one project' and enumerates the specific fields included (problem, outcome, long description, tech details). This distinguishes it from sibling list tools that return summaries and other get tools for different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies that the id parameter comes from 'portfolio_list_projects', guiding the agent to use the list tool first to obtain the id. It implies the tool is for detailed retrieval of a single project, providing clear context for when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_list_blog_postsList blog articlesARead-onlyIdempotentInspect
Articles published on the mmatinca.eu blog (enterprise AI adoption, automation, lessons from practice), newest first: slug, title, excerpt, date.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Content language (all content exists in both en and ro) | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds context about sort order (newest first) and returned fields, which goes beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the purpose and includes essential details without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description explicitly lists return fields, provides content context, and is complete for a list tool with one optional parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter lang fully described. The description does not add any information about the parameter, but the schema is sufficient, earning a baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists blog articles from a specific blog (mmatinca.eu), with context on content theme (enterprise AI adoption, automation, lessons from practice) and output fields (slug, title, excerpt, date). It distinguishes from sibling tools like portfolio_get_blog_post and portfolio_list_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (newest first) but does not explicitly state when to use vs alternatives or when not to use. Sibling names provide some differentiation, but the description lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_list_projectsList portfolio projectsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Content language (all content exists in both en and ro) | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true, which the description does not contradict. The description adds behavioral context by specifying the return fields and the author/owner of the data, providing useful information beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two sentences with no wasted words. The most important information (what the tool returns) is front-loaded, and the follow-up suggestion is placed at the end. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description explicitly lists all fields returned (id, title, category, one-line result, tags, live site), which is complete for a listing tool. The single optional parameter is fully described in the schema, and the description provides context about the data source (Marian Matinca) and a clear next-step suggestion. No gaps are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single parameter (lang) fully with a description and enum values (ro, en). The description does not repeat or add any parameter semantics beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all projects by Marian Matinca with specific fields (id, title, category, one-line result, tags, live site) and contrasts with portfolio_get_project for full details. This specific verb+resource+scope makes its purpose unmistakable and distinguishes it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by naming the author and location, and explicitly suggests calling portfolio_get_project for full details. It implies this tool is for summaries while the other is for details, but does not explicitly state when to avoid using this tool or describe alternative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_searchSearch the whole portfolioARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Content language (all content exists in both en and ro) | en |
| limit | No | Maximum number of results | |
| query | Yes | Search terms, e.g. "AI compliance projects" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only safety. Description adds useful behavioral context: returns typed hits with snippet and URL. No contradictions; it enhances understanding beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first defines purpose and scope, second explains output and follow-up. No redundant information; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with few parameters and no output schema, the description fully covers what it searches, what it returns, and how to get details. Complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description doesn't need to add much. It implicitly relates to parameters but doesn't elaborate beyond what's in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's a full-text search across multiple content types (projects, blog articles, etc.), and distinguishes itself from sibling tools by being a single entry point for search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states to follow up with portfolio_get_project or portfolio_get_blog_post for full content, providing clear guidance on when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- Changed
portfolio_get_blog_post2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Limba conținutului (tot conținutul există în ro și en)"New value: +"Content language (all content exists in both en and ro)" - changed
Input schema / properties / slug / descriptionPrevious value: -"Slug-ul din portfolio_list_blog_posts"New value: +"Slug from portfolio_list_blog_posts"
- Changed
portfolio_get_profile1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Limba conținutului (tot conținutul există în ro și en)"New value: +"Content language (all content exists in both en and ro)"
- Changed
portfolio_get_project2 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"Id-ul din portfolio_list_projects, ex. \"digital-compass\""New value: +"Id from portfolio_list_projects, e.g. \"digital-compass\"" - changed
Input schema / properties / lang / descriptionPrevious value: -"Limba conținutului (tot conținutul există în ro și en)"New value: +"Content language (all content exists in both en and ro)"
- Changed
portfolio_list_blog_posts1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Limba conținutului (tot conținutul există în ro și en)"New value: +"Content language (all content exists in both en and ro)"
- Changed
portfolio_list_projects1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Limba conținutului (tot conținutul există în ro și en)"New value: +"Content language (all content exists in both en and ro)"
- Added
portfolio_search
5 tool updates
- First observed
portfolio_get_blog_post - First observed
portfolio_get_profile - First observed
portfolio_get_project - First observed
portfolio_list_blog_posts - First observed
portfolio_list_projects
Related MCP Connectors
Blog posts, work experience, projects and contact details for Markus Tenghamn, as MCP tools.
Read-only MCP server for Mark Siazon's professional profile: projects, FAQ, proof, availability.
MCP server for meseriasi.ro, a Romanian homeowner-tradesperson marketplace.
Public portfolio MCP for resume, services, availability, project evidence, and introductions.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides structured tool access to Mario's portfolio data including skills, projects, experience, and services via 7 MCP tools.-
- FlicenseNot gradedqualityCmaintenanceAn MCP server for Microweber sites that wraps the existing HTTP API to manage content (pages, posts, products) and media without installing any plugin. It uses admin credentials and handles session + CSRF authentication automatically.-
- AlicenseNot gradedqualityAmaintenanceA portfolio MCP server demonstrating four tools (web search, database query, file reading, directory listing) with read-only SQL, filesystem sandbox, and both stdio and HTTP transports.MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides unified access to one's professional profile, including experience, publications, career timeline, and social media presence.1Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.