Files
claude-code-gitea-action/PR_TEMPLATE.md
2025-05-23 11:31:08 -07:00

1.6 KiB

Fix MCP server undefined error and file path resolution

Problem

The mcp__github_file_ops__commit_files tool was failing with "Error calling tool commit_files: undefined" when Claude tried to commit files through the GitHub Action.

Root Causes

  1. Error format mismatch: The MCP server returned errors with the message in a content field, but the claude-cli-internal client expected it in an error field
  2. Working directory mismatch: The MCP server couldn't find repository files because it was looking in the wrong directory

Solution

  1. Added error field to error responses in both commit_files and delete_files tools
  2. Added REPO_DIR environment variable support to the MCP server
  3. Updated file reading to use REPO_DIR for correct path resolution
  4. Pass GITHUB_WORKSPACE to the MCP server configuration

Changes

src/mcp/github-file-ops-server.ts

  • Added error field to error response objects
  • Added REPO_DIR environment variable (defaults to process.cwd())
  • Updated file reading to construct full paths using REPO_DIR
  • Simplified path processing logic

src/mcp/install-mcp-server.ts

  • Added REPO_DIR: process.env.GITHUB_WORKSPACE || process.cwd() to MCP server environment

Testing

  • Created local tests to verify error format fix
  • Confirmed that "undefined" errors are now replaced with actual error messages
  • Verified that the MCP server can handle both relative and absolute file paths

Impact

  • Fixes the immediate "undefined" error issue
  • Enables proper file path resolution in GitHub Actions environment
  • Provides clearer error messages for debugging

Fixes #[issue-number-if-applicable]