MCP Server

MSPortfolio — MCP-Native Engineering Portfolio

io.github.ManSio/msp-portfolio
Developer Tools Knowledge & Documentation Public & reachable MCP 2025-11-25

What this MCP does

Exposes an engineer's portfolio, projects, commits, articles, principles, experiments, issues, and architecture simulations, with tools for verifying related claims and repositories.

analyze_stack
Compare the owner's stack against a job's required skills. Returns per-skill match with evidence and coverage.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['required_skills'], 'properties': {'required_skills': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Skills the job requires.'}}, 'additionalProperties': {}}
get_antipatterns
Get the owner's antipattern museum — real engineering mistakes with why they were bad, how they were fixed, and the lesson. Read-only, closed world.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': {}}
get_articles
Get recent Dev.to articles with reading time, tags and links.
Read only Open world
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': {}}
get_commit_history
Get recent commit history across the owner's public repos. Reads the deployed snapshot and reports its `fetchedAt` and `ageMinutes`, so 'how current is this?' is answered by the payload instead of by trusting this description. Use it to answer 'what has he been building lately' or 'show the hardest bugs he has fixed'.
Read only Open world
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': {}}
get_diary
Get the owner's engineering diary — incidents, root causes, fixes and guards, each tagged with a pattern (NEW vs recurring). Use it to answer 'what broke and how did you fix it' or 'show your hardest debugging session'. Read-only, closed world.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': {}}
get_engineering_principles
Get engineering principles with real examples and A/B-style counterfactuals.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': {}}
get_experiments
Get the owner's engineering experiments — hypothesis, command, raw result and verdict (confirmed/refuted/partial) for each. Use it to answer 'what did you measure' or 'show me an experiment you ran'. Includes negative results (approaches that failed). Read-only, closed world.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': {}}
get_issue_detail
Get the full detail of a single known issue by its ID (e.g. 'KI-109'). Drills into one open problem: status, temperature, owner, linked source and the raw problem statement. Returns a clear not-found with the available IDs if the ID does not match. Read-only, closed world.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The issue ID, e.g. 'KI-109' (case-insensitive)."}}, 'additionalProperties': {}}
get_known_issues
Get the owner's known-issues board — open debt with status, temperature (stable/watching) and deadlines. Use it to answer 'what's still broken' or 'what are you working on'. Read-only, closed world.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': {}}
get_profile
Get the owner's professional profile summary, plus nextSteps — concrete ways to continue (contact channels, GitHub, MCP connect). Use it as the first tool in an interview.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': {}}
get_projects
Get portfolio projects with stack, highlights, and decision logs. Optional filter by stack tag.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'filter': {'enum': ['all', 'python', 'typescript', 'mcp', 'aws', 'ai'], 'type': 'string', 'description': 'Filter projects by stack tag.'}}, 'additionalProperties': {}}
get_timeline
Get the engineering decision timeline.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': {}}
search_projects
Free-text search across portfolio projects — name, tagline, description, stack and decision-log rationale. Returns matched projects with a score and the fields that matched. Use when a fixed stack-tag filter is too narrow (e.g. 'RAG', 'latency', 'Zed'). Read-only, closed world.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': "Search terms, e.g. 'RAG' or 'latency Zed'."}}, 'additionalProperties': {}}
simulate_architecture
Simulate how a project's architecture behaves under a scenario (load spike, node loss, cache cold, LLM saturation). Returns latency percentiles per load and bottleneck analysis.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['project_id', 'scenario'], 'properties': {'scenario': {'enum': ['load_spike', 'node_loss', 'cache_cold', 'llm_saturation'], 'type': 'string', 'description': 'Scenario to apply.'}, 'project_id': {'enum': ['mscodebase-intelligence', 'gemma_agent', 'msp-portfolio'], 'type': 'string', 'description': 'Project to simulate.'}}, 'additionalProperties': {}}
verify_article
Verify an article against the primary source (Dev.to): does the owner have a published article matching the query? Fetches the live Dev.to API for the owner's articles and returns the real title/date/reactions/url when found — or an honest 'not found'. Use it to ground claims like 'he wrote about agent memory' in the platform's data instead of the portfolio's own words. Read-only, open world (network fetch).
Read only Open world
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Article title fragment or keyword, e.g. "agent memory" or an exact title.'}}, 'additionalProperties': {}}
verify_claim
Ground a claim about the owner against the portfolio's data (profile, projects, principles, timeline, antipatterns, experiments, diary, known issues). Deterministic: returns the evidence records that support the claim (with source paths) and a supported verdict. Use it before asserting a fact about the owner, or to check what an answer was based on.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['claim'], 'properties': {'claim': {'type': 'string', 'description': 'The claim to verify, e.g. "built an MCP server with LanceDB hybrid search".'}}, 'additionalProperties': {}}
verify_package
Verify an npm package against the primary source (registry.npmjs.org): does it exist, latest version, publish date, description, license, maintainers — and is the owner among them? Use it to ground claims like 'he published an npm package' in the registry's data instead of the portfolio's. Honest 'not found' when the package does not exist. Read-only, open world (network fetch).
Read only Open world
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['package'], 'properties': {'package': {'type': 'string', 'description': 'npm package name, e.g. "msp-portfolio" (lowercase).'}}, 'additionalProperties': {}}
verify_repo
Verify a GitHub repository against the primary source: fetches the actual repo metadata (exists, language, description, topics, stars, last push) from the GitHub API and cross-checks it with the portfolio's project record when the repo is one of the owner's projects (language/stack agreement). With readme:true it also returns the actual README text, so claims about what the project does can be checked against the repository's own words. Use it to ground claims like 'the repo is Python' or 'he maintains mscodebase-intelligence' with live data instead of trusting the claim. Read-only, open world (network fetch).
Read only Open world
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['repo'], 'properties': {'repo': {'type': 'string', 'description': 'Repository name, e.g. "mscodebase-intelligence" (owner defaults to ManSio) or full "owner/name" or a github.com URL.'}, 'readme': {'type': 'boolean', 'description': "Also fetch the repository README (first ~1200 chars) for claim checks against the project's own description."}}, 'additionalProperties': {}}
Changed
get_commit_history
Oct. 1, 2026, 2:46 a.m.
Added
verify_package
Sept. 17, 2026, 12:43 p.m.
Added
verify_article
Sept. 17, 2026, 12:43 p.m.
Added
verify_repo
Sept. 17, 2026, 12:43 p.m.
Added
verify_claim
Sept. 17, 2026, 12:43 p.m.
Added
get_issue_detail
Sept. 17, 2026, 12:43 p.m.
Added
get_known_issues
Sept. 17, 2026, 12:43 p.m.
Added
get_diary
Sept. 17, 2026, 12:43 p.m.
Added
get_experiments
Sept. 17, 2026, 12:43 p.m.
Added
simulate_architecture
Sept. 17, 2026, 12:43 p.m.
Added
analyze_stack
Sept. 17, 2026, 12:43 p.m.
Added
get_antipatterns
Sept. 17, 2026, 12:43 p.m.
Added
get_commit_history
Sept. 17, 2026, 12:43 p.m.
Added
get_articles
Sept. 17, 2026, 12:43 p.m.
Added
get_timeline
Sept. 17, 2026, 12:43 p.m.
Added
get_engineering_principles
Sept. 17, 2026, 12:43 p.m.
Added
search_projects
Sept. 17, 2026, 12:43 p.m.
Added
get_projects
Sept. 17, 2026, 12:43 p.m.
Added
get_profile
Sept. 17, 2026, 12:43 p.m.