portfolio-mcp

portfolio-mcp

Reads a directory of projects and reports on their stack, git state, deployment targets, and monetization readiness.

Category
访问服务器

README

portfolio-mcp

An MCP server that reads a directory full of projects and tells you what is in there: what each one is built with, whether it is in git, where it is deployed, what has gone stale, and which ones are closest to earning money.

It is read-only. It never writes to, moves, or deletes anything it scans.

Install

npx portfolio-mcp --root /path/to/your/projects

Register it with Claude Code:

claude mcp add --scope user portfolio \
  -e PORTFOLIO_ROOT=/path/to/your/projects \
  -- npx -y portfolio-mcp

Or in any client that reads mcpServers:

{
  "mcpServers": {
    "portfolio": {
      "command": "npx",
      "args": ["-y", "portfolio-mcp"],
      "env": { "PORTFOLIO_ROOT": "/path/to/your/projects" }
    }
  }
}

Configuration

Nothing is hardcoded. The scan root is resolved in this order:

  1. --root <path> (or --root=<path>) on the command line
  2. the PORTFOLIO_ROOT environment variable
  3. the process working directory
Variable Default Purpose
PORTFOLIO_ROOT working directory Directory holding the projects to scan
PORTFOLIO_VPS_HOST unset Hostname or address that marks a self-hosted deployment. While unset, no vps platform is ever reported
PORTFOLIO_OFFLINE unset Set to 1 to refuse the one tool that reaches package registries

_archive, _backups, node_modules, .git, and dotted directories are skipped.

Tools

Inventory

Tool What it does
list_projects Every project, filterable by stack, deployment status, platform, or GitHub presence
get_project One project in depth: stack, dependencies, git, deployment, readiness, line count
search_projects Match on name, description, framework, dependency, or category

Deployment

Tool What it does
deployment_map Everything grouped by platform: Vercel, Netlify, Railway, Docker, self-hosted, local-only
check_health What deployment configuration one project carries, plus its git state
git_overview Uncommitted work, missing remotes, repos stale past 90 days, directories with no git at all

Revenue

Tool What it does
revenue_scan Scores one project 1 to 10 on auth, payments, landing page, deployment, API, README
find_opportunities Ranks every project, and separates the quick wins
suggest_actions Concrete next steps for one project, in priority order
learn_patterns Aggregate view: preferred frameworks, recurring stacks, strengths

Maintenance

Tool What it does
outdated_deps npm outdated, npm audit, and pip list --outdated for one project
stale_projects Projects sorted by days since the last commit

What it touches

Being clear about this, because the server reads a directory you care about:

  • Reads only. No tool writes, moves, renames, or deletes a file.
  • Path containment. A project name is one directory entry. Separators, .., absolute paths, drive letters, null bytes, and Windows device names are rejected, and the resolved path is then checked to be inside the configured root. There is no way to make it read a sibling directory.
  • No shell. Every subprocess runs through execFileSync with an argument array. Directory names are never concatenated into a command string.
  • Subprocesses. git for repository state, and npm / pip only inside outdated_deps.
  • Network. outdated_deps alone reaches the npm and PyPI registries, because that is what npm outdated, npm audit, and pip list --outdated do. Set PORTFOLIO_OFFLINE=1 and it refuses instead. Every other tool is local.
  • No credentials. The server reads no tokens and sends nothing anywhere.

Scoring

revenue_scan and find_opportunities produce a 1 to 10 score from signals that are cheap to detect: deployment configuration, an auth library, a payment library, a landing page entry point, a README, a git remote, an API framework, then a category multiplier. It is a triage heuristic for sorting a large directory, not a valuation. Treat the ranking as "look at these first", not as a number that means anything on its own.

Development

npm ci
npm run build
npm test          # builds, then runs node --test
npm pack --dry-run

License

MIT. See LICENSE.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选