portfolio-mcp
portfolio-mcp
Ein MCP-Server, der ein Verzeichnis voller Projekte liest und dir sagt, was darin ist: Womit jedes einzelne gebaut wurde, ob es in Git liegt, wo es bereitgestellt ist, was veraltet ist und welche am nächsten daran sind, Geld zu verdienen.
Er ist schreibgeschützt. Er schreibt, verschiebt oder löscht nie etwas, das er scannt.
Installation
npx portfolio-mcp --root /path/to/your/projectsRegistriere ihn mit Claude Code:
claude mcp add --scope user portfolio \
-e PORTFOLIO_ROOT=/path/to/your/projects \
-- npx -y portfolio-mcpOder in einem beliebigen Client, der mcpServers liest:
{
"mcpServers": {
"portfolio": {
"command": "npx",
"args": ["-y", "portfolio-mcp"],
"env": { "PORTFOLIO_ROOT": "/path/to/your/projects" }
}
}
}Related MCP server: codescan-mcp
Konfiguration
Nichts ist fest verdrahtet. Das Scan-Stammverzeichnis wird in dieser Reihenfolge aufgelöst:
--root <pfad>(oder--root=<pfad>) in der Befehlszeiledie Umgebungsvariable
PORTFOLIO_ROOTdas Arbeitsverzeichnis des Prozesses
Variable | Standard | Zweck |
| Arbeitsverzeichnis | Verzeichnis, das die zu scannenden Projekte enthält |
| nicht gesetzt | Hostname oder Adresse, die ein selbst gehostetes Deployment kennzeichnet. Solange nicht gesetzt, wird niemals eine |
| nicht gesetzt | Auf |
_archive, _backups, node_modules, .git und Verzeichnisse mit führendem Punkt werden übersprungen.
Werkzeuge
Inventar
Tool | Was es tut |
| Jedes Projekt, filterbar nach Stack, Bereitstellungsstatus, Plattform oder GitHub-Präsenz |
| Ein Projekt im Detail: Stack, Abhängigkeiten, Git, Bereitstellung, Bereitschaft, Zeilenzahl |
| Übereinstimmung bei Name, Beschreibung, Framework, Abhängigkeit oder Kategorie |
Bereitstellung
Tool | Was es tut |
| Alles gruppiert nach Plattform: Vercel, Netlify, Railway, Docker, selbst gehostet, nur lokal |
| Welche Bereitstellungskonfiguration ein Projekt mit sich bringt, plus seinen Git-Status |
| Nicht übertragene Änderungen, fehlende Remotes, Repos, die älter als 90 Tage sind, Verzeichnisse ohne Git |
Einnahmen
Tool | Was es tut |
| Bewertet ein Projekt von 1 bis 10 nach Authentifizierung, Zahlungen, Landingpage, Bereitstellung, API, README |
| Reiht jedes Projekt ein und trennt die schnellen Erfolge ab |
| Konkrete nächste Schritte für ein Projekt, in Prioritätsreihenfolge |
| Aggregierte Sicht: bevorzugte Frameworks, wiederkehrende Stacks, Stärken |
Wartung
Tool | Was es tut |
|
|
| Projekte sortiert nach Tagen seit dem letzten Commit |
Was es berührt
Um das klarzustellen, weil der Server ein Verzeichnis liert, das dir wichtig ist:
Nur lesen. Kein Werkzeug schreibt, verschiebt, benennt um oder löscht eine Datei.
Pfadeingrenzung. Ein Projektname ist ein Verzeichniseintrag. Trennzeichen,
.., absolute Pfade, Laufwerksbuchstaben, Nullbytes und Windows-Gerätenamen werden abgelehnt, und der aufgelöste Pfad wird anschließend daraufhin überprüft, dass er sich innerhalb des konfigurierten Stammverzeichnisses befindet. Es gibt keine Möglichkeit, ein Nachbarverzeichnis lesen zu lassen.Keine Shell. Jeder Unterprozess läuft über
execFileSyncmit einem Argumentarray. Verzeichnisnamen werden niemals in eine Befehlszeichenfolge eingefügt.Unterprozesse.
gitfür den Repository-Status undnpm/pipnur innerhalb vonoutdated_deps.Netzwerk. Nur
outdated_depserreicht die npm- und PyPI-Registrieren, denn das tunnpm outdated,npm auditundpip list --outdated. SetzePORTFOLIO_OFFLINE=1und es verweigert stattdessen. Jedes andere Werkzeug ist lokal.Keine Anmeldeinformationen. Der Server liest keine Tokens und sendet nichts irgendwohin.
Bewertung
revenue_scan und find_opportunities erzeugen eine Bewertung von 1 bis 10 aus Signalen, die leicht zu erkennen sind: Bereitstellungskonfiguration, eine Authentifizierungsbibliothek, eine Zahlungsbibliothek, ein Einstiegspunkt für eine Landingpage, eine README, ein Git-Remote, ein API-Framework und dann ein Kategoriemultiplikator. Es ist eine Triage-Heuristik zum Sortieren eines großen Verzeichnisses, keine Bewertung. Behandle die Einstufung als „Schau dir diese zuerst an“, nicht als eine Zahl, die für sich genommen etwas bedeutet.
Entwicklung
npm ci
npm run build
npm test # builds, then runs node --test
npm pack --dry-runLizenz
MIT. Siehe LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides unified project context and monitoring capabilities including project health metrics, build diagnostics, Git integration, and infrastructure validation to initialize development sessions with comprehensive project information.
- AlicenseNot gradedqualityDmaintenanceScans codebases for TODOs, FIXMEs, code complexity, file stats, and dependencies, generating a health report with a letter grade. Zero configuration required.18MIT
- AlicenseAqualityAmaintenanceScans a repository for maintenance toil (flaky tests, expiring certificates, TODO rot, dead flags, etc.) and returns a prioritized queue with a credit ledger to track who cleared what.71MIT
- AlicenseAqualityAmaintenanceVisual tech-stack inventory of any codebase: languages, frameworks, databases, AI SDKs, infra.2MIT
Related MCP Connectors
Generate SBOMs, scan vulnerabilities, and analyze dependencies from local projects or Git repos.
Screens public GitHub repos and PRs to generate risk maps, findings, and merge-readiness signals.
Generate AGENTS.md, AP2 compliance docs, checkout rules, debug playbook & MCP configs from any repo.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NawafSheikh/portfolio-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server