trippyogi-mcp

trippyogi-mcp

An MCP server that exposes the author's resume as structured data and fact-checks natural-language claims against public receipts, returning verified, partially verified, or not verifiable verdicts.

Category
Visit Server

README

trippyogi-mcp

An MCP server that lets you fact-check my resume.

Most portfolios ask a reviewer to trust a set of claims. This one exposes the underlying work as structured data and gives every claim one of three answers: verified, partially_verified, or not_verifiable.

not_verifiable is intentional. A private production metric or old employer project does not become publicly proven because it appears on a resume.

Tools

Tool Returns
get_projects Shipped or publicly inspectable work with source, package, live, and receipt URLs where available.
get_experience Roles, dates, and what was built, aligned to the public resume.
get_availability Current role targets, work modes, and public contact paths.
verify_claim A verdict, supported and unsupported portions, estimate marker, and receipt URLs for a natural-language claim.

The server is public, stateless, unauthenticated, and read-only. It applies a best-effort in-process rate limit per serverless isolate (not a shared global limiter). Prefer an edge/WAF limit in front of /mcp for production abuse control. It records the tool name and timestamp for each call and never logs tool inputs.

verify_claim matches only normalized canonical claim text or explicit aliases, and fails closed when the query adds unsupported terms or conflicting numbers.

Run it

Requires Node 22 or newer.

npm ci
npm run check
npm test
npm run generate:site
npm run dev

The endpoint is http://localhost:3000/mcp; health is at /health.

Test with the MCP Inspector:

npx @modelcontextprotocol/inspector

Select Streamable HTTP and connect to http://localhost:3000/mcp.

Example

Input:

{
  "claim": "Legendari had 673 Kickstarter backers"
}

Output:

{
  "verdict": "verified",
  "claim": "Legendari had 673 Kickstarter backers",
  "matchedClaim": "Legendari was backed by 673 Kickstarter backers who pledged $190,292 against a $125,000 goal.",
  "supported": "Kickstarter publicly reports the backer count, pledged amount, and campaign goal.",
  "unsupported": null,
  "estimate": false,
  "evidence": [
    {
      "label": "Legendari Kickstarter",
      "url": "https://www.kickstarter.com/projects/metatravelers/legendari-action-figures",
      "kind": "independent"
    }
  ]
}

Content model

  • content/profile.json is the shared source for projects, experience, availability, the Markdown surfaces, and JSON-LD.
  • content/claims.json maps resume claims to receipts and caveats.
  • npm run generate:site produces site/llms.txt, site/resume.md, site/projects.md, and site/person.jsonld from the same source.

The natural-language matcher is deterministic. It does not use an LLM, browse at request time, or invent evidence. Numeric conflicts fail closed: asking it to verify 9,000 units will not match a receipt for 7,777.

Deploy

Vercel

  1. Import this repository as a new Vercel project (framework: Other / null).
  2. Set ALLOWED_HOSTS to the deployment hostname plus trippyogi.com and www.trippyogi.com, comma-separated.
  3. Disable Vercel Authentication on the project — this endpoint is intentionally public.
  4. Deploy. Production alias: https://trippyogi-mcp.vercel.app. /mcp and /health are serverless; generated Markdown surfaces are static.
  5. In the existing trippyogi.com Vercel project, add an external rewrite from /mcp to the MCP project's /mcp URL. This keeps the public connector URL on the portfolio domain.

Example rewrite in the portfolio project's vercel.json:

{
  "rewrites": [
    {
      "source": "/mcp",
      "destination": "https://trippyogi-mcp.vercel.app/mcp"
    }
  ]
}

Copy the generated files into the portfolio site's public directory so they resolve as /llms.txt, /resume.md, and /projects.md. Add the contents of site/person.jsonld to the homepage in a <script type="application/ld+json"> element.

Container

docker build -t trippyogi-mcp .
docker run --rm -p 3000:3000 \
  -e TRUST_PROXY=1 \
  -e ALLOWED_HOSTS=trippyogi.com,localhost \
  trippyogi-mcp

Put the service behind the same reverse proxy as the portfolio and route /mcp to port 3000. Apply a second edge rate limit there.

Fork it for your own resume

  1. Replace the person, project, experience, and availability records in content/profile.json.
  2. Replace every record in content/claims.json; do not carry over another person's evidence.
  3. Update allowed hosts, package metadata, and JSON-LD.
  4. Run npm run check and inspect all generated files before deploying.

If a claim has no public receipt, keep it and mark it not_verifiable, or remove it. Do not turn a self-authored resume into its own verification source.

Security and privacy

There are no write tools, user records, analytics payloads, or contact-discovery features. See SECURITY.md for the reporting path and design constraints.

MIT licensed. The personal data and claims are examples, not an invitation to impersonate their subject.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured