Claude Assist MCP
About
Enables communication between Claude Code and Claude Desktop for code reviews.
Details
- Author
- dpaluy
- Categories
- Communication, Developer Tools, Automation
Jump to
Setup
Install Claude Assist MCP in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/dpaluy/claude-assist-mcp
Follow the installation instructions in the repository README, then restart your MCP client.
A Model Context Protocol (MCP) server that enables Claude Code to communicate with Claude Desktop. This server allows Claude Code to send prompts to Claude Desktop and poll for responses.
- Send prompts from Claude Code to Claude Desktop
- Automatic polling for responses with configurable timeout
- List available conversations in Claude Desktop
- Error handling and retry logic
- Comprehensive logging
You can install and use this MCP server in two ways:
The simplest way to use this server is directly with npx, without any installation:
{ "mcpServers": { "claude-desktop": { "command": "npx", "args": ["mcp-claude-desktop"] } } }
git clone https://github.com/dpaluy/mcp-claude-desktop cd mcp-claude-desktop
{ "mcpServers": { "claude-desktop": { "command": "node", "args": ["/path/to/mcp-claude-desktop/dist/index.js"] } } }
- macOS 11.0+ (Big Sur or later)
- Node.js 18+
- Claude Desktop app installed
- Accessibility permissions granted for AppleScript
- Open System Preferences > Security & Privacy > Privacy
- Select "Accessibility" from the left sidebar
- Click the lock to make changes
- Add Terminal (or your terminal app) to the allowed apps
- Restart your terminal
- Purpose: Send a prompt to Claude Desktop and get a response
- Parameters:
- prompt: The text to send to Claude Desktop (required)
- conversationId: Optional ID to continue a specific conversation
- timeout: Response timeout in seconds (optional, default: 30, max: 300)
- pollingInterval: How often to check for response in seconds (optional, default: 1.5, min: 0.5)
- Purpose: Get a list of available conversations in Claude Desktop
- Parameters: None
Once configured, Claude Code can use the MCP in various ways:
When Claude uses these tools, it will call them with parameters like:
- Tool:ask
- Parameters:{ "prompt": "What is dependency injection?" }
- Tool:ask
- Parameters:{ "prompt": "Explain quantum computing", "timeout": 120 }
- Tool:ask
- Parameters:{ "prompt": "Quick question", "timeout": 10, "pollingInterval": 0.5 }
Once the MCP server is configured and running, you can use these tools directly in Claude:
- "Use the ask tool to ask Claude Desktop: What are the best practices for error handling in Python?"
- "Use get_conversations to list all my Claude Desktop conversations"
- "Use the ask tool with timeout 60 to ask Claude Desktop: Explain B+ tree implementation"
- "Use ask with timeout 10 and pollingInterval 0.5 to ask Claude Desktop: What is 2+2?"
Important:The MCP server configuration (shown above) only tells Claude how to start the server. The timeout and pollingInterval parameters are specified when you use the tool in Claude, not in the server configuration file.
Due to Claude Desktop's Electron-based architecture, this MCP integrationcannot read Claude's responsesprogrammatically. The tool can successfully:
- ✅ Send prompts to Claude Desktop
- ✅ Create new conversations
- ✅ Activate and focus the Claude window
- ❌ Read Claude's responses back
This is a limitation of how Electron apps expose UI elements through accessibility APIs. When you use theasktool, you'll receive a confirmation that the message was sent, but you'll need to check the Claude Desktop window directly to see the response.
- Use Claude's API: For programmatic access to responses, consider using Claude's API directly instead of desktop automation
- Manual verification: After sending a prompt, manually check the Claude Desktop window for the response
- One-way automation: Use this tool for scenarios where you only need to send prompts without reading responses
Claude Commands allow you to create reusable workflows that combine MCP tools. This project works seamlessly with Claude Commands to enable powerful automation.
We've included an example Claude Command that demonstrates how to use MCP Claude Desktop for automated code reviews. The command uses git to analyze recent changes and sends them to Claude Desktop for peer review feedback.
-
Copy the example command to your Claude Commands directory:
cp examples/claude-peer-review.md ~/.claude/commands/
The command will be available in Claude Code as/claude-peer-review
The peer review command accepts up to 3 arguments:
- description: What changes to review (e.g., "authentication fix")
- polling_interval: How often to check for response (default: 1.5s)
- timeout: Maximum wait time for response (default: 30s)
# Review most recent commit with defaults /claude-peer-review # Review with description /claude-peer-review "bug fix for user login" # Custom polling interval (2 seconds) /claude-peer-review "API update" 2 # Custom timeout for complex reviews (2 minutes) /claude-peer-review "major refactor" 1.5 120
-
Git Integration: The command automatically fetches:
- Current git status
- Recent commit statistics
- Full diff of changes
- Current branch name
Claude Desktop Review: Sends the changes to Claude Desktop with specific review questions:
- Code appropriateness and implementation quality
- Security concerns or potential bugs
- Code quality and best practices
- Suggestions for improvements
Response Handling: Uses the MCP server's polling mechanism to wait for Claude's response
Summary Generation: Provides a structured summary of:
- Changes reviewed
- Claude's feedback
- Actions taken based on feedback
- Final review status
You can create custom Claude Commands that leverage MCP Claude Desktop. Commands should:
--- allowed-tools: mcp__claude-desktop__ask, mcp__claude-desktop__get_conversations ---
Use the MCP tools with appropriate parameters:
mcp__claude-desktop__ask prompt: "Your prompt here" timeout: 60 pollingInterval: 2
Handle timeouts gracefully and suggest longer timeouts for complex queries
See theexample commandfor a complete implementation.
Send a prompt to Claude Desktop and get a response.
- prompt(string, required): The prompt to send
- conversationId(string, optional): Continue a specific conversation
- timeout(number, optional): Response timeout in seconds
- Default: 30 seconds
- Minimum: 1 second
- Maximum: 300 seconds (5 minutes)
- Default: 1.5 seconds
- Minimum: 0.5 seconds
- Maximum: 10 seconds
String containing Claude's response
Get a list of available conversations in Claude Desktop.
{ conversations: string[]; timestamp: string; }
The MCP server uses AppleScript to communicate with Claude Desktop:
- Claude Code sends a prompt via MCP
- AppleScript activates Claude Desktop and creates a new conversation
- The prompt is typed into Claude Desktop
- The server polls Claude Desktop for the response
- Once a response is detected, it's parsed and returned to Claude Code
-
"AppleScript execution failed"
- Ensure Claude Desktop is installed and running
- Check accessibility permissions
- Try running the server with higher log level:LOG_LEVEL=3
- Increase the timeout parameter:timeout: 60(60 seconds)
- For complex queries, use longer timeouts:timeout: 120(2 minutes)
- Reduce polling interval for faster detection:pollingInterval: 0.5
- Check if Claude Desktop is responding normally
- Ensure the system isn't under heavy load
- Grant accessibility permissions to your terminal
- Run the build command with proper permissions
MCP Server Crashes After Sending RequestsIf the MCP server crashes after handling requests, you can:
-
Disable response polling(recommended for stability):
This will send the message to Claude Desktop but won't try to read the response.
Enable debug loggingto see what's happening:
Check stderr output- All logs are now written to stderr to avoid interfering with the MCP protocol on stdout.
Response polling can occasionally cause instability due to:
- Extended polling duration (30 seconds default)
- Complex UI element reading from Electron apps
- Timing issues with Claude's response generation
Consider usingSKIP_CLAUDE_POLLING=truefor more reliable operation if you don't need response reading.
We welcome contributions to MCP Claude Desktop! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/mcp-claude-desktop cd mcp-claude-desktop
git checkout -b feature/your-feature-name
- Make your changes
- Run tests to ensure everything works:
npm test
- Use TypeScript for all source code
- Follow the existing code style (enforced by ESLint)
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Commit your changes with a descriptive message:
git commit -m "feat: add support for conversation history"
git push origin feature/your-feature-name
- Provide a clear description of the changes
- Reference any related issues
- Ensure all tests pass
- Update README if adding new features
- Be responsive to code review feedback
- Use GitHub Issues to report bugs
- Include macOS version and Node.js version
- Provide steps to reproduce the issue
- Include relevant error messages or logs
- Open an issue to discuss new features
- Explain the use case and benefits
- Be open to feedback and alternative approaches
Interact with any other SaaS applications on behalf of your customers.
1001SMS MCP Server helps developers give AI agents access to temporary phone numbers for account registrations, OTP verifications, SMS code receiving, and automated signup workflows. Easy integration for MCP-compatible tools and custom agents.
An MCP server client for the Agent-to-Agent (A2A) protocol, enabling LLMs to interact with A2A agents.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.


