{
  "display_name": "CodeMCP",
  "license": "Apache-2.0",
  "tags": [
    "AI coding assistant",
    "Claude integration",
    "pair programming",
    "code editing",
    "Git integration",
    "Claude Desktop"
  ],
  "installations": {
    "uvx": {
      "type": "uvx",
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/ezyang/codemcp@prod",
        "codemcp"
      ],
      "description": "Using uv to install and run codemcp"
    },
    "python": {
      "type": "python",
      "command": "python",
      "args": [
        "-m",
        "codemcp"
      ],
      "description": "Run codemcp with Python module"
    }
  },
  "examples": [
    {
      "title": "",
      "description": "",
      "prompt": "Initialize codemcp with /path/to/your/project"
    },
    {
      "title": "",
      "description": "",
      "prompt": "Can you implement a new feature that adds pagination to the user list?"
    },
    {
      "title": "",
      "description": "",
      "prompt": "There's a bug in the authentication module where users are getting logged out unexpectedly. Can you fix it?"
    },
    {
      "title": "",
      "description": "",
      "prompt": "I'd like to refactor the database connection code to use connection pooling"
    },
    {
      "title": "",
      "description": "",
      "prompt": "Run the tests and fix any failing tests"
    },
    {
      "title": "",
      "description": "",
      "prompt": "Format the code in the src directory"
    },
    {
      "title": "",
      "description": "",
      "prompt": "Add error handling to the API endpoints in the users module"
    }
  ],
  "name": "codemcp",
  "repository": {
    "type": "git",
    "url": "https://github.com/ezyang/codemcp"
  },
  "homepage": "https://github.com/ezyang/codemcp",
  "author": {
    "name": "ezyang"
  },
  "description": "Make Claude Desktop a pair programming assistant by installing codemcp.  With",
  "categories": [
    "Dev Tools"
  ],
  "tools": [
    {
      "name": "codemcp",
      "description": "If and only if the user explicitly asks you to initialize codemcp with\n    path, you should invoke this tool.  This will return instructions which you should\n    IMMEDIATELY follow before continuing, in particular, it will explain other ways\n    you can invoke this tool.\n\n    If the user indicates they want to \"amend\" or \"continue working\" on a PR,\n    you should set reuse_head_chat_id=True to continue using the same chat ID.\n\n    In each subsequent request NOT including the initial request to initialize\n    codemcp, you must call the UserPrompt tool with the user's verbatim\n    request text.\n\n    Arguments:\n      subtool: The subtool to run (InitProject, ...)\n      path: The path to the file or directory to operate on\n      user_prompt: The user's original prompt verbatim, starting AFTER instructions to initialize codemcp (e.g., you should exclude \"Initialize codemcp for PATH\")\n      subject_line: A short subject line in Git conventional commit format (for InitProject)\n      reuse_head_chat_id: If True, reuse the chat ID from the HEAD commit instead of generating a new one (for InitProject)\n      ... (there are other arguments which will be documented when you InitProject)\n    ",
      "inputSchema": {
        "properties": {
          "subtool": {
            "title": "Subtool",
            "type": "string"
          },
          "path": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Path"
          },
          "content": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Content"
          },
          "old_string": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Old String"
          },
          "new_string": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "New String"
          },
          "offset": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Offset"
          },
          "limit": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Limit"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Description"
          },
          "pattern": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Pattern"
          },
          "include": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Include"
          },
          "command": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Command"
          },
          "arguments": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Arguments"
          },
          "old_str": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Old Str"
          },
          "new_str": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "New Str"
          },
          "chat_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Chat Id"
          },
          "user_prompt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "User Prompt"
          },
          "subject_line": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Subject Line"
          },
          "reuse_head_chat_id": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Reuse Head Chat Id"
          },
          "thought": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Thought"
          },
          "mode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Mode"
          },
          "commit_hash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Commit Hash"
          }
        },
        "required": [
          "subtool"
        ],
        "title": "codemcpArguments",
        "type": "object"
      }
    }
  ],
  "prompts": [],
  "resources": [],
  "is_official": false
}
