Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Inicia sesión con Google para escribir reseñas.Prototipo · se actualiza cada 30 min
PopNx MCPServidores MCP para quienes usan IA · en palabras sencillas

saagarpatel.dev Portfolio

de saagpatelversión 0.1.0i★ 0iComputadora o nube
Nombre en el registroio.github.saagpatel/portfolio-mcp

Cómo instalar

What it does

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

  • Connects Computadora o nube
  • Account or key No key needed
  • Category Contabilidad, finanzas e impuestos

Instalación

Elige la app de IA que usas y copia la configuración.

Pasó 5/5 revisiones · Lo que preguntas pasa por el servidor del autor (mcp.saagarpatel.dev) · ✓ Comandos revisados el 14 nov 2026

Primero: ¿qué IA usas?

Elige tu app y los pasos aparecen abajo.

Funciona con Claude · unos 2 min

Sin clave y sin instalar nada · Configúralo una vez en claude.ai o en la app de escritorio y úsalo en el chat · las cuentas gratis pueden añadir 1 · en Team/Enterprise lo añade un Owner

  1. Abre la página Connectors de Claude

    CustomizeConnectors

    CustomizeConnectors1Add2https://…3Add4
  2. Pulsa “Add” → “Custom” → “Web” y completa estos 2 campos

    Copia cada valor al campo con el mismo nombre en Claude y pulsa Continue

    Name · Nombresaagarpatel.dev Portfolio
    Remote MCP server URL · Direcciónhttps://mcp.saagarpatel.dev/mcp

    Pulsa Continue en la pantalla de inicio de sesión que detectó Claude · en Authentication elige lo que indique el autor (Sign in now, Sign in when needed o No sign in) y pulsa Add

  3. Actívalo en un chat

    +Connectorssaagarpatel.dev Portfolio

  4. Pruébalo

    Usa saagarpatel.dev Portfolio y dime qué puedes hacer por mí; luego muéstrame una cosa

    ✓ Si Claude dice que está usando saagarpatel.dev Portfolio o muestra una herramienta de saagarpatel.dev Portfolio en la respuesta, ya está conectado

Nombres de menú comprobados con la ayuda de Anthropic el 11 nov 2026 · tu pantalla puede variar un poco según la versión

Funciona con ChatGPT según tu plan

MCP completo: ChatGPT Business, Enterprise o Edu en la web · Pro: conecta con permisos de lectura/obtención, así que las herramientas que cambian datos pueden no funcionar · Plus: no confirmado en la documentación; si ves una opción para añadir MCP propio en la página de plugins puedes probar · solo web

  1. Abre la página para añadir MCP en ChatGPT web

    Plugins+Add custom MCP server

    ChatGPTPlugins1+2https://…3Create4
  2. Escribe el nombre y la dirección

    Pon un nombre, pega la dirección en Connection, marca el aviso de riesgo y pulsa Create as a plugin

    Name · Nombresaagarpatel.dev Portfolio
    Connection · Direcciónhttps://mcp.saagarpatel.dev/mcp
  3. Elige saagarpatel.dev Portfolio en un chat

    Abre un chat nuevo y elige saagarpatel.dev Portfolio en tus plugins antes de escribir

  4. Pruébalo

    Usa saagarpatel.dev Portfolio y dime qué puedes hacer por mí; luego muéstrame una cosa

    ✓ Si ChatGPT dice que está usando saagarpatel.dev Portfolio o muestra una herramienta de saagarpatel.dev Portfolio en la respuesta, ya está conectado

Nombres de menú comprobados con la ayuda de OpenAI el 11 nov 2026 · tu pantalla puede variar un poco según la versión

Funciona con Claude Code · unos 2 min

