saagarpatel.dev Portfolio
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
| Author | io.github.saagpatel |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 396 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"saagarpatel.dev Portfolio": {
"url": "https://mcp.saagarpatel.dev/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (8)
searchread-onlyFull-text (BM25) search across all essays, book chapters, and field notes. Returns ranked matches with a snippet, id, and canonical URL. Pass an id to get_document to read the full text.
Parameters:
query(required) — string — Search termslimit— integer — Max results (default 10)section— string — Restrict to one content type
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
get_documentread-onlyReturn the full Markdown of one document by id, e.g. "writing/the-handoff" or "book/preface". Get ids from search or list_corpus.
Parameters:
id(required) — string — Document id, e.g. "book/preface"
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
list_corpusread-onlyList 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.
Parameters:
type— string — Filter by content type
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
get_profileread-onlyReturn 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.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
list_projectsread-onlyList the curated, public projects with stack, status, last-active date, and test/CI signals, plus anonymized portfolio-wide aggregates. Optionally filter by status.
Parameters:
limit— integer — Max projectsstatus— string — Filter by status, e.g. "active" or "archived"
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
list_repo_profilesread-onlyList 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.
Parameters:
limit— integer — Max profilesattentionState— string — Filter by attention state, e.g. "active-infra" or "decision-needed"
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
get_repo_profileread-onlyReturn one public-safe repo answering profile by repo_id, including purpose, safe commands, agent surfaces, proof refs, freshness, exclusions, limitations, and integrity metadata.
Parameters:
repoId(required) — string — Repo profile id, e.g. "githubrepoauditor"
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
get_operant_resultsread-onlyReturn 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.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.