project-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_PORT | No | Port for HTTP transport (default: 8000). | 8000 |
| LOG_LEVEL | No | Logging level (default: INFO). Set to DEBUG for more verbose tool logs. | INFO |
| MCP_TRANSPORT | No | Transport mode: http (default) or stdio. | http |
| PROJECT_MCP_ROOT | No | Root directory for project paths (default: current working directory). All tool paths must resolve under this root; path traversal is rejected. | |
| PROJECT_MCP_ALLOWED_COMMANDS | No | Comma-separated list of command prefixes allowed by run_command (e.g. python,npm,uv). Default: python, npm, npx, uv, pip, node, pytest, make. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_artifactsB | List artifacts; filter by context/type. Returns JSON with uri per artifact. |
| _substitute_varsA | Replace {{key}} with variables[key] in text. Leaves {{key}} if key missing. |
| write_fileB | Write or overwrite a file at path (relative to PROJECT_MCP_ROOT or cwd). |
| read_fileA | Read a file at path (relative to PROJECT_MCP_ROOT or cwd). Returns content or error. |
| list_directoryA | List directory contents at path (relative to PROJECT_MCP_ROOT or cwd). One level only. |
| search_filesB | Search for regex in project files. include/exclude globs. Returns path:line_num: line. |
| edit_fileB | Replace old_string with new_string in file. replace_all: all (default) or first only. |
| run_testsC | Run tests in project (pytest for Python, npm test for Node). |
| deployC | Trigger deployment for a project (runs deploy script or make deploy). |
| run_commandC | Run a command in project dir. Allowed prefixes: PROJECT_MCP_ALLOWED_COMMANDS or default. |
| statusB | Return project status: detected type, key files, and recent dir listing. |
| get_logsB | Read recent log content from project (looks for log files or .log). |
| get_configB | Read a config value from project (e.g. pyproject name, package.json name). |
| update_configC | Update name or version in pyproject.toml or package.json. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
Several tools overlap in purpose: run_command can duplicate run_tests and deploy, read_file/get_config both read config files, edit_file/update_config can both modify config, and list_artifacts/list_directory/search_files share discovery space. Descriptions help, but an agent could plausibly misselect among these.
Most tools follow a readable snake_case verb_noun pattern (read_file, write_file, get_config, update_config, run_tests). Minor deviations include _substitute_vars with a leading underscore, plus deploy and status as bare verb/noun names.
14 tools is within the typical well-scoped range and matches a project lifecycle surface spanning files, config, tests, deployment, commands, status, and logs. No excessive proliferation or obvious under-provisioning.
Core project operations are covered: file read/write/list/search/edit, config get/update, test running, deployment, command execution, status, and logs. Minor gaps remain around explicit delete_file/create_directory and artifact lifecycle beyond listing, though run_command can work around many of them.