Harshith Nayaka L portfolio docs

io.github.HarshithNayakaLPublished by GitHub account HarshithNayakaLv1.1.0Updated Oct 30, 2026

Read-only MCP server over the developer docs for the portfolio's JSON API, MCP, A2A and NLWeb.

The publisher's own server: PortfolioFit

VerifiedStreamable HTTPWeb executableKnowledge & MemoryDeveloper Tools

Overview

AI-generated overview

Read-only MCP server exposing the developer documentation for a portfolio site's JSON API, MCP, A2A and NLWeb endpoints.

What you can do
  • List every developer document with its path, title and coverage, optionally filtered by topic
  • Read a single document in full as markdown, or YAML for the OpenAPI description
  • Search documentation sections by question and get the best-matching sections with source URLs
When to use it
Useful when an assistant needs to look up how the portfolio's JSON API, MCP, A2A or NLWeb interfaces work, or to find the right documentation section for a question before answering.
Requirements
Remote streamable HTTP endpoint; no authentication, environment variables or headers declared.
Before you install
Read-only documentation access only; the server notes that portfolio content itself lives on a separate MCP endpoint. Content is a third party's site documentation, so treat retrieved text as reference material rather than instructions.

Installation

In SourceWeft

  1. Open Harshith Nayaka L portfolio docs in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.HarshithNayakaL%2Fportfolio-docs/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "harshith-nayaka-l-portfolio-docs": {
      "type": "http",
      "url": "https://harshith-nayaka-l-portfolio.vercel.app/mcp/docs"
    }
  }
}

README

Harshith Nayaka L — portfolio site

Source for harshith-nayaka-l-portfolio.vercel.app, the portfolio of Harshith Nayaka L, an AI Engineer in Bengaluru who builds AI agents, RAG pipelines and LLM applications. It holds a case study for each project, guides drawn from them, and his profile, experience and published research. One scrolling page plus case-study, guide and legal routes.

The site is also built to be read by machines: every page is prerendered to static HTML, has a markdown twin, and is mirrored by a read-only JSON API.

The visual design and the rules that keep it consistent are in AGENTS.md; the previous design is archived on the classic-design branch.

Stack

  • Vite + React 18 + TypeScript
  • Tailwind CSS v4 (@tailwindcss/vite); all theme tokens live in src/index.css
  • React Router for case-study and legal routes
  • Self-hosted fonts via @fontsource: Inter Variable (body and labels), Instrument Serif (display headings), Poppins (hero headline) — served from public/fonts, preloaded in index.html
  • Phosphor icons
  • @bible-strong/avatar-core for the mascot's geometry
  • @vercel/edge for the content-negotiation middleware

No animation library. Scroll reveals and the page transition are CSS keyframes and IntersectionObserver; pulling in a runtime for that put the whole library in the initial bundle.

Develop

bash
npm installnpm run dev      # http://localhost:5173npm run build    # type-check, client build, SSR build, prerender, APInpm run preview  # serve the production buildnpm run lint     # type-check only

npm run build is four stages, and the later ones are the ones that matter: vite build emits the client bundle, a second vite build --ssr emits dist-ssr/entry-server.js, scripts/prerender.mjs walks every route and writes real HTML plus each page's markdown twin, and scripts/build-api.mjs emits the static JSON API. A plain vite build (npm run build:client) skips all of that and produces an empty-shell SPA.

Checks

bash
npm run verify:negotiation   # 25 client shapes get the right representationnpm run verify:onee          # every mascot animation is reachablenpm run verify:llms <origin> # needs a Vercel deployment, not npm run preview

verify:llms takes an origin as its first argument. Give it a Vercel deployment: vite preview runs neither the middleware nor the rewrites, and falls back to the root page for every nested route, so it fails pages that are fine in production.

Deploy

Vercel. Build command npm run build, output dist.

  • middleware.ts runs at the edge and does the content negotiation, the API route table, and JSON errors for anything under /api.
  • vercel.json carries the rewrites and headers.
  • public/_redirects is there for Netlify; nothing reads it on Vercel.

Content

Everything real lives in src/data/:

  • projects.ts — Selected Work cards, plus email / GitHub / LinkedIn.
  • caseStudies.ts — full case studies (problem, build, pipeline diagram, judgment calls, results, tech). The architecture diagrams are data-driven: edit a pipeline array and the node graph re-renders.
  • skills.ts — the Agent Skills section.
  • seo.ts — per-route titles, descriptions and JSON-LD.
  • onee.avatar.json — the mascot's definition.

Adding or removing a project means touching projects.ts, caseStudies.ts, and the slug sets in middleware.ts. scripts/build-api.mjs fails the build if those drift apart, so a mismatch is caught rather than shipped.

The nav bar's glass

src/components/GlassFilter.tsx holds a CONFIG block using the parameter names from liquid-glass.ybouane.com — blurAmount, refraction, chromAberration, edgeHighlight, fresnel, zRadius, and so on. Tune the bar by changing those numbers; the filter graph is built from them.

That library itself can't run here: it sizes a WebGL canvas to everything it refracts, and this page is 12,473px tall on desktop and 19,236px on a phone, which needs a canvas past Chromium's 16,384px limit. So the effect is rebuilt as one SVG filter referenced from backdrop-filter. WebKit and Gecko don't resolve filter references there and fall back to the plain blur declared alongside it — same frost, no refraction at the rim.

Open

  • Custom domain. Canonical URLs and og:url currently point at the vercel.app subdomain.
  • Confirm the glass on iOS Safari. The fallback is declared first so it should hold, but it has not been checked on a real WebKit engine.
  • The prerendered HTML is ~110KB, of which about 40% is Tailwind class attributes (47,748 bytes across 642 elements) and 11% JSON-LD.

Source: README.md at commit 6276036

Tools

3

list_docs

List docs

Every developer document on the site: its path, title and what it covers, optionally narrowed to a topic. Read one with get_doc.

Parametersquery

get_doc

Get doc

One developer document in full, as markdown (the OpenAPI description is YAML).

Parameterspathrequired

search_docs

Search docs

The documentation sections that best match a question, each with its source URL, best first.

Parameterslimitqueryrequired

Version history

1
  1. v1.1.0LatestOct 30, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Portfolio integrations