Sin clave y sin instalar nada

  1. Abre la Terminal

    Mac: pulsa Command+Espacio y escribe Terminal · Windows: abre PowerShell

  2. Pega este comando y pulsa Enter

    claude mcp add --transport http --scope user portfolio https://mcp.saagarpatel.dev/mcp
  3. Escribe /mcp en Claude Code

    Deberías ver saagarpatel.dev Portfolio en la lista como conectado

  4. Pruébalo

    Usa saagarpatel.dev Portfolio y dime qué puedes hacer por mí; luego muéstrame una cosa

    ✓ Si Claude Code dice que está usando saagarpatel.dev Portfolio o muestra una herramienta de saagarpatel.dev Portfolio en la respuesta, ya está conectado

Nombres de menú comprobados con la ayuda de Anthropic el 11 nov 2026 · tu pantalla puede variar un poco según la versión

Funciona con Cursor · unos 2 min

Sin clave y sin instalar nada

  1. Pulsa este botón para abrir Cursor

    Abrir en Cursor

    Cursor te pedirá confirmar; pulsa Install

  2. Abre el chat de IA de Cursor en modo Agent

  3. Pruébalo

    Usa saagarpatel.dev Portfolio y dime qué puedes hacer por mí; luego muéstrame una cosa

    ✓ Si Cursor dice que está usando saagarpatel.dev Portfolio o muestra una herramienta de saagarpatel.dev Portfolio en la respuesta, ya está conectado

Nombres de menú comprobados con la ayuda de Cursor el 11 nov 2026 · tu pantalla puede variar un poco según la versión

Funciona con VS Code · unos 2 min

Sin clave y sin instalar nada

  1. Pulsa este botón para abrir VS Code

    Abrir en VS Code

    VS Code te pedirá confirmar; pulsa Install

  2. Abre el chat de IA de VS Code en modo Agent

  3. Pruébalo

    Usa saagarpatel.dev Portfolio y dime qué puedes hacer por mí; luego muéstrame una cosa

    ✓ Si VS Code dice que está usando saagarpatel.dev Portfolio o muestra una herramienta de saagarpatel.dev Portfolio en la respuesta, ya está conectado

Nombres de menú comprobados con la ayuda de VS Code el 11 nov 2026 · tu pantalla puede variar un poco según la versión

Otras apps que usan MCP, como Windsurf, Zed o Gemini CLI, añaden servidores de forma distinta. Míralo en la lista de apps

Ver todas las apps que usan MCP →

Dirección para apps que se conectan por la web

Direcciónhttps://mcp.saagarpatel.dev/mcp

La configuración JSON está en “Para desarrolladores”, abajo

¿Te atascaste? Pregunta a quien usa saagarpatel.dev Portfolio💬 Conversación →
Para desarrolladores: comandos de Terminal y configuración JSON

Por la web

Claude Code

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

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "portfolio": {
      "url": "https://mcp.saagarpatel.dev/mcp"
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "portfolio": {
      "type": "http",
      "url": "https://mcp.saagarpatel.dev/mcp"
    }
  }
}

Instalado en tu computadora

Claude Code

claude mcp add --scope user portfolio -- npx -y saagar-portfolio-mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "portfolio": {
      "command": "npx",
      "args": [
        "-y",
        "saagar-portfolio-mcp"
      ]
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "portfolio": {
      "command": "npx",
      "args": [
        "-y",
        "saagar-portfolio-mcp"
      ]
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "portfolio": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "saagar-portfolio-mcp"
      ]
    }
  }
}

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

De un vistazo

Descargas por semanai
46/sem
Conexión
Computadora o nube
Transporte
stdio, streamable-http
Última versióni
0.1.0
Publicado en el registroi
28 jun 2026
Último cambio de códigoi
13 nov 2026
Creador
saagpatel
Paquetes
npm: saagar-portfolio-mcp
Estado en el registro
Activo

Qué apps pueden usarlo

Según cómo se conecta este servidor y la documentación de cada app, comprobado el 10 nov 2026.

Se conectan por internet en

ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

Se ejecutan en tu computadora en

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

Todas las apps, con ventajas y desventajas →

Qué puede hacer

