Prompt 04: Fix MCP Server Build
- Source ID:
src-20260420-38c27c95606b - Kind:
code - Scope:
shared - Origin:
claude_code/prompts/04-fix-mcp-server.md - Raw path:
sources/raw/prompt-04-fix-mcp-server-build__src-20260420-38c27c95606b.md - Status:
active
Tags
internal-docs rebuild-prompt
Content
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
-
Run the build and capture errors:
bash cd /workspaces/claude-code/mcp-server npm run build 2>&1 -
Fix all TypeScript errors in
mcp-server/src/server.tsandmcp-server/src/index.ts. Common issues include: - Duplicate function implementations
- Missing imports
-
Type mismatches with the MCP SDK types
-
Verify the fix:
bash npm run buildShould complete with zero errors and produce output inmcp-server/dist/. -
Test the MCP server runs:
bash node dist/index.js --help 2>&1 || node dist/index.js 2>&1 | head -5It 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 dependenciesmcp-server/tsconfig.json— TypeScript configmcp-server/src/server.ts— Main server logic (tools, resources, prompts)mcp-server/src/index.ts— Entrypoint (stdio transport)
Verification
cd mcp-server && npm run buildsucceeds with zero errorsls mcp-server/dist/shows compiled.jsfilesnode mcp-server/dist/index.jsstarts 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"