project-mcp-tools
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TARGET_PROJECT | No | The target project path, passed via --target-project. Sets the working directory for the MCP process and all subprocesses, determining the project that tools operate on. The path is resolved relative to project-mcp-tools/. |
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
} |
| logging | {} |
| 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_toolsB | returns a list of available tools |
| git_quick_uploadA | performs a quick git upload: pull, add all, commit with message, and push this tool is intended for simple, non-conflicting changes to increase agility inspect git status and git diff directly to produce the commit message using the Conventional Commits standard (do not use git log; history must not influence the commit message decision, only status and diff) mandatory: the message must be in en-us |
| git_pull_submodulesA | updates every submodule of the target project to the latest commit of its remote branch each submodule must have a clean git status, otherwise the tool fails without touching anything the updated pointers are left in the working tree so the owner decides when to commit the bump |
| git_discard_changesA | discards all uncommitted changes and removes untracked files this tool reverts the repository to the state of the last commit (head) |
| python_clearA | removes all pycache directories under the current directory |
| session_context_usageA | reports how much of the model context window the current opencode chat session is using reads the last message token usage from the opencode database when session_id is omitted the most recently updated active session in the target project is used context_limit overrides the context limit resolved from the models.dev cache use the returned context_used and context_percent values in conditional instructions |
| create_aliasesA | creates convenience symlinks for invoking project-mcp-tools tools via CLI |
| describe_imageA | uses the Gemini vision model to interpret an image from the target project for models without vision capability image_path is the relative path of the image inside the target project description explains what the requesting model wants to know about the image the answer is based only on what is visible in the image |
| create_imageB | generates an image using Gemini from the given text description. do NOT include a file extension in file_name |
| debugA | returns environment debugging information (cwd, paths, env vars) |
| get_random_numberA | returns a random number between start and end |
| keyboard_notes_converterA | converts user keyboard note transcriptions into json note arrays for game audio parses shorthand key notation into standard note and duration pairs notation rules: asdfghjk maps to c4, d4, e4, f4, g4, a4, b4, c5 uppercase letters represent 1 beat quarter notes lowercase letters represent 0.5 beat eighth notes enclosing in () represents 4 beats whole notes enclosing in [] represents 2 beats half notes enclosing in _ represents 0.25 beat sixteenth notes +1 or -1 at start of line adjusts base octave |
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 12 tools
Each tool has a clearly distinct purpose: git operations, image generation/description, context reporting, and one-off converters do not overlap. An agent should not confound any pair of these tools.
All names use snake_case, but the pattern is inconsistent: some are verb_noun (create_image, list_tools), some are domain-prefixed (git_quick_upload, python_clear), and some are noun phrases (session_context_usage, keyboard_notes_converter). The names are readable, but future tool names are not predictable.
Twelve tools is a reasonable count and none of the tools feels redundant. The set is a broad utility grab-bag, so it is slightly less tightly scoped than a focused server, but the count itself is appropriate.
The git and image sub-areas have practical coverage, and individual utilities are self-contained, but the set has no definable single domain against which to judge completeness. An agent cannot infer what project operations the server supports because the tools are an ad hoc collection rather than a coherent surface.