Nombres y descripciones de las herramientas tal como los informó el servidor el 10 nov 2026. Los escribió el creador, no nosotros; los mostramos como texto sin formato.

  • search

    Full-text (BM25) search across essays, book chapters, field notes, and pages. Returns ranked matches with a snippet, id, and canonical URL. Pass an id to get_document to read the full text.

  • get_document

    Return the full Markdown of one document by id, e.g. "writing/the-handoff" or "book/preface". Get ids from search or list_corpus.

  • list_corpus

    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.

  • get_profile

    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.

  • list_projects

    List the curated, public projects with stack, status, last-active date, and test/CI signals, plus anonymized portfolio-wide aggregates. Optionally filter by status.

  • list_repo_profiles

    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.

  • get_repo_profile

    Return one public-safe repo answering profile by repo_id, including purpose, safe commands, agent surfaces, proof refs, freshness, exclusions, limitations, and integrity metadata.

  • get_operant_results

    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.

  • show_project_gallery

    Show the curated public projects as a gallery of cards: name, category, stack, lifecycle, last-active date, test/CI signals, and the public repository link, with archive-wide totals. Hosts that support MCP Apps render it as an interactive gallery; others get the same data as JSON

  • show_project_timeline

    Show the curated public projects on a timeline grouped by last-active month, colored by lifecycle, with the lifecycle breakdown of the whole archive. Hosts that support MCP Apps render it as an interactive timeline; others get the same data as JSON.

  • show_operant_results

    Show the public OPERANT benchmark as calibration-profile cards (historical OCS repeats, cross-provider TPR/FPR profiles, and the metric) with a playable demo: the reader acts as the operator's agent on six cases and is scored with the real OCS = TPR - FPR. The rows are historical

  • play_demo

    Play one of the site's interactive demos, rebuilt from the public corpus pages that fully describe them. "interleaving": the Interleaving Explorer, two writers on one database row, six schedules, warn vs enforce mode, and the lost update with its receipts. "failure-museum": match

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 15 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub saagpatel, dueña del repo

  • ✓ Superada

    Sigue en mantenimiento

    Último cambio de código: anteayer

  • ✓ Superada

    Tiene licencia

    Usa MIT

  • ✓ Superada

    El endpoint responde

    Respondió en 287 ms (HTTP 200)

  • – No aplica

    Inicio de sesión con OAuth

    No hace falta iniciar sesión

  • ✓ Superada

    Sin instrucciones ocultas en las descripciones de herramientas

    Leímos 12 descripciones de herramientas y no encontramos instrucciones ocultas para la IA

Vulnerabilidades publicadas (OSV.dev)

Aún no revisado

Qué revisamos → · JSON

Creadores: pedir otra revisión o avisar de un dato erróneo

Conversación

Pregunta, comparte un consejo o avisa de que no funciona. Ordenado por lo que la gente marcó como útil.

Aún no hay publicaciones. Sé la primera persona en preguntar o compartir.

Lo publicado aquí lo escriben usuarios, no el equipo de PopNx.

Inicia sesión para publicar

Reseñas de usuarios

Aún no hay reseñas

Inicia sesión para escribir una reseña

Comparado con otros en Contabilidad, finanzas e impuestosi

  • Más estrellas que el 0% de los otros 3258 servidores de esta categoría
  • Publicado en el registro más recientemente que el 14% de los otros 3258 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 3258 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro saagarpatel.dev Portfolio?

Superó 5 de 5 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.

¿Se ejecuta en mi computadora o en la nube?

Funciona de las dos formas: instálalo en tu computadora o conéctate a la versión en la nube.

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez anteayer, y la última versión (0.1.0) llegó al registro hace 5 meses.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también sirve en apps que aceptan MCP remoto, como ChatGPT en la web (MCP completo en Business y superiores; Pro solo lectura).

¿Qué puedo usar en su lugar?

En la misma categoría: SolidInvoice, Signal8, Journalit, Tapetide - Indian Stock Market MCP, Twelve Data

Alternativas parecidas

Misma categoría, otros creadores, comandos ya revisados. Primero los oficiales, luego por estrellas.

Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

SolidInvoice

Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.

de SolidInvoiceEn crecimiento★ 988Actualizado hace 6 días

