Skip to content

saagarpatel.dev Portfolio

by saagpatel · remote · local (npm) · no sign-in to list tools · v0.1.0 · published by GitHub user saagpatel

Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.

Read only

8 tools: 8 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http portfolio https://mcp.saagarpatel.dev/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

8 tools

Only reads 8Claude Code: allow
  • get_documentReturn the full Markdown of one document by id, e.g.No findings

    Why it is in this group

    • The name "get_document" says "get": a word for reading.
    Description, as the server wrote it
    Return the full Markdown of one document by id, e.g. "writing/the-handoff" or "book/preface". Get ids from search or list_corpus.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • get_operant_resultsReturn the public, sanitized OPERANT results: per-model operator-calibration-score (OCS) profiles, the headline figures, and the calibration-profiles (not a flat leaderboard) frami…No findings

    Why it is in this group

    • The name "get_operant_results" says "get": a word for reading.
    Description, as the server wrote it
    Return the public, sanitized OPERANT results: per-model operator-calibration-score (OCS) profiles, the headline figures, and the calibration-profiles (not a flat leaderboard) framing. Sourced from the published OPERANT mirror. Returns availability=false if no dataset was baked.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • get_profileReturn Saagar Patel's profile: name, one-line summary, site, and the about / now / uses pages.No findings

    Why it is in this group

    • The name "get_profile" says "get": a word for reading.
    Description, as the server wrote it
    Return Saagar Patel's profile: name, one-line summary, site, and the about / now / uses pages. Start here to understand who this is and what they work on.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • get_repo_profileReturn one public-safe repo answering profile by repo_id, including purpose, safe commands, agent surfaces, proof refs, freshness, exclusions, limitations, and integrity metadata.No findings

    Why it is in this group

    • The name "get_repo_profile" says "get": a word for reading.
    Description, as the server wrote it
    Return one public-safe repo answering profile by repo_id, including purpose, safe commands, agent surfaces, proof refs, freshness, exclusions, limitations, and integrity metadata.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • list_corpusList every document with its id, title, type, date, and word count, plus per-type counts.No findings

    Why it is in this group

    • The name "list_corpus" says "list": a word for reading.
    Description, as the server wrote it
    List every document with its id, title, type, date, and word count, plus per-type counts. The table of contents for the whole site. Optionally filter by type.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • list_projectsList the curated, public projects with stack, status, last-active date, and test/CI signals, plus anonymized portfolio-wide aggregates.No findings

    Why it is in this group

    • The name "list_projects" says "list": a word for reading.
    Description, as the server wrote it
    List the curated, public projects with stack, status, last-active date, and test/CI signals, plus anonymized portfolio-wide aggregates. Optionally filter by status.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • list_repo_profilesList public-safe repo answering profiles with repo id, attention state, freshness, and proof counts.No findings

    Why it is in this group

    • The name "list_repo_profiles" says "list": a word for reading.
    Description, as the server wrote it
    List public-safe repo answering profiles with repo id, attention state, freshness, and proof counts. Profiles are static artifacts baked from saagarpatel.dev, not live repo health.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http portfolio https://mcp.saagarpatel.dev/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__portfolio__search",
      "mcp__portfolio__get_document",
      "mcp__portfolio__list_corpus",
      "mcp__portfolio__get_profile",
      "mcp__portfolio__list_projects",
      "mcp__portfolio__list_repo_profiles",
      "mcp__portfolio__get_repo_profile",
      "mcp__portfolio__get_operant_results"
    ],
    "ask": [],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as portfolio. Review it before you use it.