# Shlok Bam's portfolio

> Ask about Shlok Bam, AI engineer: projects, experience, skills, patents. Live, read-only.

- name: io.github.shlokbam/portfolio
- version: 1.3.0
- connection class: R0 (autonomous)
- trust: 97/100
- quality: 85/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.shlokbam%2Fportfolio
- tools: https://api.protogrid.dev/v1/servers/io.github.shlokbam%2Fportfolio/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "portfolio": {
      "type": "http",
      "url": "https://shlokbam.in/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 99
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-98% +updated-2d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 11 of 11 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,759 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: 50 (weight 15)

- warn `stability.changes`: 15 tool changes in 30 days
- fail `stability.rug_pull`: 9 tools kept their name but changed most of their description in 30 days; review before trusting them
- pass `stability.new_links`: no tool change named a new site

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 11, about 2,759 tokens to load them all
- tool set hash: 3fb3acba5d57afc0c9b9d87336efbf9c
- tools last changed: 2026-11-12T17:55:31.627Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.shlokbam/portfolio.svg)](https://protogrid.dev/servers/io.github.shlokbam/portfolio)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-12 `search_portfolio` changed (description)
  - before: Search everything in Shlok's portfolio (projects, experience, leadership, education, patents, awards, certifications, community work, blog posts and LinkedIn series posts) for a word or topic. Returns up to 8 matches, best first, each with its type, title, a snippet and a link; no match returns an empty results list. Use it for specific questions the other tools don't answer directly, such as where he used a technology or whether he has done something. For a known project use get_project; for the full list of projects, list_projects; for jobs, get_experience; for patents and awards, get_achievements.
  - after: Search everything in Shlok's portfolio (projects, experience, leadership, education, patents, awards, certifications, community work, blog posts, LinkedIn series posts and open-source pull requests) for a word or topic. Returns up to 8 matches, best first, each with its type, title, a snippet and a link; no match returns an empty results list. Use it for specific questions the other tools don't answer directly, such as where he used a technology or whether he has done something. For a known project use get_project; for the full list of projects, list_projects; for jobs, get_experience; for patents and awards, get_achievements.
- 2026-11-12 `get_open_source` added
  - Shlok's open-source contributions: his pull requests to other people's GitHub repositories, live from GitHub (cached up to 3 hours). Returns totals (merged, in review, closed, projects) and each repository (name, stars, description, link) with its pull requests (title, state, number, dates, link), merged work first. List submissions (awesome lists, portfolio directories) are left out. If GitHub can't be reached, the copy saved at the site's last build is returned with "source": "snapshot". Takes an optional status filter; no match returns empty lists. For his own projects use list_projects; for his own recent commits, get_activity.
- 2026-11-05 `search_portfolio` changed (description)
  - before: Search everything in Shlok's portfolio (projects, experience, leadership, education, patents, awards, certifications, community work and blog posts) for a word or topic. Returns up to 8 matches, best first, each with its type, title, a snippet and a link; no match returns an empty results list. Use it for specific questions the other tools don't answer directly, such as where he used a technology or whether he has done something. For a known project use get_project; for the full list of projects, list_projects; for jobs, get_experience; for patents and awards, get_achievements.
  - after: Search everything in Shlok's portfolio (projects, experience, leadership, education, patents, awards, certifications, community work, blog posts and LinkedIn series posts) for a word or topic. Returns up to 8 matches, best first, each with its type, title, a snippet and a link; no match returns an empty results list. Use it for specific questions the other tools don't answer directly, such as where he used a technology or whether he has done something. For a known project use get_project; for the full list of projects, list_projects; for jobs, get_experience; for patents and awards, get_achievements.
- 2026-11-05 `get_writing` changed (description)
  - before: Shlok's technical blog posts (his journal), newest first: title, date, topic tag, summary and link. The topic filter is case-insensitive and matches part of a post's topic tag, title or summary ("agent" finds posts tagged Agents); leave it empty for every post. No match returns count 0 and an empty list. For the projects the posts describe, use get_project.
  - after: Shlok's writing, newest first: his technical blog posts (journal: title, date, topic tag, summary, link) and his LinkedIn series "Not What You Think" (short posts on common misconceptions about LLMs, each with part, arc, date, topic, title, summary and link, plus the series' arcs and their status). The topic filter is case-insensitive and matches part of a post's topic, title or summary in both ("agent" finds posts tagged Agents, "token" finds the series part on tokens); leave it empty for everything. No match returns count 0 and empty lists. For the projects the posts describe, use get_project.