Se ejecuta en la nube✓ del servicio · solidinvoice.co

Signal8

SEC filings, dilution, insider & institutional ownership, and political-trade data for AI agents.

de signal8aiEn crecimiento↓ 109/sem★ 425Actualizado hace 6 días

Computadora o nube✓ del servicio · signal8.ai

Journalit

Trading journal in Obsidian. Ask Claude or ChatGPT about your trades; edits are previewed first.

de CursivezEn crecimiento★ 257Actualizado hace 7 días

Se ejecuta en la nube✓ del servicio · journalit.co

Tapetide - Indian Stock Market MCP

48 tools for ~8,000 NSE & BSE stocks: quotes, screener, financials, filings, FII/DII, options

de Tapetide-hqEn crecimiento↓ 139/sem★ 150Actualizado hace 18 días

Computadora o nube✓ del servicio · tapetide.com

Twelve Data

Real-time and historical market data: stocks, forex, crypto, ETFs, fundamentals and 60+ indicators.

de twelvedataEn crecimiento★ 86Actualizado hace 11 días

Se ejecuta en la nube✓ del servicio · twelvedata.com

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

portfolio-mcp

The agent-native layer of saagarpatel.dev: a Model Context Protocol server that lets any AI agent query Saagar's writing, projects, public-safe repo profiles, and benchmark results directly, instead of scraping HTML.

Read-only. Stateless. Public. No auth, no tracking, no database, no runtime egress.

How it fits

The website stays a pure static site. This server is a sibling, not a backend bolted onto it:

  • Layer 0 (in the portfolio-index repo): the build emits a static machine corpus — corpus-index.json, per-document corpus/ .json, and .well-known/mcp.json — plus public-safe repo profile artifacts when present, served alongside the HTML. Already public.
  • Layer 1 (this repo, src/index.ts): a stateless Cloudflare Worker that bakes the Layer 0 corpus into its bundle and serves it over MCP (streamable HTTP, the WebStandardStreamableHTTPServerTransport). Zero runtime fetches.
  • Layer 2 (this repo, src/stdio.ts): the same server over stdio, for running locally via npx saagar-portfolio-mcp. Identical tool/resource/prompt surface.

The shared core (src/server.ts) is transport-agnostic; both layers wrap it.

Tool surface

All read-only (readOnlyHint: true). No tool takes a URL or filesystem path (no SSRF / exfil surface).

ToolPurpose
searchBM25 over the whole corpus; optional section filter, limit
get_documentFull Markdown of one document by id
list_corpusThe table of contents; optional type filter
get_profileThe "who is this" card (about / now / uses)
list_projectsCurated public-safe projects + anonymized aggregates
list_repo_profilesPublic-safe repo profile index with freshness and proof counts
get_repo_profileOne repo answering profile by the repoId argument
get_operant_resultsPublic, sanitized OPERANT calibration results (per-model OCS)

