Markus Tenghamn
Server Details
Blog posts, work experience, projects and contact details for Markus Tenghamn, as MCP tools.
- Status
- Healthy
- Uptime
- 100.0% over 49 days
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool targets a distinct type of information about Markus Tenghamn: contact details, experience, blog post, projects, and post list. There is no overlap or ambiguity between them.
Four tools use consistent 'get_' prefix, but 'list_posts' uses 'list_' instead. While both are clear, the inconsistency breaks the otherwise uniform pattern.
Five tools is well-scoped for a personal portfolio server. Each tool provides a meaningful piece of information without being too few or excessive.
The tools cover the main areas: contact, work history, blog, and projects. Minor gaps exist (e.g., no tool to retrieve a single project or an individual job entry), but the grouped returns are sufficient for typical use.
Available Tools
5 toolsget_contactBInspect
Get contact details for Markus Tenghamn.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| Yes | ||
| github | Yes | |
| website | Yes | |
| Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral traits. It only states 'Get contact details' without any indication of side effects, permissions, rate limits, or return format. This is insufficient for a tool that presumably retrieves data.
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, clear sentence with no unnecessary words. It is front-loaded and efficient.
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 (no parameters, output schema exists), the description is minimally adequate. However, it does not hint at the output structure or content, which could be improved.
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 has zero parameters and 100% coverage, so the baseline is 3. The description adds no parameter-specific information, but the hard-coded value 'Markus Tenghamn' implicitly acts as a fixed parameter, which is acceptable.
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 action ('Get') and the resource ('contact details for Markus Tenghamn'). It distinguishes from sibling tools (get_experience, get_post, etc.) by specifying a different resource type. However, it is very specific to one individual, which might limit understanding of a broader use case.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_experienceAInspect
Get Markus Tenghamn's full work history: structured jobs plus the canonical markdown resume.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| jobs | Yes | |
| markdown | Yes | the canonical markdown resume |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full transparency burden. It states the output content but does not disclose behavioral traits such as authentication needs, error handling, or whether it is read-only.
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, front-loaded sentence that concisely conveys purpose and output without extra words. Every part 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?
For a simple, parameterless tool with an output schema, the description fully covers what the tool does (returns work history with jobs and resume). No additional context is needed.
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 has zero parameters, and schema description coverage is 100%. The description adds no parameter info because none is needed; this is optimal for a parameterless 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 verb 'Get' and the specific resource 'Markus Tenghamn's full work history', and specifies the output includes structured jobs and a markdown resume, distinguishing it from sibling tools like get_contact or get_post.
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 no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It does not mention when not to use it or compare with other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_postAInspect
Get the full markdown of a blog post by slug.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | slug of the post, as returned by list_posts |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| date | Yes | |
| title | Yes | |
| markdown | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description is the sole source. It states the tool returns markdown, which implies a read operation, but lacks details on error handling, permissions, or side effects.
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, front-loaded sentence with no redundancy, efficiently conveying the purpose.
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?
With an output schema present and a simple one-parameter interface, the description fully informs the agent of what the tool does and how to use it.
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 a clear description of the slug parameter. The description adds no new meaning beyond what the schema already provides, maintaining the baseline.
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 verb 'Get' and the resource 'full markdown of a blog post', and specifies the identifier 'by slug', distinguishing it from siblings like list_posts which returns summaries.
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?
It explains to use a slug from list_posts, implying a prerequisite workflow. While it doesn't explicitly exclude other scenarios, the context is clear for a single-purpose tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectsAInspect
Get a curated list of Markus Tenghamn's projects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| projects | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It only states 'Get', implying read-only, but lacks details on safety, idempotency, or authentication requirements.
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 with no unnecessary words, front-loaded with the action and resource. 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?
Given no parameters and presence of an output schema, the description is mostly complete for a simple list retrieval. The term 'curated' could be elaborated, but it's not essential.
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?
No parameters exist, so schema coverage is 100%. The description adds context ('curated list') beyond the empty schema, meeting the baseline of 4 for zero-parameter tools.
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 uses a specific verb 'Get' and resource 'curated list of Markus Tenghamn's projects', clearly distinguishing it from siblings like get_contact, get_experience, etc.
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?
No explicit when-to-use or when-not-to-use guidance is provided; however, the purpose is clear enough for an agent to infer usage for retrieving projects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_postsAInspect
List all published blog posts on markustenghamn.com, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| posts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description alone must disclose behavioral traits. It states the tool lists all published posts in newest-first order, which is transparent about scope and ordering. However, it does not mention pagination, rate limits, or other important behaviors. Since an output schema exists, the return format is covered separately.
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 with no wasted words. Information is front-loaded and efficiently conveyed.
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 low complexity (0 parameters, simple listing), the description is complete. The presence of an output schema covers return value details, so no further description is needed.
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?
There are zero parameters, so the baseline is 4. The description correctly adds no parameter information since none are needed. Schema description coverage is 100% (empty schema), so no gaps exist.
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 'List all published blog posts on markustenghamn.com, newest first' uses a specific verb ('List') and resource ('published blog posts'), and adds scope (site and ordering). It clearly distinguishes from sibling tools like 'get_post' (single post retrieval) and others.
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 when to use this tool (listing all posts) but does not explicitly state when not to use it or provide alternatives. The context from sibling tool names clarifies differentiation, so the guidance is clear enough for an agent.
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.
5 tool updates
- First observed
get_contact - First observed
get_experience - First observed
get_post - First observed
get_projects - First observed
list_posts
Related MCP Connectors
Marian Matinca's portfolio as MCP tools: projects, blog, profile, results. Read-only, RO+EN.
Public portfolio MCP for resume, services, availability, project evidence, and introductions.
Ryan Lindsey's professional corpus, exposed as MCP tools.
Read-only MCP server for Mark Siazon's professional profile: projects, FAQ, proof, availability.
Related MCP Servers
- FlicenseAqualityCmaintenanceEnables MCP clients to search, list, and read full articles from Rasmus Olsson's blog, with optional tag filtering and pagination.312 npm-
- FlicenseAqualityBmaintenanceEnables answering questions about Marcus Oates, a Sydney-based senior software engineer, by exposing structured data about his profile, projects, experience, skills, and interests via MCP tools, resources, and prompts.9-
- FlicenseNot gradedqualityDmaintenanceProvides structured tool access to Mario's portfolio data including skills, projects, experience, and services via 7 MCP tools.-
- FlicenseNot gradedqualityNot gradedmaintenanceProvides access to a curated database of over 1,500 MCP tools with quality scores. Enables searching, browsing trending tools by category, discovering random tools, and retrieving detailed information about specific MCP tools.-
Glama MCP Gateway
Add one secure layer between your agents and this server.