Markus Tenghamn
Blog posts, work experience, projects and contact details for Markus Tenghamn, as MCP tools.
Should I use this
Quality & Safety
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": {
"site": {
"url": "https://markustenghamn.com/mcp"
}
}
}Remote endpoints
https://markustenghamn.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
🟢get_contact
Get contact details for Markus Tenghamn.
Input Schema
{
"type": "object"
}Output Schema
{
"type": "object",
"properties": {
"email": {
"type": "string"
},
"github": {
"type": "string"
},
"linkedin": {
"type": "string"
},
"website": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"email",
"github",
"linkedin",
"website",
"note"
],
"additionalProperties": false
}🟢get_experience
Get Markus Tenghamn's full work history: structured jobs plus the canonical markdown resume.
Input Schema
{
"type": "object"
}Output Schema
{
"type": "object",
"properties": {
"jobs": {
"type": [
"null",
"array"
],
"items": {
"type": "object",
"properties": {
"company": {
"type": "string"
},
"role": {
"type": "string"
},
"dates": {
"type": "string"
},
"location": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": [
"company",
"role",
"dates",
"location",
"description"
],
"additionalProperties": false
}
},
"markdown": {
"type": "string",
"description": "the canonical markdown resume"
}
},
"required": [
"jobs",
"markdown"
],
"additionalProperties": false
}🟡get_post(slug)
Get the full markdown of a blog post by slug.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "slug of the post, as returned by list_posts"
}
},
"required": [
"slug"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"date": {
"type": "string"
},
"url": {
"type": "string"
},
"markdown": {
"type": "string"
}
},
"required": [
"title",
"date",
"url",
"markdown"
],
"additionalProperties": false
}🟢get_projects
Get a curated list of Markus Tenghamn's projects.
Input Schema
{
"type": "object"
}Output Schema
{
"type": "object",
"properties": {
"projects": {
"type": [
"null",
"array"
],
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"name",
"description",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"projects"
],
"additionalProperties": false
}🟢list_posts
List all published blog posts on markustenghamn.com, newest first.
Input Schema
{
"type": "object"
}Output Schema
{
"type": "object",
"properties": {
"posts": {
"type": [
"null",
"array"
],
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"date": {
"type": "string",
"description": "publication date, YYYY-MM-DD"
},
"read_minutes": {
"type": "integer"
},
"excerpt": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"slug",
"title",
"date",
"read_minutes",
"excerpt",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"posts"
],
"additionalProperties": false
}Community
Evidence