Documents are also exposed as Resources (portfolio://essays/{slug}, portfolio://book/{slug}, portfolio://notes/{slug}, portfolio://profile), and there are two Prompts: introduce_saagar and summarize_writing_on (grounded in a live search).

Retrieval

BM25 over a baked index (no embeddings in v1 — the committed corpus contains 166 docs and the calling LLM supplies the semantics). Titles are boosted. Embeddings are a measured Phase 3 upgrade, added only if retrieval quality proves insufficient.

Layout

src/

types.ts corpus + projects + operant shapes bm25.ts dependency-free BM25 + snippet (pure) tools.ts createTools(corpus) -> the 8 tools (pure, injectable) corpus.ts loads the baked corpus + accessors corpus.generated.ts AUTO-GENERATED by build:corpus server.ts buildServer(): shared MCP core (tools + resources + prompts) index.ts Cloudflare Worker transport (streamable HTTP) stdio.ts Layer 2 stdio transport (the npx CLI) scripts/ build-corpus.mjs bakes Layer 0 and local OPERANT inputs into corpus.generated.ts probe-mcp.mjs probes an MCP HTTP endpoint (saagar-mcp-kit driver + domain calls) audit-mcp.sh connected MCPAudit scan of this server (dogfood) test/ vitest: bm25, tools, full-protocol server tests

Develop

From the repository root, use the pinned Node and npm versions from .node-version and package.json. The checked-in public-safe corpus is enough for routine checks; no sibling checkout, local portfolio import, signing key, or Cloudflare credentials are needed.

npm ci

make check

make check runs lint, format validation, typecheck, tests, the stdio build and protocol test, smoke, parity, and a package-content check. See CI for the same aggregate gate. npm run dev starts the local Worker.

npm run build:corpus regenerates source from a sibling checkout or an explicit network URL; URL-mode builds omit OPERANT because its build inputs are not published. Corpus generation is not required for ordinary fixture verification. npm run probe:mcp targets the live Worker by default, and the connected audit starts a local Worker and invokes the separately installed mcp-audit CLI. Keep those separate from local gates; deployment and signing remain operator-gated as described below.

Inspect either transport with the MCP inspector:

npx @modelcontextprotocol/inspector http://localhost:8787/mcp   # Layer 1 (HTTP)

npx @modelcontextprotocol/inspector node dist/stdio.js # Layer 2 (stdio, after build:cli)

Deploy (Layer 1)

npm run build:corpus && npm run deploy   # wrangler deploy

npm run probe:mcp # post-deploy live MCP readback

Operator-gated (needs Cloudflare auth). v1 still deploys to the default portfolio-mcp. .workers.dev URL, and npm run probe:mcp uses that stable Worker URL by default. Public discovery now advertises the verified custom endpoint https://mcp.saagarpatel.dev/mcp; after any deploy, verify both the Worker and the website manifest/readback path before changing .well-known/mcp.json.

wrangler.jsonc pins workers_dev: true so the public Worker URL stays live during any future custom-domain experiments; do not remove it unless the website manifest has already moved to a verified replacement endpoint.

Publish (Layer 2)

npm run build:corpus && npm run build:cli   # -> dist/stdio.js

npm login && npm publish # public package: saagar-portfolio-mcp

Once published, anyone can run it locally with npx saagar-portfolio-mcp (no install).

Sign the manifest (optional trust signal)

Ed25519-sign .well-known/mcp.json so an agent or registry can verify it authentically comes from Saagar (via saagar-mcp-kit's signing CLI, Node built-in crypto):

npx mcp-kit-sign gen-key --manifest=../portfolio-index/.well-known/mcp.json  # one-time; private key -> .signing/ (gitignored, NEVER commit)

npm run sign # writes .sig + publishes mcp-ed25519.pub npm run sign:verify # checks manifest bytes against .sig + public key

Override paths with --manifest=/--key=/--pub=/--sig=. Commit the .sig + mcp-ed25519.pub (never the private key) into portfolio-index next to the manifest, then redeploy the site. Re-run sign whenever the manifest changes (it signs the exact served bytes).

Audit posture

Designed to pass MCPAudit / mcp-trust (Saagar's own tools): only the inbound MCP transport, no shell_execution / file_access / destructive / exfiltration, and no caller-controlled egress (the corpus is baked). All tools are annotated read-only with plain, non-injectable descriptions. bash scripts/audit-mcp.sh runs a connected scan.

Dogfooding this server surfaced a substring-matching false-positive bug in MCPAudit (it matched port inside portfolio://); that fix lives in the MCPAudit repo and cut this server's findings 62 → 14. The genuine tool surface scans clean (high_risk_servers: 0).

Status

Stack

Node.js 24.21.0, npm 12.2.0, TypeScript, Cloudflare Workers, and the MCP SDK.

Known risks

URL-mode corpus builds omit OPERANT, whose inputs are only available to local corpus builds. Worker deployment and package publication are not part of local verification.

Next steps

Keep the published MCP endpoint and signed discovery manifest in sync when an operator authorizes a deployment. Registry publication remains a separate, explicitly authorized release action.