Expose one local project as a token-protected MCP server for ChatGPT.
Project description
Project MCP
Expose one local project as a token-protected MCP server for ChatGPT.
Project MCP is intentionally small:
- one local project root
- one fixed project token
- one Streamable HTTP MCP endpoint at
/mcp - Cloudflare quick tunnel for public HTTPS access
- no login, no hosted relay, no ChatGPT widget UI
Quick Start
Run without installing:
uvx project-mcp setup --root .
uvx project-mcp start
Or install as a persistent tool:
uv tool install project-mcp
project-mcp setup --root .
project-mcp start
start prints a ChatGPT Server URL like:
https://example.trycloudflare.com/mcp?project_mcp_token=pmcp_...
In ChatGPT Developer Mode, create an app/connector with:
Connection: Server URL
Authentication: None / No Authentication
Commands
project-mcp setup --root . --port 8080
project-mcp start --root .
project-mcp start --read-only
project-mcp start --no-bash
project-mcp doctor
project-mcp token rotate
project-mcp settings show
Profiles are stored outside the repository:
~/.project-mcp/workspaces/<sha256-realpath>.json
The token is fixed per device and project root until you rotate it.
Tools
Project MCP exposes:
server_configworkspace_infotreesearchread_filewrite_fileedit_fileshow_changesrun_check
--read-only hides write_file and edit_file. --no-bash hides run_check.
Development
uv sync
uv run ruff check .
uv run pytest
uv build
uv publish
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file project_mcp-0.1.0.tar.gz.
File metadata
- Download URL: project_mcp-0.1.0.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0f4d45695a16b774e866db8fed893bf52ead91237c6ecc104973d16376a7985
|
|
| MD5 |
e531dce50938b6679a4b261360c2f99c
|
|
| BLAKE2b-256 |
bb3bf04a92c4d3a44e89bf0ca5cbcd03ad5f6703f1e0d65b44d0d5f5deaf48d6
|
File details
Details for the file project_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: project_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6c73737c5f6f85e53ddd4f8da597981a7333875761ac653c68aeef0edc4e6c5
|
|
| MD5 |
8db20aea9eceea9542265581c0bab7ce
|
|
| BLAKE2b-256 |
bbc98a5a798e0fb4f6f0ad94378a1f4017db5129819dcaa972349472e76d7b81
|