- 2026-11-03 `search` removed
  - Search everything about Shlok (projects, experience, leadership, patents, awards, certifications, community, writing) for a word or topic. Returns the best matches with links.
- 2026-11-03 `search_portfolio` added
  - Search everything in Shlok's portfolio (projects, experience, leadership, education, patents, awards, certifications, community work and blog posts) for a word or topic. Returns up to 8 matches, best first, each with its type, title, a snippet and a link; no match returns an empty results list. Use it for specific questions the other tools don't answer directly, such as where he used a technology or whether he has done something. For a known project use get_project; for the full list of projects, list_projects; for jobs, get_experience; for patents and awards, get_achievements.
- 2026-11-03 `get_activity` changed (title, description, annotations) **meaning changed**
  - before: What Shlok has been building lately: his recent commits to public GitHub repositories (live).
  - after: What Shlok has been building lately, live from GitHub: commit counts for the last 7 and 30 days, how many repositories he touched this week, and his 12 most recent commits (repository, message, date, link). Only public repositories; scheduled and automated commits (DailyDiff's daily publish, merges) are left out. Cached up to 30 minutes. If GitHub can't be reached it returns {"error", "github"} instead. Takes no input. For what he is focused on this month, see get_profile (rightNow).
- 2026-11-03 `get_resume` changed (title, description, annotations) **meaning changed**
  - before: Links to Shlok's résumé (PDF download and web version) with a short summary of what it covers.
  - after: Links to Shlok's résumé: the PDF download and a web version with the same content, plus his title, summary, current role and education. Takes no input. The résumé itself is in those documents; for the same facts as structured data use get_experience, get_skills and list_projects.
- 2026-11-03 `get_writing` changed (title, description, inputSchema, annotations) **meaning changed**
  - before: Shlok's technical blog posts (his journal), newest first, with links.
  - after: Shlok's technical blog posts (his journal), newest first: title, date, topic tag, summary and link. The topic filter is case-insensitive and matches part of a post's topic tag, title or summary ("agent" finds posts tagged Agents); leave it empty for every post. No match returns count 0 and an empty list. For the projects the posts describe, use get_project.
- 2026-11-03 `get_skills` changed (title, description, annotations) **meaning changed**
  - before: Shlok's skills by group (Generative AI, LLM evaluation, ML, languages, web, databases, cloud & DevOps, core CS), each rated core, strong, working or exploring, plus which projects use each skill.
  - after: Shlok's skills in eight groups (Generative AI, LLM evaluation & safety, machine learning, languages, web, databases, cloud & DevOps, core CS), strongest first within each group. Each skill has a level (core, strong, working or exploring) and usedIn: up to six of his projects that list it in their stack or mention it in their write-up (matched by name, so treat it as a pointer, not a complete list). Takes no input. For proof of a skill, open those projects with get_project.

Full history: https://api.protogrid.dev/v1/servers/io.github.shlokbam%2Fportfolio/changes

## Remotes

- https://shlokbam.in/mcp (streamable-http, auth none, reachable true, uptime30d 0.9767442)

## Packages

_none_

## Tools (11)

- `get_achievements`: Shlok's recognition and proof of work: patents (three, as co-inventor: title, status, office,
        reference number, summary and a link to the document), awards and hackathon results (organiser, date,
        result, certificate links), certifications (issuer, date, certificate link) and community work
        (mentoring, volunteering, event anchoring). Returns every part, or only the one named in kind, plus a
        link to the page on the portfolio that shows them. For jobs and club roles use get_experience.
