{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_m2mcxn7vc3hv","handle":"project-mcp-2","url":"https://wellknown.network/agents/project-mcp-2","links":{"self":"https://wellknown.network/agents/project-mcp-2/record.json","html":"https://wellknown.network/agents/project-mcp-2","markdown":"https://wellknown.network/agents/project-mcp-2/record.md","api":"https://wellknown.network/api/v1/agents/project-mcp-2","status":"https://wellknown.network/api/v1/agents/project-mcp-2/status","claim":"https://wellknown.network/agents/project-mcp-2/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/project-mcp-2/claim.json","badge":"https://wellknown.network/agents/project-mcp-2/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/project-mcp-2/history","tools":"https://wellknown.network/api/v1/agents/project-mcp-2/tools"},"ard":{"identifier":"urn:air::server:project-mcp-2","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"project-mcp","summary":"把一个本地项目作为 token 保护的 MCP 服务暴露给 ChatGPT。","description":"# Project MCP\n\n把一个本地项目作为 token 保护的 MCP 服务暴露给 ChatGPT。\n\nProject MCP 故意保持很小：\n\n- 一个本地项目根目录\n- 一个固定项目 token\n- 一个 Streamable HTTP MCP 端点：`/mcp`\n- 通过 Cloudflare quick tunnel 暴露公网 HTTPS\n- 不做登录、不做托管 relay、不做 ChatGPT 自定义 UI 卡片\n\n## 快速开始\n\n不安装，直接运行：\n\n```bash\nuvx project-mcp\n```\n\n或安装成持久 CLI：\n\n```bash\nuv tool install project-mcp\nproject-mcp\n```\n\n默认会把当前目录作为项目目录，并输出 ChatGPT 需要粘贴的 Server URL，例如：\n\n```text\nhttps://example.trycloudflare.com/mcp?project_mcp_token=pmcp_...\n```\n\n如果保存的本地端口被占用，`start` 会自动换一个空闲端口继续启动；公网 tunnel URL 不受影响。\nCloudflare quick tunnel 的 `*.trycloudflare.com` Host 会被默认允许，其他公网 Host 默认拒绝。\n\n在 ChatGPT Developer Mode 里创建 app/connector：\n\n```text\nConnection: Server URL\nAuthentication: None / No Authentication\n```\n\n## 命令\n\n```bash\nproject-mcp\nproject-mcp --root /path/to/project\nproject-mcp --read-only\nproject-mcp --no-bash\nproject-mcp setup --root . --port 8080\nproject-mcp start --root .\nproject-mcp doctor\nproject-mcp token rotate\nproject-mcp settings show\n```\n\n项目配置保存在仓库外：\n\n```text\n~/.project-mcp/workspaces/<sha256-realpath>.json\n```\n\ntoken 按“设备 + 项目根目录”固定保存，直到你显式轮换它。\n\n## MCP 工具\n\nProject MCP 暴露：\n\n- `server_config`\n- `workspace_info`\n- `tree`\n- `search`\n- `grep`\n- `read_file`\n- `write_file`\n- `edit_file`\n- `show_changes`\n- `run_check`\n\n`--read-only` 会隐藏 `write_file` 和 `edit_file`。`--no-bash` 会隐藏 `run_check`。\n\n`grep` 是 `search` 的安全别名，方便 ChatGPT 按直觉查代码；它不会执行 shell `grep`，仍然遵守项目 root、blocked globs、二进制拒绝和结果数量限制。\n\n`run_check` 默认使用安全白名单，覆盖 codexpro 风格的只读/验证命令，并额外支持更多常见检查器：\n\n- `pwd`、`ls`、`find`\n- `git status`、`git diff`、`git log`、`git show`、`git branch`、`git rev-parse`、`git ls-files`\n- `pytest`、`python -m pytest`、`python -m unittest`、`uv run pytest`\n- `npm/pnpm/yarn/bun test|lint|typecheck|build|check|validate`\n- `npm/pnpm/yarn/bun run build:clients`、`bun run smoke:network-propagation` 这类带冒号后缀的检查/验证脚本\n- `bun --filter @scope/pkg smoke:case-name` 这类 Bun monorepo 定向验证脚本\n- `go test`、`cargo test/check/clippy`\n- `tsc`、`eslint`、`biome check`、`prettier --check`\n- `ruff check`、`ruff format --…","publisher":null,"homepage":null,"repository":null,"version":"0.1.7","license":null,"protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:project-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","summary":"pypi","version":"pypi","description":"pypi"}},"derived":{"capabilities":[{"slug":"dev.filesystem","name":"Filesystem","confidence":1,"provenance":"derived"},{"slug":"dev.terminal","name":"Terminal & Shell","confidence":0.745,"provenance":"derived"}],"categories":["dev"],"language":"fr"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"project-mcp","registry":"pypi","observedAt":"2026-11-03T22:25:39.633Z","publishedAt":"2026-06-28T10:16:42.567835Z","latestVersion":"0.1.7"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"project-mcp","url":"https://pypi.org/project/project-mcp/","firstSeenAt":"2026-09-10T10:24:00.768Z","fetchedAt":"2026-11-03T22:24:27.651Z","normalizedAt":"2026-11-03T22:24:27.651Z"}]},"firstSeenAt":"2026-09-10T10:24:00.768Z","updatedAt":"2026-11-03T22:25:39.633Z"}