Files
codeaashu-claude-code/prompts/04-fix-mcp-server.md
ashutoshpythoncs@gmail.com b564857c0b claude-code
2026-03-31 18:58:05 +05:30

2.7 KiB

Prompt 04: Fix MCP Server Build

Context

You are working in /workspaces/claude-code/mcp-server/. This is a separate sub-project that provides an MCP (Model Context Protocol) server for exploring the Claude Code source. It's a simpler, self-contained TypeScript project.

Currently npm run build (which runs tsc) fails with TypeScript errors.

Task

  1. Run the build and capture errors:

    cd /workspaces/claude-code/mcp-server
    npm run build 2>&1
    
  2. Fix all TypeScript errors in mcp-server/src/server.ts and mcp-server/src/index.ts. Common issues include:

    • Duplicate function implementations
    • Missing imports
    • Type mismatches with the MCP SDK types
  3. Verify the fix:

    npm run build
    

    Should complete with zero errors and produce output in mcp-server/dist/.

  4. Test the MCP server runs:

    node dist/index.js --help 2>&1 || node dist/index.js 2>&1 | head -5
    

    It may hang waiting for stdio input (that's normal for an MCP server) — just verify it starts without crashing.

Key Files

  • mcp-server/package.json — build script and dependencies
  • mcp-server/tsconfig.json — TypeScript config
  • mcp-server/src/server.ts — Main server logic (tools, resources, prompts)
  • mcp-server/src/index.ts — Entrypoint (stdio transport)

Verification

  1. cd mcp-server && npm run build succeeds with zero errors
  2. ls mcp-server/dist/ shows compiled .js files
  3. node mcp-server/dist/index.js starts without immediate crash

Fix: GitHub Push Protection Blocked Push

git push origin main is rejected because commits 5e99ad6 and 7adaa5d contain a GitHub OAuth token in .mcpregistry_github_token. The file was deleted from disk but still exists in git history. You must rewrite history to remove it.

Step 1: Scrub secrets from history

git filter-branch --force --index-filter \
  'git rm --cached --ignore-unmatch .mcpregistry_github_token .mcpregistry_registry_token mcp-server/.mcpregistry_github_token mcp-server/.mcpregistry_registry_token' \
  --prune-empty HEAD~5..HEAD

Step 2: Push

git push origin main

Alternative: Interactive rebase

git rebase -i HEAD~5
# Change "pick" to "edit" for commits 5e99ad6 and 7adaa5d
# At each stop, run:
git rm --cached .mcpregistry_github_token .mcpregistry_registry_token 2>/dev/null
git rm --cached mcp-server/.mcpregistry_github_token mcp-server/.mcpregistry_registry_token 2>/dev/null
git commit --amend --no-edit
git rebase --continue

Step 3: Prevent future leaks

echo ".mcpregistry_github_token" >> .gitignore
echo ".mcpregistry_registry_token" >> .gitignore
git add .gitignore && git commit -m "chore: gitignore token files"