- `get_activity`: What Shlok has been building lately, live from GitHub: commit counts for the last 7 and 30 days,
        how many repositories he touched this week, and his 12 most recent commits (repository, message, date,
        link). Only public repositories; scheduled and automated commits (DailyDiff's daily publish, merges)
        are left out. Cached up to 30 minutes. If GitHub can't be reached it returns {"error", "github"}
        instead. Takes no input. For what he is focused on this month, see get_profile (rightNow).
- `get_experience`: Shlok's work experience (internships), leadership roles (student clubs) and education, each list
        newest first. Every entry has role, organisation, when, type, what he did (points), the organisation's
        website and links to certificates where they exist. Takes no input. Pay and confidential client details
        are not included. For patents, awards and certifications use get_achievements; for projects,
        list_projects.
- `get_open_source`: Shlok's open-source contributions: his pull requests to other people's GitHub repositories, live from
        GitHub (cached up to 3 hours). Returns totals (merged, in review, closed, projects) and each repository
        (name, stars, description, link) with its pull requests (title, state, number, dates, link), merged work
        first. List submissions (awesome lists, portfolio directories) are left out. If GitHub can't be reached,
        the copy saved at the site's last build is returned with "source": "snapshot". Takes an optional status
        filter; no match returns empty lists. For his own projects use list_projects; for his own recent commits,
        get_activity.
- `get_profile`: Overview of Shlok Bam: summary, current role, education, location and time zone, what he is open to
        (roles, relocation), story, headline numbers, what he is focused on this month, contact details (email,
        phone, contact form) and links (résumé, LinkedIn, GitHub, LeetCode, journal). Takes no input.
        Call it first for any general question, or for contact details. For his work use list_projects and
        get_project; for jobs and clubs, get_experience; for anything specific, search_portfolio.
        Data comes from the live site, refreshed about every 10 minutes. Pay is not included.
- `get_project`: Full details of one of Shlok's projects: what it does and how it is built, results and metrics,
        highlights, tech stack, rank, live GitHub details, and links (live demo, code, blog post, portfolio page,
        and the case study for DailyDiff). The name is matched case-insensitively, ignoring punctuation: first
        exactly against the project name, slug or GitHub repository name, then as part of a name ("workforce"
        finds the Enterprise Workforce Training Platform). If no featured project matches, his public GitHub
        repositories are tried and GitHub's details are returned with a note. If nothing matches, the result is
        {"error", "projects": [every project name]} so you can retry with a valid name.
        Use list_projects first when you don't know the name.
- `get_resume`: Links to Shlok's résumé: the PDF download and a web version with the same content, plus his title,
        summary, current role and education. Takes no input. The résumé itself is in those documents; for the
        same facts as structured data use get_experience, get_skills and list_projects.
- `get_skills`: Shlok's skills in eight groups (Generative AI, LLM evaluation & safety, machine learning, languages,
        web, databases, cloud & DevOps, core CS), strongest first within each group. Each skill has a level
        (core, strong, working or exploring) and usedIn: up to six of his projects that list it in their stack
        or mention it in their write-up (matched by name, so treat it as a pointer, not a complete list).
        Takes no input. For proof of a skill, open those projects with get_project.
- `get_writing`: Shlok's writing, newest first: his technical blog posts (journal: title, date, topic tag, summary,
        link) and his LinkedIn series "Not What You Think" (short posts on common misconceptions about LLMs,
        each with part, arc, date, topic, title, summary and link, plus the series' arcs and their status).
        The topic filter is case-insensitive and matches part of a post's topic, title or summary in both
        ("agent" finds posts tagged Agents, "token" finds the series part on tokens); leave it empty for
        everything. No match returns count 0 and empty lists. For the projects the posts describe, use
        get_project.
- `list_projects`: List Shlok's projects in order of importance (the first five are flagships). Each entry has name,
        slug, field, one-line summary, tech stack, live demo and code links, its page on the portfolio, and live
        GitHub details (stars, language, topics, last update) when the code is in a public repository.
        Filters combine (all must match); a filter that matches nothing returns count 0, not an error.
        GitHub details are cached up to 6 hours and are missing for private repositories or when GitHub can't
        be reached. Use get_project for one project's full write-up and metrics, and search_portfolio for
        topics that are not projects (a skill used at work, an award).
- `search_portfolio`: Search everything in Shlok's portfolio (projects, experience, leadership, education, patents,
        awards, certifications, community work, blog posts, LinkedIn series posts and open-source pull requests) for a word or topic. Returns up to 8 matches,
        best first, each with its type, title, a snippet and a link; no match returns an empty results list.
        Use it for specific questions the other tools don't answer directly, such as where he used a
        technology or whether he has done something. For a known project use get_project; for the full list of
        projects, list_projects; for jobs, get_experience; for patents and awards, get_achievements.
